Có sai không khi lấy mã bạn đã sản xuất tại nơi làm việc và sử dụng lại cho các dự án cá nhân?


31

Trong suốt các nơi làm việc khác nhau của tôi, tôi luôn viết mã khiến tôi nghĩ rằng "điều này sẽ thực sự hữu ích trong các tình huống khác". Thật vậy, tôi cố tình viết mã, ngay cả khi tôi mất nhiều thời gian hơn để viết, điều mà tôi biết sẽ giúp tôi trong tương lai (ví dụ: các SubString()hàm tùy chỉnh ). Một ứng cử viên sáng giá cho những đoạn trích này là các lớp 'Người trợ giúp' khác nhau.

Những đoạn này tôi chắc chắn có thể tìm thấy ở nơi khác trên mạng nhưng vấn đề là, tôi đã viết chúng và tôi sẽ sử dụng lại chúng sau này trong các công việc khác hoặc cho các dự án cá nhân. Hiện tại tôi không duy trì một thư viện mã cá nhân, nhưng câu hỏi là, có sai không khi lấy mã bạn đã tạo ra tại nơi làm việc và sử dụng lại ( a ) cho các dự án cá nhân và ( b ) trong các công việc khác?



2
@Michael Tương tự, nhưng không phải là một bản sao chính xác. Các câu trả lời rất giống nhau, nhưng chúng thực sự là hai mối quan tâm khác nhau. Đây là một đoạn mã nhỏ - một vài lớp, một hoặc hai phương thức. Khác là về tái tạo toàn bộ một dự án.
Thomas Owens

Điều buồn cười là tôi luôn tìm thấy dòng chảy theo hướng khác . Tôi thường đưa ra các đoạn mã thực sự thú vị trong các dự án sở thích của mình, nơi tôi thử nghiệm nhiều hơn. Chắc chắn không ai phàn nàn khi những ý tưởng thành công đó biến nó thành công việc được trả lương của tôi. :-)
DaveGauer

Câu trả lời:


25

Tôi đã luôn giải quyết vấn đề này bằng cách có một dự án cá nhân nơi tôi đặt tất cả các ý tưởng điên rồ và những thứ chung chung của mình, sau đó cấp phép cho nó theo giấy phép BSD, cho phép mọi người sử dụng lại, thay đổi, đổi thương hiệu, đóng tiền và tính tiền cho nó Bằng cách đó, tôi giữ lại bản quyền nhưng có thể sử dụng lại mã theo ý muốn của tôi và nhà tuyển dụng đó, để tôi giữ bản quyền cho bản gốc, nhưng nhà tuyển dụng vẫn giữ bản quyền cho trường hợp được sử dụng lại. Tôi nghĩ rằng nếu họ có vấn đề với điều đó, thì họ chỉ cần trả tiền cho tôi để viết lại nó vào thời gian làm việc mà không có ý nghĩa gì từ quan điểm của họ. Hơn nữa, các công ty sử dụng mã BSD mọi lúc, vì ý tưởng đằng sau BSD là cho phép mọi người và các công ty thực hiện với nó bất cứ điều gì họ muốn, bao gồm cả việc đổi thương hiệu và bán nó.

Sau đó, tất nhiên, nếu bổ sung được thực hiện cho mã tại nơi làm việc, tôi không thể sử dụng lại ở nơi khác mà không cần viết lại vào thời gian riêng của mình ... điều đó cũng tốt vì những thứ chung chung có xu hướng tương đối nhỏ, trừ khi đó là ý tưởng rằng đảm bảo nỗ lực thời gian miễn phí đáng kể nào.

Viết nó theo thời gian của riêng bạn và cấp phép mã theo giấy phép kiểu BSD sẽ cho phép bạn duy trì một thư viện cho chính mình mà bạn có thể sử dụng khá nhiều ở bất cứ đâu bạn muốn.

