Ini mungkin sudah terlambat untuk Anda, karena Anda mungkin telah menyetujui kontrak untuk melakukan ini, dan Anda bisa setuju untuk persyaratan yang saling tidak kompatibel dengan pelanggan yang berbeda.
Ada dua cara di mana Anda dapat memberikan kode sumber kepada pelanggan Anda. Kepemilikan hak cipta dan berlisensi.
Beberapa pelanggan akan menginginkan kepemilikan kode sumber. Ini berarti, pada akhir proses mereka akan membayar Anda dan Anda akan memberi mereka hak cipta dari kode yang Anda buat untuk mereka. Salah satu alasan untuk ini adalah jika mereka melihat potensi signifikan untuk kekayaan intelektual dalam kode sumber, dan mungkin ingin menilai ini di neraca perusahaan mereka. Dalam skenario ini, Anda tidak akan memiliki hak untuk terus menggunakan kode sumber untuk proyek lain, kecuali jika Anda juga mendapatkan lisensi dari pelanggan Anda yang memberikan Anda hak ini.
Jika pelanggan Anda membeli produk 'off the shelf' dari Anda sendiri, mereka akan mengharapkan untuk menerima lisensi untuk menggunakan perangkat lunak, bukan kepemilikan kode sumber. Mereka seharusnya mengharapkan bahwa Anda menjual perangkat lunak yang sama (atau serupa) kepada banyak organisasi lain, dan semoga mereka mendapat manfaat dari biaya pembelian yang lebih rendah karena basis pelanggan yang lebih luas.
Namun, situasi dalam pertanyaan ini adalah kesalahan dari keduanya.
Inilah yang ingin saya lakukan. Saya akan memberi pelanggan Anda lisensi untuk menggunakan (dan memodifikasi) kode bersama Anda. Jika ditanyai oleh pelanggan, saya akan tunjukkan bahwa ini adalah kode bersama yang telah Anda gunakan di banyak proyek dan ada tawaran saat ini untuk pekerjaan selanjutnya yang didasarkan pada Anda yang terus menggunakan pekerjaan ini. tunjukkan bahwa ini telah menghasilkan lebih sedikit waktu pada proyek ini untuk pelanggan Anda dan bahwa mereka telah membayar harga yang lebih rendah sebagai hasilnya. Seperti pustaka kode bersama lainnya yang digunakan oleh proyek, mereka memiliki lisensi untuk menggunakan kode ini, dan untuk memungkinkan tim pengembangan lainnya untuk mengembangkan ini, dan proyek-proyek lain berdasarkan pustaka ini. Namun, jika mereka lebih suka kepemilikan semua kode, Anda bersedia membuat pengganti, tetapi ini akan menjadi biaya tambahan.
Tergantung pada apa yang telah Anda komit sendiri, Anda mungkin harus menulis fungsionalitas penggantian secara gratis, atau memberikan kode sumber Anda.
Ingat, ada berbagai jenis perpustakaan. Perpustakaan Templat Standar di C ++ adalah contoh yang baik dari perpustakaan yang disertakan pada tingkat kode sumber dan dikompilasi ke dalam proyek yang dapat dieksekusi yang mungkin sangat mirip dengan bagaimana Anda telah menggunakan kode umum Anda.