Có hợp pháp để sử dụng lại mã trong các dự án của khách hàng khác không?


22

Tôi đang làm việc như một nhà phát triển phần mềm độc lập cho các ứng dụng di động. Một khách hàng yêu cầu tôi phát triển một ứng dụng di động. Vì vậy, tại thời điểm này tôi đang tính toán thời gian và nỗ lực để viết một đề nghị cho dự án này.

Bản thân ứng dụng sẽ chỉ được sử dụng trong một thời gian nhất định vì nó có liên quan đến một sự kiện nhất định sau đó nếu không sẽ vô dụng. Nhưng chức năng cơ bản của ứng dụng sẽ được sử dụng lại cho những khách hàng khác muốn có một ứng dụng tương tự cho sự kiện của họ.

Hiện tại tôi đang tự hỏi liệu có ổn không khi phát triển ứng dụng cho khách hàng, hãy để anh ta trả tiền phát triển và tái sử dụng một phần mã nguồn cho ứng dụng của khách hàng khác?

Vì vậy, cách tốt nhất để tôi đối phó với kịch bản này là gì?

  • Ai thuộc về mã nguồn của ứng dụng?
  • Tôi có phải cung cấp mã nguồn cho khách hàng khi họ trả tiền cho sự phát triển không?
  • Nếu tôi phải, tôi vẫn có thể giữ một bản sao của nó và sử dụng lại sau?
  • Tôi có phải yêu cầu khách hàng sử dụng lại mã không?
  • Tôi có phải làm việc với một số loại mô hình cấp phép ở đây không. Và để khách hàng đầu tiên chỉ trả một phần nhất định của sự phát triển để tôi có thể sử dụng lại mã mà không có bất kỳ mối quan tâm nào?

Tôi hy vọng tôi đã làm cho tình hình của tôi rõ ràng. Tôi đang mong chờ câu trả lời của bạn.


Bạn đã thiết lập một hợp đồng chính thức với khách hàng chưa?
Thomas Owens

Không, hiện tại tôi đang trong giai đoạn lập kế hoạch. Cho đến bây giờ tôi chỉ nói chuyện với khách hàng về các yêu cầu.
Flo

5
@Flo - Viết hợp đồng giải quyết tất cả những mối quan tâm này. Theo mặc định, bản quyền thuộc về bạn với tư cách là tác giả. Tất nhiên nếu bạn đồng ý với một hợp đồng có ghi khác thì đó là ở bạn.
Ramhound

8
Bạn nên tham khảo ý kiến ​​một luật sư, thay vì dựa vào phỏng đoán của một nhóm lập trình viên không biết chi tiết về tình huống của bạn và luật pháp địa phương của bạn.
Paul Tomblin

Câu trả lời:


26

Bạn nên quyết định trước khi bắt đầu dự án, ai sẽ duy trì quyền sở hữu mã.

Nếu họ vui vẻ cho phép bạn giữ quyền sở hữu thì bạn vẫn ổn để sử dụng nó trong các dự án khác. Nếu họ muốn sở hữu sau đó thì đó là một điểm thương lượng.


6
Bạn có thể đề xuất một thỏa thuận trong đó bạn có thể sử dụng lại mã, nhưng không phải trong các dự án cho các đối thủ cạnh tranh của khách hàng. Điều đó có vẻ ngon miệng hơn từ quan điểm của họ.
Emilio M Bumachar

4
Nếu họ phản đối tùy chọn thông thường là trích dẫn 2rates. 1 nếu tôi có thể sử dụng lại mã và thư viện hiện có và 2. số tiền gấp 10 lần nếu tôi phải tạo lại mọi thứ từ đầu cho dự án này. Trong thực tế, bạn đưa vào một chút về "tái sử dụng mã và thư viện tiêu chuẩn" chỉ để che đậy bản thân và không ai nhận thấy hay quan tâm.
Martin Beckett

3
+1 cho Martin Beckett. Bạn nên có hai cơ sở mã trong bất kỳ dự án nào; Một tập hợp các thư viện "phổ biến" chứa mã với ứng dụng toàn cầu mà bạn "cấp phép" cho khách hàng của mình và mã "tùy chỉnh" mà khách hàng của bạn sẽ thực sự sở hữu khi hoàn thành. Bạn có thể quy định trong hợp đồng rằng việc phát triển các thư viện "chung" với các tính năng mới để đáp ứng các yêu cầu của dự án này vẫn có thể xuất hóa đơn. Bạn sẽ phải thương lượng với từng trường hợp khách hàng về những gì đủ điều kiện là "chung"; khách hàng có thể muốn một cơ sở mã không hoàn toàn phụ thuộc vào mã được cấp phép của bạn.
KeithS

6

