Potrebbe essere troppo tardi per te, in quanto potresti già aver contrattualmente contratto per farlo, e avresti potuto accettare termini mutualmente incompatibili con diversi clienti.
Ci sono due modi in cui puoi fornire ai tuoi clienti il tuo codice sorgente. Proprietà del copyright e concesso in licenza.
Alcuni clienti vorranno la proprietà del codice sorgente. Questo significa che alla fine del processo ti pagheranno dei soldi e in cambio darai loro il copyright del codice che crei per loro. Una ragione di questo è se vedono un potenziale significativo di proprietà intellettuale nel codice sorgente e potrebbe voler valutare questo valore nel loro bilancio aziendale. In questo scenario, non avrai diritto all'utilizzo continuato di quel codice sorgente per altri progetti, a meno che tu non ottenga anche una licenza dal tuo cliente che ti concede questa autorizzazione.
Se il tuo cliente acquista da te un prodotto "off-the-shelf", 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 che beneficino di un costo di acquisto inferiore a causa della più ampia base di clienti.
Tuttavia, la situazione in questa domanda è un miscuglio di entrambi.
Ecco cosa vorrei essere in grado di 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 hanno offerte in atto per il lavoro futuro basato su te che continui a utilizzare questo lavoro. Fai notare che questo ha comportato meno tempo per questo progetto per il tuo cliente e che, 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 sviluppare questo e altri progetti basati su questa libreria. Tuttavia, se preferiscono la proprietà di tutto il codice, sei disposto a creare una sostituzione, ma questo sarebbe un costo aggiuntivo.
A seconda di ciò a cui ti sei già impegnato, potresti dover scrivere una funzionalità sostitutiva gratuitamente o dare via il tuo codice sorgente.
Ricorda, ci sono diversi tipi di librerie. La libreria di modelli standard in C ++ è un buon esempio di una libreria che è inclusa a livello di codice sorgente ed è compilata in un eseguibile del progetto che potrebbe essere abbastanza simile a come hai usato il tuo codice comune.