El cliente quiere el código fuente, pero contiene una gran cantidad de código compartido que reutilizo con otros proyectos

94

Tengo un cliente al que me gustaría entregar el código fuente con un binario de aplicación desarrollado. Originalmente no dijeron nada sobre el código fuente, pero recientemente dijeron que lo necesitaban. El contrato no está finalizado. Estuvieron de acuerdo con el trabajo, no firmaron y luego regresaron con esta cláusula.

El problema es: tengo una base de código que he creado a lo largo de los años y que he utilizado como plantilla para la mayoría de las aplicaciones que escribo. Es mucho más grande que el alcance del proyecto.

También tengo la intención de usarlo para un producto, por lo que realmente no deseo proporcionarlo para un proyecto relativamente pequeño.

Supongo que no es la primera vez que ocurre en esta industria. ¿Cuál es la mejor manera de evitar este problema? Supongo que cosas como bibliotecas compartidas podrían ayudar.

    
pregunta robby987 05.04.2015 - 04:27

8 respuestas

135

Lo primero que hay que tener en cuenta es que el código fuente tiene un valor separado de los binarios. Es perfectamente razonable negarse a firmar un contrato que requiera la entrega del código fuente, o insistir en pagos adicionales para la entrega del código fuente. Los contratos son documentos de doble vía. No permita que la otra parte dicte lo que se requiere solo porque son "grandes compañías" y "haga esto todo el tiempo". Primero, decida qué usted está dispuesto a entregar y cómo usted desea ser compensado. Luego lleve su contrato a un abogado y averigüe qué debe cambiar. Entonces, usted negocia.

No hagas lo que muchos jóvenes hacen cuando comienzan a contratar. No solo firme porque parece que tienen mucha experiencia y usted no. Esa es una buena manera de ser estafado.

Mire en por qué que quieren la fuente. Es posible que lo deseen, por lo que tienen la opción de usar otro desarrollador más adelante. O tal vez lo quieran solo porque temen que un autobús te pueda atropellar y de repente se queden con binarios que no pueden mejorar. Si es este segundo caso, busque en un Servicio de depósito de garantía de código de software . Estos servicios contienen el código fuente en caso de que usted se declare en bancarrota o no pueda mantener el software. Esto puede satisfacer tanto su deseo de mantener su código como propietario para atender a otros clientes como su deseo de no quedarse con la bolsa con un conjunto de binarios que no se puede mantener si sucede algo malo.

    
respondido por el Steven Burnap 05.04.2015 - 05:11
66

"No" es una respuesta perfectamente fina, en realidad es una respuesta increíblemente útil que, por alguna razón, no puedo entender, está muy subestimada.

"Hola, de repente hemos decidido que solo queremos el código fuente también, sin cargo".
"Hola, no".

No es tan difícil, realmente.

Luego, si desean pagar grandes cantidades de dinero por lo que ya le le debe, puede darles una versión recortada de su aplicación, que incluye solo el fuentes que realmente necesitan, y cuidando de que obtengan los derechos exclusivos no

No compliques las cosas simples.

    
respondido por el o0'. 05.04.2015 - 16:42
25

Su pregunta es: "¿Cuál es la mejor manera de evitar este problema?" Pero, ¿qué ves como el problema? Otros han señalado correctamente que es una cuestión de negociación: todo tiene un valor, y depende de usted darle al cliente un precio por proporcionar lo que se solicita.

Pero también debe considerar cuidadosamente, y escribir en el contrato, las implicaciones de proporcionar el código. ¿Es solo para que el cliente pueda verlo? ¿Puede el cliente modificarlo? Y, en particular, ¿consideraría otorgar a su cliente derechos exclusivos sobre la base de código que ha creado a lo largo de los años y se usa como plantilla para la mayoría de las aplicaciones para que nunca más pueda volver a usarla en el futuro? ?

Debe asegurarse de que el contrato indique explícitamente quién tiene derechos para usar el código y de qué manera.

    
respondido por el Reg Edit 05.04.2015 - 10:06
18

Recuerde que cualquier código fuente requiere una licencia. Si entrega el código fuente, la compañía puede usar el código fuente para hacer cualquier cosa que permita la licencia, y cualquier cosa más allá de eso es una infracción de derechos de autor. Por lo tanto, si entrega el código fuente, tendrá un contrato que deja absolutamente en claro que conserva los derechos de autor exclusivos del código fuente, y exactamente qué usos del código fuente están permitidos. Y, por supuesto, el código fuente + licencia no vendría gratis.

Es poco probable que una empresa importante infrinja sus derechos de autor, ya que ser capturado causaría un gran daño a su reputación, además del daño financiero. Por otro lado, pagar por el software sin garantía de que se puedan solucionar los problemas en el futuro, podría ser inaceptable para el cliente.

    
respondido por el gnasher729 05.04.2015 - 10:44
13

