¿Es razonable NO proporcionar documentación técnica y pruebas unitarias al cliente?

8

Como proveedor independiente que es contratado para escribir un producto para una empresa, ¿es razonable enviar solo el código fuente y la documentación del usuario sin incluir documentos de diseño, diagramas de arquitectura, pruebas unitarias, etc. (básicamente cualquier otra cosa que no sea estrictamente necesaria para ejecutar el producto o extiéndelo)?

El objetivo es hacer que el producto final sea extensible para el cliente para que pueda avanzar en su desarrollo internamente, pero no de forma gratuita. Tendrían que profundizar en la fuente para dar sentido a algunas decisiones de diseño, etc., y serán responsables de escribir sus propias pruebas exhaustivas para evitar que se introduzcan regresiones.

La idea aquí no es hacer que el código sea ininteligible. Solo me gustaría crear una oportunidad futura para ser contratado para escribir extensiones en virtud del "conocimiento interno" y la experiencia que tengo de ser el autor original.

¿Se consideraría esto poco ético?

Editar: El contrato se está negociando actualmente, por lo que la cuestión de lo que constituye los resultados finales no se ha decidido con firmeza. Además, debería haber mencionado que mantendré la propiedad del producto. Solo otorgaré al cliente una licencia de uso. ¿Este detalle hace una diferencia en si esto se considera una mala forma?

Bernie
fuente
44
¿Qué dice el contrato que debes hacer?
El contrato se está negociando actualmente, por lo que nada se ha decidido firmemente.
Bernie
1
Si es así, considere dejar que el precio refleje lo que quieren que envíe.
1
Consejo obvio: ¡haga el contrato muy claro para que no haya ambigüedad sobre cuáles serán los deberes!
Agos
Si solo tienen una licencia de uso, entonces no creo que deba proporcionar esta información. Tampoco deberían modificar su código si solo tienen una licencia de uso y no poseen el código o la licencia para modificarlo por su cuenta.
Bill Leeper el

Respuestas:

24

Contractualmente, serían inteligentes al incluir algún tipo de cláusula sobre el alcance de la documentación que desean. Deben compensarlo por presentarlos en un formato comprensible y profesional (rehacer el boceto de la servilleta).

No es poco ético hacer solo lo que se le pide y se paga, pero hacer todo lo posible para retener información es simplemente incorrecto.

Si me das una aplicación poco documentada y complicada con la que no puedo trabajar, estoy más inclinado a pensar que eres un mal programador que algún tipo de genio sin el cual mi compañía no puede prescindir. Construir una reputación de hacer las cosas bien.

JeffO
fuente
No creo que iba a dar solo la mitad de la documentación, solo lo que importa: toda la documentación del usuario final que tiene.
Llamaría
1
Construir una reputación de hacer las cosas bien es solo una apuesta en la mesa. ¿Por qué no construir una reputación de ir más allá?
Scott C Wilson
11

¿Los cobraron por desarrollar las pruebas unitarias y los documentos? y pagaron la factura? Si es así, tienen derecho a recibir lo que le pagaron.

De lo contrario, la próxima semana veremos una pregunta aquí en p.se.com titulada '¿Cómo obligamos a nuestro contratista a que nos brinde toda la documentación técnica y las pruebas unitarias por las que les pagamos? "

jqa
fuente
1
Bernie mencionó que los entregables aún no se han negociado. Cuando paga por un producto, no necesariamente paga por todo el código fuente, diagramas de arquitectura, investigación, IP, etc. Paga para recibir los entregables.
Kristofer Hoch
1
lea su edición, el proyecto aún no se ha acordado, por lo que todo dependerá de cómo negocie el cliente. En general, si la SOW y la factura incluyen un artículo, el cliente lo querrá. El cliente puede usar la no entrega como una excusa para rechazar el pago o pagar solo parcialmente, sin importar lo que diga el resto del contrato.
jqa
7

Solo te estás haciendo daño a ti mismo. Si su personal interno analiza lo que has hecho y encuentra una falta total de documentación, pensarán que eres un tonto y será menos probable que te retenga en el futuro.

Scott C Wilson
fuente
+1 estoy de acuerdo. A veces regalar algo hoy, vale la pena para ti mañana. Obviamente necesitas mantener eso en perspectiva.
1
Eso es cierto, pero ni siquiera llamaría a este caso realmente regalar algo. Esto debería considerarse parte del paquete completo que pagaron. Por cierto, una forma súper fácil de saber si algo no es ético: ¿cómo te sentirías si estuvieras en el extremo receptor?
Scott C Wilson
5

Preguntaría cuál de estos cree que lo describe:

Se le paga por su experiencia en el diseño y la fabricación de software, establecer cuál es el problema comercial y administrar el proyecto en su conjunto. Usted les cobra una tarifa de licencia, no son dueños del software ni del diseño, y les entrega el código fuente solo para que se sientan mejor; realmente no tienen derecho a usarlo.