Vì bạn chưa có hợp đồng, bạn cần giải quyết những vấn đề này với khách hàng trước khi ký hợp đồng cuối cùng. Theo hiểu biết của tôi, điều này sẽ xảy ra nếu khách hàng đồng ý với ước tính của bạn về thời gian và chi phí, vì vậy đó là điều bạn nên suy nghĩ về việc thảo luận với khách hàng ngay bây giờ, cùng với các yêu cầu. Đây là những điều thường được bao gồm trong một tài liệu như vậy. Những gì được bao gồm phải phù hợp với cả bạn và người trả tiền cho sản phẩm, mặc dù tùy thuộc vào người hoặc tổ chức, bạn có thể không nhận được mọi thứ bạn muốn.

Nếu bạn không có nhiều kinh nghiệm trong việc viết hợp đồng, hoặc nếu bạn có câu hỏi rất cụ thể, người tốt nhất để hỏi sẽ là một luật sư chuyên về hợp đồng và luật kinh doanh - họ sẽ biết liệu những gì bạn viết sẽ đứng lên Tòa án nên có một vấn đề. Bạn sẽ không muốn một sai lầm trong hợp đồng của bạn gây ra vấn đề sau này.


7
+1 Tôi cũng muốn nói thêm rằng nhận được tư vấn pháp lý hoặc giúp viết hợp đồng đầu tiên của bạn là một ý tưởng hay để bạn có thể làm cho đúng. Nói chung, hầu hết các giao dịch đều rất giống nhau, vì vậy khá dễ dàng sử dụng các hợp đồng cũ của bạn làm mẫu cho các hợp đồng mà bạn viết cho các khách hàng mới sau này.
maple_shaft

4

Các câu trả lời cho đến nay đã được xuất sắc. Tôi hoàn toàn đồng ý với lời khuyên để:

  • hỏi luật sư
  • lập một hợp đồng mỗi khi bạn làm việc với bất cứ ai
  • tiếp tục làm việc với luật sư của bạn
  • lợi nhuận!

Trong tình huống này, bạn đã biết rằng "chức năng cơ bản của ứng dụng sẽ có thể sử dụng lại cho các khách hàng khác" và thực tế tôi chắc chắn rằng bạn (và những người khác) đã trải qua các tình huống trong đó bạn biết một số chức năng hoặc khung cơ bản - chúng web, điện thoại di động, máy tính để bàn, hoặc cách khác - sẽ được sử dụng lại. Ý tôi là thực sự, tại sao chúng ta sẽ không sử dụng lại thứ gì đó mà chúng ta biết hoạt động và chúng ta quen thuộc? Có lẽ tất cả chúng ta đều làm điều đó mọi lúc.

Điều này có thể không làm việc cho bạn, nhưng nó đã làm việc cho tôi trong nhiều năm qua:

  • Ăn chi phí phát triển của bất cứ điều gì bạn nghĩ rằng bạn sẽ sử dụng lại, giữ quyền sở hữu và cấp phép cho khách hàng của bạn. Không có tiền bên ngoài thay đổi trong quá trình này, để giữ quyền sở hữu rõ ràng.

Trong tình huống đó, với sự giúp đỡ của luật sư, bạn có thể nói rõ rằng khách hàng của bạn đang trả tiền cho mọi thứ được xây dựng dựa trên chức năng cơ bản mà bạn cung cấp, họ sở hữu tùy chỉnh đó nhưng không phải là cơ sở và bạn tiếp tục được tự do phát triển cho người khác theo cách tương tự.

Nếu khách hàng yêu cầu độc quyền sử dụng, thì bạn có thể cung cấp cho họ với mức giá trả cho bạn thời gian, công sức và không có khả năng bán cho bất kỳ ai khác trong tương lai.

Nhược điểm, tất nhiên, là bạn đang phát triển một cái gì đó miễn phí. Bạn phải chắc chắn rằng nó sẽ có thể tái sử dụng và những người khác sẽ trả tiền cho bạn, nếu không đó là một canh bạc tồi. Nhưng nếu bạn có kế hoạch trở thành một nhà phát triển độc lập trong một thời gian và có một cơ sở khách hàng - hoặc ít nhất là muốn - dòng suy nghĩ này có thể là điều cần xem xét trong thời gian dài.

Và nói chuyện với một luật sư!


3

Ai thuộc về mã nguồn của ứng dụng? Tôi có phải cung cấp mã nguồn cho khách hàng khi họ trả tiền cho sự phát triển không?

Điều này phụ thuộc vào hợp đồng. Nói chung, bạn phải hỏi khách hàng về những gì được gọi là độc quyền . Ví dụ: bạn có thể tính phí nhiều hơn cho phát triển độc quyền (và sau đó khách hàng sẽ sở hữu mã); Ngoài ra, bạn có thể nói với họ rằng khách hàng sẽ phải trả ít hơn nhưng bạn đang sở hữu nguồn hợp pháp. Bạn có thể cung cấp / cài đặt phiên bản phần mềm chỉ nhị phân cho khách hàng để khách hàng sẽ phải đến gặp bạn để sửa đổi.

