Bạn có xu hướng viết tên của riêng bạn hoặc tên công ty của bạn trong mã của bạn?


13

Tôi đã làm việc trên nhiều dự án khác nhau ở nhà và tại nơi làm việc, và trong nhiều năm qua tôi đã phát triển hai API chính mà tôi sử dụng trong hầu hết các trang web dựa trên AJAX. Tôi đã biên dịch cả hai thứ này thành DLL và gọi các không gian tên Connell.Database và Connell.Json.

Ông chủ của tôi gần đây đã nhìn thấy các không gian tên này trong một tài liệu phần mềm cho một dự án cho công ty và nói rằng tôi không nên sử dụng tên riêng của mình trong mã. (Nhưng đó là mã của tôi!)

Một điều cần lưu ý là chúng tôi không phải là một công ty phần mềm. Chúng tôi là một công ty hỗ trợ CNTT và tôi là nhà phát triển phần mềm toàn thời gian duy nhất ở đây, vì vậy thực sự không có bất kỳ quy trình nào về cách chúng tôi nên viết phần mềm trong công ty.

Một điều nữa cần ghi nhớ là tôi có ý định một ngày nào đó sẽ phát hành các DLL này dưới dạng các dự án nguồn mở.

Làm thế nào để các nhà phát triển khác nhóm các không gian tên của họ trong công ty của họ? Có ai sử dụng cùng một thư viện lớp trong các dự án cá nhân và trong công việc không?

Cũng làm việc này theo cách khác? Nếu tôi viết một thư viện lớp hoàn toàn tại nơi làm việc, ai sở hữu mã đó? Nếu tôi đã thấy thư viện xuyên suốt từ đầu đến cuối, hãy thiết kế và lập trình nó. Tôi có thể sử dụng nó cho một dự án khác ở nhà không?

Cảm ơn,

Cập nhật

Tôi đã nói chuyện với sếp của tôi về vấn đề này và anh ấy đồng ý rằng họ là đối tượng của tôi và anh ấy ổn đối với tôi để mở nguồn cho họ. Trước cuộc trò chuyện này, tôi đã bắt đầu thay đổi các đối tượng, điều này thực sự khá hiệu quả và mã hiện phù hợp với dự án cụ thể này hơn so với trước đây.

Nhưng cảm ơn tất cả mọi người tham gia cho một cuộc tranh luận rất thú vị. Tôi hy vọng tất cả văn bản này không bị lãng phí và ai đó học được từ nó. Tôi chắc chắn đã làm.

Chúc mừng


10
Tôi nghĩ rằng câu hỏi này cần một cảnh báo như "Vùng mỏ hợp pháp phía trước"
Matt Ellen

4
nó không phải nói bất cứ điều gì về phần mềm nói riêng. Một khi họ trả tiền cho bạn cho thời gian của bạn, bất cứ điều gì bạn làm trong thời gian đó đều thuộc về họ.
gbjbaanb

1
Đây là nơi vấn đề nằm mặc dù. Những gì tôi sử dụng ở nhà, tôi đã làm trong thời gian riêng của tôi. Tôi, tuy nhiên, có một phiên bản chỉnh sửa của mã đó cho một dự án công việc, mà tôi đã chỉnh sửa trong thời gian của họ.
Connell

1
@ Connect . Phiên bản ngắn - không phải mã của bạn, là của họ, bạn chỉ cần viết nó.
Jon Hopkins

2
@Matt Tôi nghĩ rằng tôi sẽ phải trò chuyện với chủ nhân của mình sau đó. Xem nếu tôi có thể lấy nó bằng văn bản, ai sở hữu mã mà tôi làm trong thời gian của tôi. Một câu hỏi cuối cùng. Nếu tôi phát hành mã nhà dưới dạng nguồn mở, điều đó sẽ cung cấp cho bất kỳ ai quyền sử dụng và chỉnh sửa mã của tôi, bao gồm cả chủ nhân của tôi? Điều đó có làm tròn vấn đề không? Cảm ơn bạn đã giúp đỡ!
Connell

Câu trả lời:


11

(Từ chối trách nhiệm tiêu chuẩn - Tôi không phải là luật sư ...)

Từ hồ sơ của bạn, bạn dường như ở Vương quốc Anh.

