これは、あなたがすでに契約上これを行うことに同意している可能性があり、異なる顧客と相互に互換性のない条件に同意している可能性があるため、手遅れかもしれません。
顧客にソースコードを提供する方法は2つあります。著作権の所有権とライセンス。
一部のお客様は、ソースコードの所有権を求めます。これは、プロセスの最後に彼らがあなたにお金を支払うことを意味し、その代わりにあなたが彼らのために作成したコードの著作権著作権を彼らに与えるでしょう。この理由の1つは、ソースコードに知的財産の重要な可能性があり、会社のバランスシートでこれを評価したい場合です。このシナリオでは、この資格を付与した顧客からライセンスも取得しない限り、他のプロジェクトでそのソースコードを継続して使用する資格はありません。
顧客が自分で「既製」の製品を購入している場合、彼らはソースコードの所有権ではなく、ソフトウェアを使用するためのライセンスを受け取ることを期待するでしょう。彼らは、あなたが同じ(または類似の)ソフトウェアを他の多くの組織に販売していること、そして顧客ベースが広いために購入コストが安くなることを期待しているはずです。
ただし、この質問の状況は、この2つのごまかしです。
これが私にできることです。共有コードを使用(および変更)するライセンスを顧客に付与します。顧客からクイズされた場合、これは既に複数のプロジェクトで使用している共有コードであり、この作業を継続して使用することに基づいた将来の作業のために現在の入札単価が設定されていることを指摘します。これにより、このプロジェクトでの顧客の時間は短縮され、結果として顧客は低価格で支払ったことになります。プロジェクトで使用されるコードの他の共有ライブラリと同様に、このコードを使用し、他の開発チームがこれを開発するためのライセンスと、このライブラリに基づく他のプロジェクトを許可するライセンスがあります。ただし、すべてのコードの所有権を希望する場合は、代替品を作成しても構いませんが、これは追加料金になります。
すでにコミットした内容によっては、代替機能を無料で作成するか、ソースコードを提供する必要があります。
ライブラリにはさまざまな種類があることを忘れないでください。C ++の標準テンプレートライブラリは、ソースコードレベルに含まれるライブラリの良い例であり、一般的なコードの使用方法と非常によく似たプロジェクト実行可能ファイルにコンパイルされます。