Questo potrebbe essere troppo tardi per te, in quanto potresti aver già concordato contrattualmente di farlo e potresti aver concordato termini reciprocamente incompatibili con clienti diversi.
Esistono due modi in cui puoi fornire ai tuoi clienti il tuo codice sorgente. Proprietà del copyright e licenza.
Alcuni clienti vorranno la proprietà del codice sorgente. Ciò significa che alla fine del processo ti pagheranno soldi e in cambio darai loro il copyright del codice che crei per loro. Uno dei motivi è se vedono un potenziale significativo per la proprietà intellettuale nel codice sorgente e potrebbero voler valutarlo nel bilancio della propria azienda. In questo scenario, non avrai diritto all'uso continuato di quel codice sorgente per altri progetti, a meno che tu non ottenga anche una licenza dal tuo cliente che ti dà questo diritto.
Se il cliente sta acquistando un prodotto "pronto all'uso" da soli, si aspetterebbe di ricevere una licenza per utilizzare il software, non la proprietà del codice sorgente. Dovrebbero aspettarsi che tu stia vendendo lo stesso (o simile) software a molte altre organizzazioni e che si spera stiano beneficiando di un costo di acquisto inferiore a causa della più ampia base di clienti.
Tuttavia, la situazione in questa domanda è un miscuglio dei due.
Ecco cosa vorrei poter fare. Concederei al tuo cliente una licenza per utilizzare (e modificare) il tuo codice condiviso. Se interrogato dal cliente, vorrei sottolineare che questo è un codice condiviso che hai già utilizzato in più progetti e che sono in atto offerte per lavori futuri che si basano sul fatto che continui a utilizzare questo lavoro. sottolinea che ciò ha comportato meno tempo per questo progetto per i tuoi clienti e di conseguenza hanno pagato un prezzo inferiore. Come altre librerie condivise di codice utilizzate dal progetto, dispongono di una licenza per utilizzare questo codice e per consentire ad altri team di sviluppo di svilupparlo e altri progetti basati su questa libreria. Tuttavia, se preferiscono la proprietà di tutto il codice, sei disposto a creare un sostituto, ma questo sarebbe un costo aggiuntivo.
A seconda di cosa ti sei già impegnato, potresti dover scrivere una funzionalità sostitutiva gratuitamente o regalare il tuo codice sorgente.
Ricorda, ci sono diversi tipi di librerie. La libreria di modelli standard in C ++ è un buon esempio di libreria inclusa a livello di codice sorgente e compilata in un eseguibile del progetto che potrebbe essere abbastanza simile a come è stato utilizzato il codice comune.