นี่อาจจะสายเกินไปสำหรับคุณเนื่องจากคุณอาจตกลงทำสัญญาและคุณอาจตกลงยอมรับข้อกำหนดที่ไม่เข้ากันกับลูกค้ารายอื่น ๆ
มีสองวิธีที่คุณสามารถให้ซอร์สโค้ดแก่ลูกค้าของคุณ กรรมสิทธิ์ในลิขสิทธิ์และลิขสิทธิ์
ลูกค้าบางรายต้องการเป็นเจ้าของซอร์สโค้ด ซึ่งหมายความว่าในตอนท้ายของกระบวนการพวกเขาจะจ่ายเงินให้คุณและคุณจะต้องให้ลิขสิทธิ์ลิขสิทธิ์ของรหัสที่คุณสร้างให้พวกเขา เหตุผลหนึ่งก็คือหากพวกเขาเห็นศักยภาพที่สำคัญสำหรับทรัพย์สินทางปัญญาในซอร์สโค้ดและอาจต้องการมูลค่านี้ในงบดุลของ บริษัท ในสถานการณ์สมมตินี้คุณจะไม่มีสิทธิ์ในการใช้ซอร์สโค้ดนั้นต่อไปสำหรับโครงการอื่น ๆ เว้นแต่คุณจะได้รับใบอนุญาตจากลูกค้าของคุณที่ให้สิทธิ์นี้แก่คุณ
หากลูกค้าของคุณซื้อผลิตภัณฑ์ 'ปิดชั้นวาง' ด้วยตัวเองพวกเขาคาดว่าจะได้รับใบอนุญาตให้ใช้งานซอฟต์แวร์ไม่ใช่การเป็นเจ้าของซอร์สโค้ด พวกเขาควรคาดหวังว่าคุณจะขายซอฟต์แวร์เดียวกัน (หรือคล้ายกัน) ให้กับองค์กรอื่น ๆ และพวกเขาหวังว่าจะได้รับประโยชน์จากการซื้อที่ลดลงเนื่องจากฐานลูกค้าที่กว้างขึ้น
อย่างไรก็ตามสถานการณ์ในคำถามนี้เป็นความผิดพลาดของทั้งสอง
นี่คือสิ่งที่ฉันอยากจะทำ ฉันจะให้สิทธิ์ใช้งานแก่ลูกค้าของคุณเพื่อใช้ (และแก้ไข) รหัสที่แชร์ของคุณ หากลูกค้าถามฉันจะชี้ให้เห็นว่านี่เป็นรหัสที่ใช้ร่วมกันซึ่งคุณได้ใช้ไปแล้วในหลายโครงการและมีการเสนอราคาปัจจุบันสำหรับการทำงานในอนาคตที่อิงกับคุณที่จะใช้งานนี้ต่อไป ชี้ให้เห็นว่าสิ่งนี้ทำให้โครงการของคุณมีเวลาน้อยลงสำหรับลูกค้าของคุณและพวกเขาจ่ายราคาที่ต่ำลงตามผลลัพธ์ เช่นเดียวกับห้องสมุดสาธารณะอื่น ๆ ของรหัสที่ใช้โดยโครงการพวกเขามีใบอนุญาตในการใช้รหัสนี้และเพื่อให้ทีมพัฒนาอื่น ๆ ในการพัฒนานี้และโครงการอื่น ๆ ตามห้องสมุดนี้ อย่างไรก็ตามหากพวกเขาต้องการเป็นเจ้าของรหัสทั้งหมดคุณยินดีที่จะสร้างทดแทน แต่นี่จะเป็นค่าใช้จ่ายเพิ่มเติม
คุณอาจต้องเขียนฟังก์ชันการแทนที่โดยไม่เสียค่าใช้จ่ายหรือแจกซอร์สโค้ดทั้งนี้ขึ้นอยู่กับสิ่งที่คุณได้ทำไปแล้ว
จำไว้ว่ามีห้องสมุดหลายประเภท ไลบรารีเทมเพลตมาตรฐานใน C ++ เป็นตัวอย่างที่ดีของห้องสมุดที่รวมอยู่ในระดับซอร์สโค้ดและคอมไพล์ลงในโครงการปฏิบัติการที่อาจคล้ายกับวิธีที่คุณใช้รหัสทั่วไปของคุณ