Điều này có thể là quá muộn đối với bạn, ở chỗ bạn có thể đã đồng ý hợp đồng để làm điều này và bạn có thể đã đồng ý với các điều khoản không tương thích lẫn nhau với các khách hàng khác nhau.
Có hai cách để bạn có thể cung cấp cho khách hàng mã nguồn của mình. Quyền sở hữu bản quyền và được cấp phép.
Một số khách hàng sẽ muốn sở hữu mã nguồn. Điều này có nghĩa là, vào cuối quá trình họ sẽ trả tiền cho bạn và đổi lại bạn sẽ trao cho họ bản quyền bản quyền của mã bạn tạo cho họ. Một lý do cho điều này là nếu họ thấy tiềm năng đáng kể đối với tài sản trí tuệ trong mã nguồn và có thể muốn định giá này trên bảng cân đối công ty của họ. Trong trường hợp này, bạn sẽ không có quyền tiếp tục sử dụng mã nguồn đó cho các dự án khác, trừ khi bạn cũng có được giấy phép từ khách hàng của bạn cung cấp cho bạn quyền này.
Nếu khách hàng của bạn đang mua một sản phẩm 'ngoài kệ' từ chính họ, họ sẽ mong nhận được giấy phép sử dụng phần mềm, chứ không phải quyền sở hữu mã nguồn. Họ nên hy vọng rằng bạn đang bán phần mềm tương tự (hoặc tương tự) cho nhiều tổ chức khác và họ hy vọng sẽ được hưởng lợi từ chi phí mua hàng thấp hơn do cơ sở khách hàng rộng hơn.
Tuy nhiên, tình huống trong câu hỏi này là một sự nhầm lẫn của cả hai.
Đây là những gì tôi muốn có thể làm. Tôi sẽ cấp cho khách hàng của bạn giấy phép sử dụng (và sửa đổi) mã được chia sẻ của bạn. Nếu khách hàng thắc mắc, tôi sẽ chỉ ra rằng đây là mã được chia sẻ mà bạn đã sử dụng trong nhiều dự án và có giá thầu hiện tại cho công việc trong tương lai dựa trên việc bạn tiếp tục sử dụng công việc này. chỉ ra rằng điều này đã dẫn đến ít thời gian hơn cho dự án này cho khách hàng của bạn và kết quả là họ đã trả giá thấp hơn. Giống như các thư viện chia sẻ mã khác được sử dụng bởi dự án, họ có giấy phép sử dụng mã này và cho phép các nhóm phát triển khác phát triển mã này và các dự án khác dựa trên thư viện này. Tuy nhiên, nếu họ muốn sở hữu tất cả các mã, bạn sẵn sàng tạo một sự thay thế, nhưng đây sẽ là một khoản phí bổ sung.
Tùy thuộc vào những gì bạn đã cam kết, bạn có thể phải viết một chức năng thay thế miễn phí hoặc cho đi mã nguồn của bạn.
Hãy nhớ rằng, có nhiều loại thư viện khác nhau. Thư viện mẫu tiêu chuẩn trong C ++ là một ví dụ điển hình về thư viện được bao gồm ở cấp mã nguồn và được biên dịch thành một tệp thực thi dự án có thể khá giống với cách bạn đã sử dụng mã chung của mình.