Bây giờ, đối với các hợp đồng tuyên bố hút hết bản quyền của các dự án cá nhân của bạn ... điều này có thể khác hoàn toàn giữa các khu vực pháp lý, nhưng trong ít nhất một số khu vực pháp lý phương Tây, tôi hiểu rằng hợp đồng không thể làm điều đó. Hợp đồng có thể nói là có, nhưng nó sẽ không được thi hành tại tòa án vì bản quyền phải được chuyển giao rõ ràng, trái ngược với "tất cả các cơ sở của bạn thuộc về chúng tôi" - thỏa thuận không bao giờ được giữ nguyên (trong thẩm quyền nơi tôi đến từ dù sao). Có một số hạn chế về những gì có thể được duy trì trong tòa án của pháp luật thông qua hợp đồng, đó là lý do tại sao bạn thường (và hy vọng) sẽ thấy một điều khoản nói lên điều gì đó có hiệu lực nếu một phần của hợp đồng không hoạt động hợp pháp , phần còn lại của hợp đồng vẫn giữ.

Nhưng như mọi khi, tham khảo ý kiến ​​một luật sư trước khi bạn giải thích đây là lời khuyên pháp lý chính xác. Tôi chưa bao giờ bị đưa ra tòa vì điều này vì vậy tôi không biết những điều này là sự thật chứng minh luật sư. :)


31

Nó phụ thuộc vào hợp đồng lao động của bạn. Ngày nay, câu trả lời có thể xảy ra nhất là (a) có, điều này sai và (b) có, điều này thực sự sai. Hầu như tất cả các hợp đồng được cung cấp cho các nhà phát triển ngày nay đều có quy định nói rằng bất kỳ mã nào bạn viết trong khi được công ty sử dụng (dù trong giờ hành chính hay không) là của họ và bạn tự động chuyển bản quyền của mình cho họ. Trừ khi bạn đàm phán cụ thể chống lại điều này, điều này có lẽ áp dụng cho bạn.

Tuy nhiên, như mọi khi:

Đừng tin chúng tôi! Tham khảo ý kiến ​​một luật sư trước khi làm một cái gì đó có khả năng nguy hiểm.


7
+10 (nếu tôi có thể) cho "Đừng tin chúng tôi! Tham khảo ý kiến ​​luật sư trước khi làm điều gì đó có khả năng gây nguy hiểm." Tốt. Khuyên nhủ. Không bao giờ.
Sardathrion - Phục hồi Monica

2
Bạn có nguồn nào cho tuyên bố rằng "gần như tất cả các hợp đồng được cung cấp cho các nhà phát triển" quy định rằng "bất kỳ mã nào bạn viết khi làm việc cho công ty (cho dù trong giờ hành chính hay không)" đều thuộc về nhà tuyển dụng?
một CVn

3
Những thuật ngữ này là thông lệ trong một cách tự bảo vệ chủ nhân, quá nhiều thay vì quá ít, và trong nhiều trường hợp, có chỗ cho lẽ thường. Điều đó nói rằng, (1) bạn cần chắc chắn rằng quan điểm của bạn về ý thức chung đồng ý với quan điểm của họ và (2) đó là một rủi ro lớn. Vài năm sau, các ý kiến ​​có thể thay đổi - đặc biệt là nếu bạn kiếm được nhiều tiền hoặc nếu họ nghĩ rằng những gì bạn viết có thể làm hỏng doanh số của họ. Đối với một thư viện các chức năng tiện ích chung nhỏ, có thể dễ dàng viết lại hơn và không phải lo lắng. Bất cứ điều gì quan trọng hơn và bạn đang ở trên mặt đất rất nguy hiểm.
Steve314

4
@ MichaelKjorling. Nguồn bạn đang tìm kiếm là trong câu trả lời xuất sắc của Joel Spolsky về chủ đề này trong Start Ups .
TRiG

22
Thật ra .. tôi nghĩ thật khó chịu và không thực tế khi luôn nói hỏi luật sư. Trước hết bởi vì thông thường bạn có thể sai; nếu bạn tư vấn cách khắc phục lỗ hổng bảo mật quan trọng trên SO, bạn đừng nói "Hỏi lập trình viên!" mỗi lần. Luật sư thứ hai là đắt tiền; Thành thật mà nói, có bao nhiêu người bạn thực sự sẽ thuê một luật sư để hỏi một câu hỏi / sự tò mò thường thấy? Đã bạn đã từng thuê một luật sư để hỏi một cái gì đó như thế này?
Thomas Bonini