Trong trường hợp đó, nó phụ thuộc vào cách bạn làm việc. Nếu bạn là thành viên thường trực của nhân viên thì gần như chắc chắn chủ nhân của bạn sở hữu công trình . Bạn đã viết cho họ và có quyền được xác định là tác giả (nghĩa là bạn có thể nói với mọi người rằng bạn đã viết cho họ) nhưng quyền sở hữu mã và tài sản trí tuệ trong đó thuộc về công ty của bạn.

Nếu bạn là một nhà thầu thì có thể có một trường hợp bạn có một số yêu cầu đối với họ nhưng nó sẽ phụ thuộc vào bản chất của hợp đồng. Nói chung, hầu hết các nhà thầu CNTT của Vương quốc Anh được phân loại là công nhân cho thuê, điều đó có nghĩa là một lần nữa IP lại thuộc về công ty chứ không phải cá nhân. Chắc chắn nói về một hợp đồng lao động tiêu chuẩn cho thấy rằng đây sẽ là trường hợp cho dù bạn là người vĩnh viễn của hợp đồng.

Trong những trường hợp này, bạn không có quyền phát hành chúng dưới dạng nguồn mở (hoặc thực sự đưa chúng cho chủ nhân tiếp theo của bạn) và bạn nên nghĩ về chúng giống như cách bạn nghĩ về bất kỳ phần mềm độc quyền nào khác và hành động phù hợp - chúng ' không phải của bạn, bạn tình cờ có quyền truy cập vào mã nguồn.

EDIT : Liên quan đến thực tế là bạn đã phát triển một số trong thời gian của riêng bạn. Giây phút bạn bắt đầu sử dụng nó tại nơi làm việc mà không khẳng định quyền lợi của mình và cấp phép cho công ty trước, bạn đã làm cho nó rất âm u vì bây giờ rất khó để thể hiện những gì đã được thực hiện khi nào. Từ những gì bạn nói rằng các thư viện mã đã được kiểm tra, gỡ lỗi và sửa trong thời gian làm việc (và công ty sở hữu mọi thứ được thực hiện trong thời gian của họ), cộng với sự trùng lặp rõ ràng với công việc bạn đang làm cho họ (bằng chứng là họ đã làm hoàn thành một yêu cầu mà công ty có mà bạn đang làm việc) có nghĩa là họ có yêu cầu bồi thường và có lẽ là một yêu cầu khá mạnh mẽ.

Liên minh Đoàn kết có một phần về điều này . Phần quan trọng dường như là:

"Có những quy định theo luật định rõ ràng:

· Phần 11 (2) của Đạo luật bản quyền, thiết kế và bằng sáng chế (CDPA) 1988 và

· Phần 39 của Đạo luật Bằng sáng chế năm 1977

xử lý quyền sở hữu công trình của nhân viên. Theo các điều khoản này, về cơ bản, người sử dụng lao động có được quyền sở hữu quyền sở hữu trí tuệ đối với bất kỳ tác phẩm nào được tạo bởi một nhân viên mà anh ta / cô ta

· Được yêu cầu sản xuất theo các điều khoản của hợp đồng lao động của họ hoặc

· Hợp lý có thể được dự kiến ​​sẽ sản xuất theo các điều khoản của hợp đồng đó.

Rõ ràng, mô tả công việc của từng nhân viên càng rộng, anh ta / cô ta sẽ càng khó tránh khỏi những ảnh hưởng của Phần 11 (2) và 39 ở trên.

Ngay cả khi công việc được tạo ra bởi nhân viên trong thời gian riêng của họ và sử dụng tài nguyên của riêng họ, nhân viên đó sẽ không nhất thiết có thể yêu cầu bất kỳ quyền nào trong công việc đó, nếu chủ lao động cho thấy bản chất của công việc được tạo ra là có thể hợp lý dự tính là một phần của nhiệm vụ của nhân viên. Điều này được thể hiện qua trường hợp Thiếu phần mềm liên kết v Magee [1989] FSR 361. Ở đó, tòa án cho rằng bản quyền trong một chương trình phần mềm được viết bởi một nhân viên ngoài thời gian làm việc và trên thiết bị của anh ta được thực hiện trong quá trình làm việc, vì nó nằm trong phạm vi nhiệm vụ mà ông Magee được thuê để thực hiện. "

Về cơ bản vì các thư viện này đáp ứng một yêu cầu cụ thể về một dự án mà bạn đang thực hiện cho họ, họ có yêu cầu về chúng.