Anteriormente solía proporcionar el código fuente (bibliotecas y todo) bajo una licencia MIT al cliente. Si sus bibliotecas están bien organizadas, solo proporcionará los archivos / recursos necesarios para ese cliente en particular, pero nada más. Creo que eso es justo tanto para mí como para el cliente. Sin embargo, siempre existió el problema de un nuevo código escrito para ese cliente en particular bajo contrato que antes no formaba parte de la biblioteca. Así que comencé a discutir el problema con el cliente antes de comenzar el proyecto. Algunos clientes querían la propiedad de ese código, otros no (yo siempre daba incentivos negativos, como precios más altos para quienes lo hacen). Pero, en realidad, para algunos clientes la discusión fue muy confusa y, a veces, terminé hablando por 3 o 5 personas diferentes (incluido su abogado) solo para obtener la aprobación del proyecto.

Así que ahora todas mis bibliotecas forman parte de un marco personalizado que siempre uso para desarrollar y le explico al cliente que usaré este marco pero que el marco es un producto diferente con una licencia diferente. (Algunas veces uso "componentes de software" cuando explico porque "framework" puede ser desconocido para ellos). Siempre proporciono el código de los archivos usados bajo una licencia MIT y (debido a que todo el código está bien organizado) el código de bajo nivel (incluso el nuevo) permanece en el marco (para ser reutilizado por mí y por ellos) pero el código relacionado solo para su aplicación es para que los guarden bajo sus propios términos (ese código probablemente sería inútil para mi reutilización en otro proyecto). Por supuesto, todo lo que está correctamente escrito en el contrato. Creo que esto también es justo.

La clave es: "estos componentes son un producto diferente" y todo está escrito en un contrato antes de comenzar.

Entonces, sí, tu idea sobre el uso de bibliotecas compartidas puede ser correcta. Sin embargo, le pregunto, ¿por qué no les proporciona el código fuente que usó, bajo una licencia que les permitirá reducir su riesgo? Creo que eso sería justo.

    
respondido por el MV. 06.04.2015 - 09:47
11

La forma de lidiar con esto es negociar.

Si quieren el código fuente, deberían estar preparados para pagarlo, y depende de usted decidir cuánto debe ser.

Por otro lado ... si no están preparados para pagar lo que usted quiere, pueden decidir "llevar su negocio a otra parte".

Bienvenido al mundo de los negocios :-)

Y cuando hable con posibles clientes en el futuro, asegúrese de mencionar este problema desde el principio ... para evitar perder el tiempo de todos.

También vale la pena señalar que lo que está haciendo es un anatema para los desarrolladores de código abierto y para los clientes (educados) que buscan soluciones de código abierto.

    
respondido por el Stephen C 05.04.2015 - 08:01
5

Esto puede ser demasiado tarde para usted, ya que es posible que ya haya aceptado un contrato para hacerlo, y podría haber aceptado términos mutuamente incompatibles con diferentes clientes.

Hay dos maneras en que puede proporcionar a sus clientes su código fuente. Propiedad de los derechos de autor y 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á los derechos de autor del código que usted cree para ellos. Una razón para esto es si ven un potencial significativo para la propiedad intelectual en el código fuente y es posible que deseen valorarlo en el balance de la 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 'disponible en el mercado', esperarán recibir una licencia para usar el software, no la propiedad del código fuente. Deben esperar que usted esté vendiendo el mismo software (o similar) a muchas otras organizaciones, y que se espera que se beneficien de un menor costo de compra debido a la base más amplia de clientes.

Sin embargo, la situación en esta pregunta es una mezcla de las dos.

Esto es lo que querría poder hacer. Le otorgaría a su cliente una licencia para usar (y modificar) su código compartido. Si el cliente lo interrogara, me gustaría señalar que este es un código compartido que ya ha utilizado en varios proyectos y tiene ofertas actuales para futuros trabajos que se basan en que usted continúe utilizando 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 permitir que otros equipos de desarrollo desarrollen esto 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 te hayas comprometido, podrías tener que escribir una función de reemplazo gratis o regalar tu código fuente.

Recuerda, 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 muy similar a cómo ha usado su código común.

    
respondido por el Michael Shaw 07.04.2015 - 15:04
0

Si utiliza a un tercero con el software que entrega, es probable que no tenga el código fuente de este tercero. Seguirá entregando el software a la empresa con binarios del tercero. El código que desarrolló como marco compartido en todos sus proyectos es exactamente igual a un tercero, incluso si es de su propiedad. En este caso, la compañía tiene exactamente el mismo riesgo con los binarios de su marco que con el tercero. ¿Por qué en este caso le daría a la empresa el código fuente de su marco? Puede proporcionarle una buena documentación de API con un acuerdo de licencia y eso. Si su código contiene la próxima gran cosa que revolucionará la industria, es otra historia, pero generalmente no es el caso.

    
respondido por el Samuel 08.04.2015 - 02:27

Lea otras preguntas en las etiquetas