9

Chỉ cần viết lại mã như và khi bạn cần nó . Nó hoàn toàn tránh được vấn đề vì lợi ích của một vài phút mã hóa.

Có thể trong thời gian tạm thời, bạn sẽ học được nhiều hơn và sẽ viết một cái gì đó tốt hơn. Viết lại mã nói chung cũng làm cho nó thanh lịch hơn.


Đồng ý, nhưng những thư viện con không chỉ đơn giản là một vài phút mã? Các lớp để truy cập cơ sở dữ liệu, xây dựng tập tin, vv? Mặc dù việc viết lại giúp cải thiện mã
Arj

3
Nó không đơn giản. Bất kỳ sự thực hiện lại nào cũng cần phải hoàn toàn khác với mã gốc. Ngay cả viết lại nó có thể là xấu. Làm một phiên bản tốt hơn của những thứ hiện có chắc chắn là xấu. Tốt hơn là giữ nó tách biệt hoàn toàn.
tp1

Nếu bạn phát triển một số loại thuật toán độc quyền cho ai đó, bạn (có thể) sẽ gặp rắc rối nếu bạn viết lại cho người khác. Đó là một chút sơ sài. Nếu đó chỉ là mã soạn sẵn, ừ, đủ dễ để bắt đầu một bộ sưu tập mới.
Tim Post

@ tp1 Hãy giữ lấy, nếu mục tiêu của chức năng x()cụ thể và hữu ích đến mức không có nhiều cách để viết nó thì sao? Trong trường hợp đó, làm thế nào bạn có thể giữ nó tách biệt nếu việc thực hiện quá giống nhau?
Arj

@ a12jun, tốt, đó là lý do tại sao nó cần được xem xét riêng cho từng tình huống. Khái niệm sắp xếp có lẽ là kinh nghiệm hiện tại của lập trình viên về khoa học máy tính và viết là ổn. Nhưng nếu đó là một cái gì đó cụ thể hiếm gặp hoặc cụ thể đối với một số loại phần mềm, thì nó sẽ trở nên tồi tệ.
tp1

6

Tùy thuộc vào điều khoản việc làm của bạn, nó có thể được. Tham khảo ý kiến ​​của người giám sát, bộ phận nhân sự, bộ phận pháp lý và / hoặc bộ phận đạo đức để xác định những gì thuộc sở hữu của công ty bạn và những gì thuộc sở hữu của bạn, cũng như quy trình để yêu cầu có quyền sử dụng hoặc quyền sở hữu đối với mọi thứ mà bạn sản xuất tại nơi làm việc.

Gần như mọi nơi tôi làm việc, những thứ thuộc dự án đều thuộc sở hữu của công ty, nhưng tôi đã tìm kiếm và xin phép mang mọi thứ ra cho các dự án cá nhân trong từng trường hợp cụ thể, thường yêu cầu giải thích những gì tôi muốn để làm với nó và làm thế nào nó sẽ gây bất lợi cho tổ chức để cho nó đi.


Tôi đồng ý với điều này; nói chuyện với mọi người tại công ty riêng của bạn là một điểm khởi đầu tốt (giả sử bạn có mối quan hệ hợp lý tốt với họ). Không có khả năng là họ sẽ chỉ nói "chắc chắn, làm những gì bạn thích với nó miễn là nó không liên quan mật thiết đến hoạt động kinh doanh".
Keith Thompson

Có, bạn nên thử xin phép: hợp đồng có thể nói "tất cả cơ sở của bạn thuộc về chúng tôi", nhưng nói chung chỉ nhằm mục đích CYA và họ có thể sẵn sàng cho phép những điều mà hợp đồng của bạn không đảm bảo . (Nhưng bạn có thể muốn đảm bảo rằng bạn nhận được bằng văn bản, chỉ trong trường hợp.)
SamB

4

Tôi đã có một số thành công (không hoàn toàn thành công) khi khiến các chủ nhân của tôi đồng ý phát hành theo giấy phép nguồn mở một số mã của tôi được viết trong khi tôi làm việc cho họ. Chủ yếu là mã tôi đã viết vào thời gian riêng của tôi, nhưng đôi khi không. Đó là tất cả các mã không dành riêng cho bất kỳ ngành công nghiệp.