o

Le pagan por su tiempo para diseñar y crear software para ellos. Conocen el problema comercial y están gestionando el proyecto. Son dueños del diseño, el software, el código fuente y todos los productos de trabajo que crea durante las horas en que los factura. Tienen todos los derechos para usar todo lo que quieran.

No intentes mezclar y combinar esas dos configuraciones. Podría cobrar más por el primero (ya que está aportando más habilidades y tomando más riesgos) o menos (ya que terminan teniendo menos) o lo mismo (si cree que esas cosas se equilibran). primero, y nos vuelven a contratar una y otra vez por ser geniales, no por retener información. Si has estado viviendo la vida de la segunda manera y quieres pasar a la primera, hay mucho más que no compartir tus documentos de diseño.

Kate Gregory
fuente
+1 para "nos vuelven a contratar una y otra vez por ser geniales, no por retener información". A mí también me funcionó durante muchos años.
Bob Murphy
3

Lo consideraría poco ético, sí.

psr
fuente
3

Realmente hay dos preguntas que deben responderse aquí, y las abordaré a ambas:

  • ¿Me tengo que establecer que la documentación para el cliente?
  • ¿ Debo proporcionar esa documentación al cliente?

¿Me tengo que establecer que la documentación para el cliente?

Debe proporcionarles lo que su contrato dice que les proporcionará. En mi opinión, eso significa que si el código fuente no se puede mantener / modificar razonablemente sin proporcionar también la documentación, entonces también debe proporcionar la documentación adecuada.

Es posible que desee ver las Obras realizadas para contratar según la Ley de derechos de autor de 1976 de la Oficina de derechos de autor de EE. UU. Para ver si la documentación, las pruebas unitarias, etc. son propiedad de su cliente. Si lo son, definitivamente querrás dárselos.

¿ Debo proporcionar esa documentación al cliente?

Si alguna vez desea hacer negocios con ellos nuevamente, o si desea que le recomienden a otros, entonces debe hacer cualquier trabajo que sea necesario para convertirlos en fanáticos entusiastas de su negocio.

Eso significa que debe entregarles el código fuente de la más alta calidad, adecuadamente comentado, y cualquier otra cosa que les interese tener. Mi consejo sería que cuando te reúnas con ellos para entregarles los entregables, prepárate para darles las pruebas unitarias, etc. Después de que hayas repasado todas las cosas importantes y más importantes, diles algo como: "Por cierto, También generé pruebas unitarias para estos componentes. ¿Quieres esos también? "

Trabaje para generar lealtad con sus clientes y obtendrá su negocio nuevamente en el futuro.

Ryan
fuente
1

Supongo que en este punto habría un contrato o acuerdo / documento escrito que enumerara toda la documentación que debe entregarles.

De lo contrario, podría dejarles claro que la personalización del producto, más allá de eso en las guías del usuario, requerirá un conocimiento adicional del funcionamiento del código interno. Y si está en una posición de negociación, puede pedirles que se comuniquen con usted para obtener más mejoras y recibir un pago por ello.

Por lo que entiendo, ya te pagan para escribir el código de su producto, es decir, ellos lo poseen. Por lo tanto, pueden considerar que no es ético si te vas sin documentarlo todo.

Le sugiero que escriba un documento esquemático con una arquitectura de alto nivel y punteros sobre dónde buscar las mejoras de las características clave. Cuáles son los archivos clave, etc. Si su trabajo es bueno, estarán encantados de volver a usted para realizar otras tareas.

JoseK
fuente
1

Me gusta este artículo: http://unixwiz.net/techtips/be-consultant.html

Lo que estás describiendo no me daría la cálida sensación de que nunca más volveré a trabajar contigo.

Puede que seas un genio, pero si te caes muerto de A Bus , necesito mantener lo que te compré.

Si no me das esa habilidad, nunca volveré a contratarte o recomendaré contratarte para cualquier cosa con la que me ocupe.

Ahora, si está vendiendo un binario , por ejemplo, una "envoltura retráctil personalizada" donde puede vender el mismo producto a otras compañías, entonces es más razonable trabajar con el modelo de "menos información", porque ahora está vendiendo un producto.

La diferencia es que con la fuente, estoy comprando la capacidad de modificar el código fuente en el futuro. Sin embargo, con binario, simplemente estoy comprando la capacidad de ejecutarlo.

Paul Nathan
fuente
+1: Basado en el "factor de bus", envío documentos de diseño no solicitados, etc. a mis clientes, y los presiono activamente para que ellos mismos puedan replicar mis compilaciones ocasionalmente. "Tomar el camino correcto" ha funcionado tan bien, que ahora estoy rechazando nuevos trabajos. También ha sido mi experiencia que tratar de exprimir las gónadas metafóricas de alguien generalmente no genera una relación de confianza que conduzca a negocios repetidos.
Bob Murphy