EDIT 2 : Bạn cần hiểu rằng thực tế là có hai phiên bản mã có thể không liên quan. Mã đáp ứng nhu cầu của công ty đối với một dự án bạn đang thực hiện và bạn đã viết nó trong khi được công ty tuyển dụng (ngay cả khi đó là trong thời gian của bạn). Điều đó mang lại cho họ một yêu cầu mạnh mẽ về "IP lõi" của mã, không chỉ trên một bản sao cụ thể mà bạn tình cờ thực hiện trong dự án của họ - xem nó như hai nhánh không thay đổi điều đó.

Điều đáng chú ý là ngay cả việc viết lại nó cũng sẽ được gọi là một tác phẩm phái sinh và IP vẫn sẽ ngồi với công ty, ngay cả trên một phiên bản mới.

Tôi nghĩ rằng bạn có một ý tưởng về những gì bạn muốn là đúng và bạn đang cố gắng vặn vẹo mọi thứ để thực hiện điều đó nhưng từ những gì bạn đang nói tôi tin rằng công ty có yêu cầu khá mạnh mẽ đối với mã mà bạn sẽ không làm có thể làm việc xung quanh.


Mọi người dường như đang nói những điều tương tự. Một điều tôi thực sự bối rối về nó, phần lớn mọi người đang nói với tôi rằng đừng phát hành chúng dưới dạng nguồn mở. Nếu đó là mã của tôi, tôi đã phát triển trong thời gian riêng của mình, với IDE của riêng tôi trên máy tính của riêng tôi. Chắc chắn tôi có quyền phát hành mã đó? Điều này sau đó sẽ cho phép tôi sử dụng và chỉnh sửa mã này cho công ty, như thể đó là bất kỳ mã nguồn mở nào khác?
Connell

@Connell - xem chỉnh sửa ở trên, phiên bản TL; DR: quyền có thể vẫn thuộc về công ty chứ không phải bạn.
Jon Hopkins

Câu trả lời rất hay! Cảm ơn bạn. Tôi đã quyết định tôi sẽ viết lại các thư viện tại nơi làm việc. Mặc dù nó vẫn làm một điều rất giống nhau, nhưng mã đó sẽ là của công ty. Không có gì có thể nói về sự giống nhau giữa các dự án, vì không có hợp đồng hay luật nào lấy đi quyền học hỏi kinh nghiệm gia đình của tôi để viết phần mềm tại nơi làm việc hoặc ngược lại.
Connell

1
@Connell - Tôi nghĩ bạn đã bỏ lỡ điểm. Mã tồn tại đã là của công ty - bạn cần viết lại chúng tại nhà hoàn toàn trong thời gian của bạn để có phiên bản bạn sở hữu. Ngay cả sau đó nó sẽ được đặt câu hỏi. Tôi thấy từ trang web của bạn mà bạn đang tìm cách để lại. Điều tốt nhất để làm là có được một công việc mới với một hợp đồng cho thấy rõ ai là người sở hữu những gì và sau đó bắt đầu công việc viết lại.
Jon Hopkins

5
@Connell - Bạn nói rằng mã ở nhà chưa được chạm vào trong thời gian của công ty. Bạn có thể chứng minh điều đó? Hoàn toàn và kết luận? Thực tế là có một phiên bản tại nơi làm việc của bạn là phiên bản sửa đổi của mã làm vấy bẩn vùng biển quá nhiều để chứng minh. Bạn đã trao cho chủ sở hữu của bạn quyền sở hữu mã như một phiên bản của mã này nằm trong hệ thống của họ. VCS của họ (Họ có một cái tôi giả sử) sẽ có nhật ký các phiên bản mã mà (trong mắt họ) được phát triển theo thời gian của họ, vì vậy chỉ cần loại bỏ nó sẽ không tạo ra bất kỳ sự khác biệt nào ngoại trừ giờ đây họ có thể tuyên bố đã trả tiền để phát triển nó hai lần.
uɐɪ

12

Nếu công ty của bạn trả tiền cho bạn bằng mã, thì đó là mã của họ. Tôi sẽ không phát hành nó như một dự án nguồn mở trừ khi bạn có sự cho phép của họ.


Tôi đã viết 90% dự án này ở nhà. Tôi đã thực hiện một vài thay đổi tại nơi làm việc và trên thực tế, tôi hoàn toàn không sử dụng bất kỳ thay đổi nào trong số này, vì vậy nếu tôi phát hành nó mà không có những thay đổi này? Tôi có cần phải xin phép không?
Connell

