Tengo un acuerdo con uno de mis clientes así. Básicamente, yo soy dueño del código, pero tienen derecho a usar el código como deseen, siempre y cuando no transfieran o vendan el software sin mi autorización expresa.
Conservo todos los derechos sobre la base de código y puedo vender el software a otros según lo considere oportuno.
Otra cláusula en todos mis contratos establece que si alguna vez cierro mi negocio, cada cliente recibirá una copia del código y la base de datos para fines de mantenimiento.
En tu caso, consideraría un par de cosas diferentes.
-
¿Estás interesado en vender a otros? Si es así, asegúrate de retener esos derechos y darles derechos sobre el código solo para fines de mantenimiento.
-
Si solo les interesa lo que sucederá si cierras el negocio, entonces puedes hacer un anexo al contrato original que establezca que recibirán el código cuando ya no estés prestando servicios.
-
Asegúrate de que cuando vendas el código también obtengas un contrato de mantenimiento por un período decente, como 5 años y luego se renueva automáticamente cada año que no decidan terminar el contrato después de eso. Asegúrate también de agregar un aumento del x% en las tarifas de mantenimiento, o alguna otra forma de aumentar las tarifas. También puse un límite en el número de horas para agregar nuevas funciones con un precio por hora para cualquier cosa que exceda eso.
-
Si vendes, asegúrate de obtener un buen precio por ello. Algo cercano a lo que cobraste por crearlo sería un buen punto de partida.
-
Implica a un abogado, puedes elaborar el borrador inicial con algo como rocketlaw.com, pero haz que un abogado lo revise antes de presentarlo al cliente. Garantizo que tendrán a su abogado para revisarlo. Es caro, así que tenlo en cuenta cuando estés negociando el precio.
-
Es posible que quieras incluir alguna cláusula que te permita utilizar partes del código que no son específicas del negocio en otros proyectos. Por ejemplo, si creaste un cuadro desplegable muy bueno, querrás poder usarlo en otros proyectos, o tal vez el sistema de seguridad, etc.
-
Asegúrate de que cualquier código abierto que tengas no haya hecho público legalmente el código. Algunas de esas licencias parecen permitir su uso, pero hay cláusulas que hacen que cualquier código que agregues deba seguir la misma licencia (gpl, lgpl, creative commons, etc.) y liberar el código si se solicita.
Recuerda que en este momento tienes mucha ventaja, si a él no le gustan las cláusulas, puedes continuar como está. No estás tratando de vender el código, él está tratando de comprarlo. Cada cláusula que elimina, aumenta el precio que tienes que cobrar. Por ejemplo, si no puede usar el sistema de seguridad, entonces el precio aumenta al menos tanto como le costaría construir otro desde cero.
Costará mucho comprar y volver a capacitar a su personal en un nuevo sistema. Y dependiendo de cómo esté redactado el contrato original, es posible que ni siquiera tengan derechos sobre sus datos, o el formato en el que se encuentran. Mis contratos generalmente establecen que los datos son propiedad del cliente, pero no indican el formato de esos datos, por lo que si quiero presentarlo como un archivo csv desnormalizado gigante, puedo hacerlo.
Algunas ideas de todos modos.