Esto puede ser demasiado tarde para usted, ya que es posible que ya haya acordado contractualmente hacer esto, y podría haber acordado términos mutuamente incompatibles con diferentes clientes.
Hay dos formas en que puede proporcionar a sus clientes su código fuente. Propiedad de los derechos de autor y con licencia.
Algunos clientes querrán la propiedad del código fuente. Esto significa que, al final del proceso, le pagarán dinero y, a cambio, les otorgará derechos de autor sobre el código que cree para ellos. Una razón para esto es si ven un potencial significativo para la propiedad intelectual en el código fuente, y pueden querer valorar esto en el balance de su empresa. En este escenario, no tendrá derecho a continuar usando ese código fuente para otros proyectos, a menos que también obtenga una licencia de su cliente que le otorgue este derecho.
Si su cliente está comprando un producto 'listo para usar', esperarían recibir una licencia para usar el software, no la propiedad del código fuente. Deben esperar que esté vendiendo el mismo software (o similar) a muchas otras organizaciones, y que se beneficien de un menor costo de compra debido a la mayor base de clientes.
Sin embargo, la situación en esta pregunta es una mezcla de los dos.
Esto es lo que me gustaría poder hacer. Le otorgaría a su cliente una licencia para usar (y modificar) su código compartido. Si el cliente lo interrogara, señalaría que este es un código compartido que ya ha utilizado en varios proyectos y que tiene ofertas actuales para el trabajo futuro que se basan en que continúe usando este trabajo. Señale que esto ha resultado en menos tiempo en este proyecto para su cliente y que, como resultado, han pagado un precio más bajo. Al igual que otras bibliotecas de código compartidas utilizadas por el proyecto, tienen una licencia para usar este código y para permitir que otros equipos de desarrollo desarrollen este y otros proyectos basados en esta biblioteca. Sin embargo, si prefieren la propiedad de todo el código, está dispuesto a crear un reemplazo, pero esto sería un cargo adicional.
Dependiendo de lo que ya se haya comprometido, podría tener que escribir una funcionalidad de reemplazo de forma gratuita o regalar su código fuente.
Recuerde, hay diferentes tipos de bibliotecas. La Biblioteca de plantillas estándar en C ++ es un buen ejemplo de una biblioteca que se incluye a nivel de código fuente y se compila en un ejecutable de proyecto que puede ser bastante similar a cómo ha utilizado su código común.