Tôi bắt đầu mọi thứ bằng cách viết một số thư viện trong khi tôi thất nghiệp, sau đó phát hành chúng theo giấy phép MIT. Sau đó, trong quá trình tuyển dụng ở những công việc sau này, tôi sẽ đề cập đến nó và nói rằng tôi sẽ sử dụng mã đó để giúp họ, nếu có thể, nhưng họ có phiền nếu thêm những thứ tôi viết khi làm việc cho họ, nhưng chỉ những thứ không phải cụ thể cho doanh nghiệp của họ và chỉ với sự chấp thuận của họ.

Kết quả rất đa dạng, nhưng tôi đã có thể xây dựng thư viện của mình theo thời gian. Và đã có trường hợp thư viện đã tăng thời gian phát triển cho các chủ nhân của tôi.


4

Tôi ngạc nhiên rằng câu trả lời được bình chọn nhiều nhất ở đây là "có". Là một nhà phát triển, câu trả lời luôn luôn là "hoàn toàn không", ngoại trừ trong trường hợp mã là:

  1. Một thư viện sáng tác trước đó mà tôi đã phát triển độc lập với các dự án hiện tại và tất cả các dự án trước đó, hoặc
  2. Một thư viện đã được tạo sẵn cho mục đích này, ví dụ, các công cụ nguồn mở.

Ai đó trả tiền cho bạn để viết mã. Không có sự hiểu biết và thỏa thuận khác, điều này tốt, không đúng khi người khác gặt hái những lợi ích TRỰC TIẾP của nó.

Bây giờ - từ TRỰC TIẾP. Nếu bạn đạt đến cuối dự án và bạn đã học được điều gì đó thú vị và tạo ra thứ gì đó hữu ích với dự án không liên quan trực tiếp đến tài sản trí tuệ của khách hàng, hãy dành chút thời gian và tạo cho mình một thư viện cho nó. Thậm chí tốt hơn - BẮT ĐẦU MỘT DỰ ÁN NGUỒN MỞ VỚI CNTT, để mọi người kết thúc giàu có hơn cho nó. Tôi nghĩ rằng nó hoàn toàn 100% về mặt đạo đức như tuyết được điều khiển, và thực sự, tôi đã tự mình làm điều đó.

Trong ngắn hạn, việc sử dụng lại mã bạn đã được trả tiền để viết cho người khác sẽ khiến bạn đau đầu về mặt pháp lý. Về lâu dài, nó sẽ khiến bạn đau đầu.


1
Bravo để trả lời trên cơ sở đạo đức, chứ không phải hợp pháp. Hãy nhớ rằng: toàn bộ đạo đức trong luật không có. Ngoài ra, tại Hoa Kỳ ít nhất, Luật đã không bị cản trở khỏi thực tế và xã hội. Luật và Luật sư dường như tích cực làm việc chống lại những điều tốt đẹp hơn.
Bruce Ediger

Fine và dandy trả lời nhưng không có gì để làm với pháp luật. Về mặt pháp lý, câu trả lời này thực sự là đất rung chuyển ở hầu hết các nước phương tây.
quick_now

2

Tôi chắc chắn đây là vấn đề pháp lý tùy thuộc vào nơi bạn sống / làm việc và những gì đã được thỏa thuận / hợp đồng của bạn.

Nếu tôi tự học một cái gì đó, trong thời gian riêng của tôi, tất cả các chi phí do tôi trả (máy tính, truy cập internet, phần mềm, v.v.), liệu họ có muốn tôi sử dụng nó trong công việc của mình không? Bạn tìm thấy một regex cho một dự án cá nhân và quyết định gửi email đến tài khoản công việc của bạn bởi vì bạn có thể có thể sử dụng nó. Sẽ là một chút ngớ ngẩn khi dành thời gian của công ty giả vờ tìm kiếm nó trên internet một lần nữa. Tất nhiên chúng tôi cố gắng cải thiện nghề của mình, đây là những gì được mong đợi của các lập trình viên, blah, blah, blah, nhưng nếu nó nằm trong một lĩnh vực bên ngoài lập trình hoặc thậm chí là CNTT thì sao? Tôi có thể giữ lại nếu họ muốn chơi trò chơi này.