Nếu tôi phải, tôi vẫn có thể giữ một bản sao của nó và sử dụng lại sau? Tôi có phải yêu cầu khách hàng sử dụng lại mã không?

Nói chung, giữ một bản sao không phải là bất hợp pháp / phi đạo đức. Bạn có thể sử dụng nó khi khách hàng yêu cầu phát triển hơn. Tuy nhiên, phân phối mã (cho người khác) nếu thỏa thuận này là độc quyền, là không đúng.

Tôi có phải làm việc với một số loại mô hình cấp phép ở đây không. Và để khách hàng đầu tiên chỉ trả một phần nhất định của sự phát triển để tôi có thể sử dụng lại mã mà không có bất kỳ mối quan tâm nào?

Không chỉ từ quan điểm sử dụng lại mã khác, quy trình cấp phép phải có mặt để xác định tất cả các mục của khách hàng và mối quan tâm của bạn. Vì vậy, bạn phải cấp phép bất kể ngay cả khi thỏa thuận là một phía. Ngoài ra, bạn nên bao gồm các quy định để phát triển trong tương lai cho cùng một khách hàng.


1
-1, Không có lý do gì bạn không thể phân phối mã nguồn ngay cả khi bạn sở hữu nó.
dùng606723

@ user606723 bạn sẽ đọc toàn bộ câu? However, distributing code (to someone else) if the deal was exclusive, is not right.tức là nếu bạn đã phát triển mã độc quyền cho một khách hàng phân phối cho người khác thì không phù hợp!
Dipan Mehta

"Ngoài ra, bạn có thể nói với họ rằng khách hàng sẽ phải trả ít hơn nhưng bạn đang sở hữu nguồn hợp pháp. Bạn chỉ có thể cung cấp / cài đặt nhị phân cho khách hàng. " <- đây là những gì tôi đang đề cập. Bạn có thể cung cấp quyền không độc quyền cho mã nguồn.
dùng606723

@ user606723 không phải điều này cũng nằm trong câu trả lời của tôi sao? alternatively you can tell them customer will have to pay less but you are legally owning the source- điểm bất đồng là gì?
Dipan Mehta

1
@DipanMehta: Tôi đồng ý với người dùng606723; và chỉnh sửa mới nhất của bạn đã không khắc phục vấn đề. Vấn đề là "[...] thay vào đó, bạn có thể nói với họ rằng khách hàng sẽ phải trả ít hơn nhưng bạn đang sở hữu nguồn hợp pháp. Bạn có thể cung cấp / cài đặt phiên bản phần mềm chỉ nhị phân cho khách hàng [...]" có vẻ như bạn không thể cung cấp cho khách hàng mã nguồn nếu bạn muốn vẫn sở hữu nó. Thực tế là bạn vẫn có thể cấp phép mã nguồn cho họ cho các mục đích cụ thể, mà không từ bỏ quyền sở hữu và / hoặc từ bỏ tất cả các quyền.
ruakh

-1

Bạn luôn có thể sử dụng trong mã của mình các thư viện khác, ví dụ nguồn mở. Rõ ràng khách hàng sẽ không có bản quyền đối với họ. Trong trường hợp đặc biệt, bạn có thể sử dụng các thư viện được viết bởi bạn. Khách hàng trả tiền cho việc tùy chỉnh - phần đó, được thiết kế cho anh ta và nhu cầu kinh doanh của anh ta. Tất cả mọi thứ không dành riêng cho người dùng và sẽ được sử dụng trong nhiều dự án có thể là thư viện của riêng bạn. Tôi thấy không có vấn đề ở đó.

Vấn đề sẽ là nếu bạn sử dụng lại giao diện hoặc logic kinh doanh hoặc thậm chí bán lại cùng một dự án cho người khác. Mã tiện ích là thứ mà khách hàng thường không biết và cũng không quan tâm.


1
Tất nhiên, tất cả điều này sẽ phải được tiết lộ cho khách hàng.
dùng606723

1
Không, nó sẽ không. Các giấy phép như Apache hoặc MIT cho phép sử dụng thương mại.
Thủy thủ Danubian

-1

Các câu trả lời khác là quá đơn giản. Tôi không có nghĩa là có một câu trả lời hoàn chỉnh, chỉ để chỉ ra một vài điều.

  1. Bạn có thể trao quyền hoặc bạn có thể trao quyền độc quyền.
  2. Nếu bạn trao quyền độc quyền, bạn có thể duy trì điều đó như một phần của thỏa thuận, bạn sẽ giữ quyền không độc quyền. (Điều này sẽ cho phép bạn sử dụng mã / chương trình cá nhân)
  3. Ngay cả khi bạn không cung cấp quyền độc quyền, bạn vẫn có thể cung cấp quyền không độc quyền để sử dụng, sửa đổi và phân phối mã nguồn. Cả hai không loại trừ lẫn nhau.

-1 câu trả lời của bạn không bao gồm bất kỳ điểm nào mà người khác chưa nói trước đây!
Dipan Mehta
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.