1
@Connell: Thứ nhất tôi không phải là luật sư. Nếu đó là trường hợp, tôi sẽ đảm bảo rằng tôi sẽ phân tách rõ ràng giữa API của bạn và mã của họ. Tôi thậm chí sẽ không có mã nguồn tại nơi làm việc và chỉ tham khảo DLL.
RoboShop

@Connell: Và cũng xin nhắc lại một lần nữa, tôi không phải là luật sư. Đó chỉ là những gì tôi sẽ làm ...
RoboShop

Vâng, tôi nghĩ về việc dán nó trong một DLL. Tôi cảm thấy hơi lo lắng về tất cả, vì vậy tôi phải thực hiện một số hành động .. Tôi nghĩ các tùy chọn của tôi là sử dụng DLL (nhưng theo cách đó nếu tôi không còn làm việc ở đây nữa và họ cần thay đổi khi thực hiện lớp đó mã, họ sẽ cần phải viết lại nó, điều mà họ có thể không hài lòng), hoặc đổi tên và viết lại nó với một thiết kế hơi khác.
Connell

3

Đã có trường hợp mã được viết tại nhà trong khi làm việc cho một công ty được coi là sở hữu của công ty. Tôi không chắc liệu điều đó đã từng được thử nghiệm tại tòa án chưa nhưng tôi nghĩ khá rõ ràng rằng bất kỳ mã nào bạn viết bằng thiết bị của công ty, trong thời gian công ty (tức là thời gian bạn ngồi tại bàn của bạn được công ty trả tiền để viết mã) và cho phần mềm công ty thuộc về công ty. Bạn đã ký một thỏa thuận với họ (kiểm tra hợp đồng lao động của bạn) nói rằng họ sẽ trả lại tiền cho bạn để viết mã cho họ. Bạn sẽ không ấn tượng nếu họ nói rằng họ sẽ giữ lại tiền lương của bạn vì họ dự định sẽ làm từ thiện thay thế.

Vì vậy, trong ngắn hạn, nó không phải là mã của bạn. Bạn không sở hữu nó. Các không gian tên nên tên công ty vì nó thuộc về họ. Họ trả tiền cho ai đó để viết nó! (tức là bạn).


  • Hãy cẩn thận: bạn cần kiểm tra hợp đồng, hoặc điều khoản tuyển dụng để xác định xem những điều trên có thực sự đúng trong trường hợp của bạn không, tôi sẽ nói rằng dù sao đi nữa vì họ có thể dễ dàng sa thải bạn vì đã làm việc của bạn ít nhất là vào thời gian của công ty, và sau đó tuyên bố nó thuộc về họ nào. lời khuyên tốt nhất cho tương lai là giữ những gì bạn làm cho chính mình và những gì bạn làm cho chủ nhân của bạn hoàn toàn riêng biệt.

Cảm ơn những người đứng đầu, tôi nghĩ rằng tôi sẽ viết lại mã cho công ty và giữ riêng biệt. Tôi hình dung nếu đó là mã của tôi và tôi đang sử dụng nó cho công ty, thì gần như tôi sở hữu giấy phép và đang cho phép công ty sử dụng nó.
Connell

2

Tôi nghĩ rằng có một nơi mà bạn đã phạm sai lầm. Vấn đề là bạn đã viết mã tại nhà vào thời gian riêng của mình và sau đó thấy rằng mã sẽ hữu ích trong công việc, vì vậy bạn cũng bắt đầu sử dụng nó ở đó. Điều có lẽ sẽ là điều thích hợp để làm trong trường hợp này, không kết hợp mã được thực hiện bên ngoài công việc vào mã của công ty bạn. Bạn có thể phải sử dụng thời gian của công ty để viết lại chức năng bạn đã viết, để họ có thể sử dụng nó. "Nhưng đó là một sự lãng phí lớn thời gian" bạn nói. Vì vậy, tùy chọn khác là họ cấp phép / mua mã từ bạn với giá hoặc miễn phí để họ biết rằng họ được phép sử dụng mã hợp pháp. Tôi nghĩ những gì có thể xảy ra trong tâm trí nhà tuyển dụng của bạn là họ đang tự hỏi điều gì xảy ra với mã đó khi bạn rời đi? Họ vẫn có quyền sử dụng mã đó?

Nhiều lập trình viên làm việc trên các công cụ trong thời gian rảnh rỗi có thể hữu ích cho nhà tuyển dụng của họ, nhưng bạn không nên bắt đầu trộn mã mà không có sự chấp thuận từ công ty.