Công ty có thể cố gắng giữ chặt chẽ mã tôi sản xuất. Đó chỉ là một nền tảng kém để xây dựng một mối quan hệ. Nếu họ quan tâm nhiều đến một vài dòng mã, tôi không thể tưởng tượng được mức độ họ sẽ thống trị thời gian của tôi; đó là giá trị nhiều hơn nữa.


1

Tôi cũng có những suy nghĩ tương tự trong quá khứ. Thật không may, tôi nghĩ rằng bất cứ điều gì bạn viết trực tiếp cho công việc của bạn về mặt kỹ thuật sẽ được giữ bởi bản quyền của chủ nhân của bạn. Bạn sẽ cần phải xin phép để sử dụng lại mã đó trong các công việc không liên quan đến công ty khác.

Mặt khác, nếu bạn viết mã trong thời gian rảnh rỗi cho một trong các dự án của riêng bạn, bạn có thể bảo vệ mã của mình bằng một số loại bản quyền và sau đó đề nghị cung cấp mã đó cho chủ nhân của bạn để sử dụng.

Dù bằng cách nào cũng cần có sự trao đổi rõ ràng về vấn đề này.

Tất nhiên, IANAL.


1

Câu hỏi của bạn rất giống với câu hỏi này " Nguồn mở - Có hợp pháp để tạo lại / nguồn mở một chương trình bạn đã tạo trước đây cho một công ty khác không? "

Tôi muốn nói rằng bạn đang ở trên cơ sở pháp lý run rẩy vì các công ty bạn làm việc có thể sở hữu mã bạn đã viết cho họ. Sẽ tốt hơn để mã hóa các thói quen từ đầu, nhưng thậm chí sau đó có thể có câu hỏi nếu bạn vẫn còn các bản sao của mã khác xung quanh.

[Tôi không phải là luật sư, vì vậy đừng hy vọng lời khuyên của tôi sẽ giúp bạn trong tòa án của pháp luật.]


+1 cho "Tôi không phải là luật sư, vì vậy đừng hy vọng lời khuyên của tôi sẽ giúp bạn trong tòa án của pháp luật".
Sardathrion - Phục hồi Monica

1

Tôi muốn nói rằng những phương thức / hàm chung chung đó tốt nhất không được giữ giữa các dự án. Hầu hết thời gian, bạn có thể sử dụng Boost hoặc bất cứ điều gì ngôn ngữ của bạn cung cấp để làm điều này. Hầu hết thời gian, những người được viết tốt hơn của bạn.

Một ý tưởng tốt là có một bộ các bài kiểm tra đơn vị cho những người đó và sử dụng những bài kiểm tra đó để kiểm tra mã kata của bạn.


1

Các công việc đang hướng đến châu Á nên viết lại mã trong khi tàu chạy nước rút vẫn tồn tại. Nếu bạn được trả tiền để viết mã, hãy viết nó hoặc dán nó và giả vờ rằng bạn đã viết lại nó trong khi làm điều gì đó thú vị. Hoặc thậm chí tốt hơn, làm việc tại nhà và trả một số lập trình viên lành nghề hơn, thông minh hơn và quan trọng nhất là rẻ hơn nhiều từ châu Á để viết mã cho bạn và bỏ túi tiền chênh lệch. Sau đó, bạn có thể ra ngoài và tận hưởng thế giới trước khi các vị thần công ty của chúng tôi đặt chúng tôi và tất cả chúng tôi đều làm việc trong các nhà máy sản xuất chip với giá 2 xu một giờ cho người tiêu dùng iphone Trung Quốc và Ấn Độ giàu có.


0

Tôi biết đây là một câu hỏi cũ nhưng ai đó đã trả lời nó và tôi cảm thấy sẽ là một ý tưởng tốt khi thêm một tài liệu tham khảo vào câu chuyện rất buồn của Serge Aleynikov . Trước khi bạn lấy bất kỳ mật mã nào từ công việc, hãy đọc về cách làm điều đó hủy hoại cuộc sống của anh ta và đưa anh ta vào .

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.