2

Các lập trình viên tương lai cần biết ai đã viết mã trong trường hợp mức độ tài liệu không đầy đủ (điều đáng buồn là thường xuyên như vậy).

Tôi luôn ký tên của mình vì lý do này. Và nó cũng nhắc nhở tôi rằng tôi cần đảm bảo rằng tôi làm một công việc tuyệt vời, bởi vì tôi biết rằng nếu tôi không một số đồng nghiệp tức giận sẽ gọi cho tôi vào giữa đêm! :)


3
Đó là những gì nhật ký kiểm soát nguồn dành cho.
Adam Lear

Đúng, đó là sự thật, nhưng với tư cách là một nhà phát triển tự do, tôi thường xuyên được giao cho các dự án nơi kiểm soát nguồn bị sử dụng sai hoặc không được sử dụng. Sẽ không mất thêm vài giây để thêm 'tem' vào các tệp nguồn của bạn. Thay đổi mã hiện tại Tôi luôn ghi lại trong các hệ thống kiểm soát nguồn nếu có ... :)
Alex

Ngoại trừ khi mã được chuyển đến một kho lưu trữ mới vì bất kỳ lý do gì và các bản ghi đã biến mất. Có một tình huống như thế này gần đây, nơi một vấn đề không thể được truy trở lại vì nó.
Scrwtp

0

Như hầu hết mọi người đã nói, có lẽ đó là trường hợp công ty có một số yêu cầu về mã (với các cụm từ như "Tôi đã viết 90% dự án này ở nhà."

Một trong những điều cần xem xét trong tương lai là xem xét cẩn thận các hợp đồng lao động và có được thời gian riêng, bộ dụng cụ riêng -> quyền sở hữu riêng hoặc nhận được sự từ bỏ theo từng dự án từ công ty. Điều đó không có ích gì vào lúc này, thật không may.


0

Có gì sai khi sử dụng một số tên khác? Tên của con trai / con gái / mèo / chó / hamster của bạn? Sau đó, bạn không phải gặp những khó khăn này - bạn vừa chọn một tên 'thân thiện'.


Thật kỳ lạ, tôi chỉ nhìn vào đây. Tôi đang cố gắng nghĩ ra một tên dự án độc đáo đẹp cho nó :)
Connell

... Hiện tại tôi sử dụng 'Theodore' - tên của con mèo neighbour của tôi. Điều này không bao giờ đi qua như bất cứ điều gì khác hơn là vô hại. Những cái tên khác mà tôi đã sử dụng "dường như là một ý tưởng tốt vào thời điểm đó" và không hoạt động trong thời gian dài. Dưới đây là một vài điều khiến bạn suy nghĩ: applemuseum.bott.org/sections/codenames.html
Mathew

0

Tất cả các câu trả lời dường như tập trung vào quyền sở hữu.
Nhưng quyền sở hữu và quyền tác giả (tác giả và chủ sở hữu, resp) là những quan niệm khác nhau.
Tác giả được liên kết với các quyền, hoặc không thể thay đổi, đó là :

  • vĩnh viễn
  • không thể thay đổi
  • Quyền mô tả
  • Không thể nhận thấy
    Nếu một tác phẩm đã được tạo ra và tiền thu được từ việc khai thác của nó, có thể bị các chủ nợ tịch thu, như trường hợp có thể, thì tác phẩm sau có thể không yêu cầu tác phẩm đó được tiết lộ cho mục đích phục hồi số tiền do tác giả của nó.

Đạo đức, hoặc không thể thay đổi, quyền tác giả không thể được miễn trong hầu hết các khu vực pháp lý .

Trong khi quyền sở hữu có liên quan đến kinh tế, còn gọi là tài sản, quyền.

Tại sao không chỉ tuân theo thực tiễn về cách các bài báo khoa học được ký, khi các công nhân thường xuyên làm việc như là nhà nghiên cứu / giáo sư thỉnh giảng, làm việc / tài trợ cho nhiều thực thể. hoặc theo tài trợ độc lập của các bên 3d: tên tác giả + nơi công việc đã được thực hiện + tín dụng đã tài trợ cho công việc.

Lưu ý rằng đây là nhiều mối quan hệ (nhiều tác giả, một tác phẩm của anh ấy, có thể có nhiều chi nhánh và tài chính).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.