Auditoría y evolución
Revisión técnica y plan de evolución para sistemas que presentan riesgos o son difíciles de mantener.
Conocer la soluciónUna guía práctica sobre los temas y cláusulas que deberían estar cubiertos en un contrato de desarrollo de software para proteger al cliente, sin asesoría legal.

Contratar el desarrollo de un producto de software es una decisión estratégica para cualquier empresa. Se está invirtiendo tiempo, dinero y expectativas en algo que —si sale bien— puede transformar un negocio. Pero la contracara es que, si algo sale mal, los costos de corregir el rumbo pueden ser altos y difíciles de absorber.
El contrato de desarrollo de software es la principal herramienta que tienen ambas partes para alinear expectativas, definir responsabilidades y establecer qué pasa cuando las cosas no salen como se planearon. Sin embargo, muchas empresas —sobre todo las que no tienen experiencia previa contratando tecnología— firman acuerdos que dejan demasiados cabos sueltos, ya sea por confianza en el proveedor, por urgencia de arrancar o por no saber qué temas deberían estar cubiertos.
Este artículo lista los temas y áreas que conviene tener presentes al revisar o negociar un contrato de desarrollo. No es asesoría legal: para redactar cláusulas específicas, consultá con un abogado especializado. Pero sí es una guía de lo que no debería faltar para proteger tu inversión.
El corazón de cualquier contrato de desarrollo es la definición del alcance. Si el alcance es ambiguo, todo lo demás —plazos, presupuesto, criterios de aceptación— se vuelve inaplicable, porque ninguna de las partes va a tener la misma idea de qué era lo que había que entregar.
Un contrato sólido debería incluir, como mínimo:
Si el contrato dice "desarrollo de una plataforma de gestión de clientes" sin más detalle, las dos partes van a tener ideas distintas de qué incluye eso. El proveedor puede asumir que alcanza con un listado y un buscador; el cliente puede asumir que incluye automatizaciones, reportes y una app móvil. Cuando las expectativas no están escritas, el conflicto es cuestión de tiempo.
El tiempo es uno de los recursos más sensibles en un proyecto de software. Un retraso de semanas o meses puede significar perder una oportunidad de mercado, incumplir con un inversor o postergar ingresos proyectados.
El contrato debería contemplar:
Este es uno de los puntos que más controversia genera y que muchas empresas pasan por alto hasta que es demasiado tarde. La pregunta central es: cuando el proyecto termine, ¿quién es dueño del código?
Lo esperable en un contrato de desarrollo a medida es que el cliente sea el dueño del código fuente y de la propiedad intelectual del producto desarrollado. El proveedor está siendo contratado para construir algo por encargo, y el resultado de ese trabajo debería pertenecer a quien lo pagó.
Temas que deberían estar cubiertos:
Muchos proveedores parten de una base de código propia —frameworks, librerías, módulos genéricos— que reutilizan entre proyectos. En esos casos, es razonable que el proveedor conserve la propiedad de esa base y le dé al cliente una licencia de uso perpetua. Lo importante es que esté definido por escrito: qué es propiedad del cliente, qué es propiedad del proveedor y bajo qué condiciones puede el cliente seguir usando el software si cambia de proveedor.
El aspecto económico del contrato va más allá del número total. La estructura de pagos determina los incentivos de ambas partes durante el proyecto.
Aspectos a considerar:
Durante el desarrollo, el proveedor va a tener acceso a información sensible del negocio: procesos internos, datos de clientes, estrategia comercial, proyecciones financieras. Si el producto que se está construyendo va a manejar datos de clientes —propios o de terceros—, la responsabilidad es todavía mayor.
Lo que el contrato debería contemplar:
Si el software que estás encargando va a manejar datos de clientes, no esperes a que el proyecto esté avanzado para preguntar cómo protege el proveedor esa información. El artículo sobre qué preguntar sobre seguridad a tu proveedor de software lista las preguntas que conviene hacer antes de firmar.
El desarrollo de software no termina cuando se entrega la primera versión. Los sistemas requieren mantenimiento: actualizaciones de seguridad, corrección de errores que aparecen con el uso, adaptaciones a cambios en los sistemas con los que se integra.
El contrato debería distinguir entre:
Sin un acuerdo de mantenimiento, el cliente se encuentra con un sistema que funciona hasta que algo se rompe —y en software, algo siempre se rompe, ya sea por una actualización del navegador, un cambio en la API de un servicio externo o un error que solo aparece con cierto volumen de datos—. En ese momento, el proveedor original puede no tener disponibilidad, haber cambiado sus precios o simplemente no estar interesado en tomar un trabajo chico. La recomendación general es no dejar el proyecto sin una previsión de mantenimiento, aunque sea mínima.
Idealmente, el proyecto llega a buen puerto y ambas partes quedan satisfechas. Pero los contratos existen justamente para cubrir los escenarios en los que las cosas no salen como se esperaba.
El contrato debería contemplar:
La peor posición en la que puede quedar un cliente es con un proyecto a medio hacer, sin acceso al código y con un proveedor que no responde. Un contrato bien diseñado debería hacer que esa situación sea imposible.
Cuando hay diferencias entre las partes —sobre el alcance, la calidad, los plazos—, tener un mecanismo de resolución definido de antemano ahorra tiempo, dinero y desgaste.
Opciones habituales:
Buena parte de la sustancia de un contrato de desarrollo de software suele estar en los anexos. Es una práctica habitual y recomendable: el cuerpo del contrato establece las condiciones generales, y los anexos detallan lo específico del proyecto.
Anexos que suelen acompañar un contrato de desarrollo:
Los anexos forman parte del contrato y tienen la misma fuerza legal que el cuerpo principal. No los trates como documentación accesoria.
Un buen contrato protege, pero no convierte a un mal proveedor en uno bueno. La selección cuidadosa del equipo con el que vas a trabajar sigue siendo la decisión más importante. El artículo sobre preguntas antes de contratar un proveedor tecnológico cubre los aspectos a evaluar durante el proceso de selección, antes de llegar a la instancia contractual.
El contrato de desarrollo de software no debería verse como un trámite burocrático que frena el arranque del proyecto, sino como la herramienta que permite arrancar con expectativas alineadas y reglas claras para cuando algo se desvía del plan. Dedicarle tiempo a la etapa contractual no es perder tiempo de desarrollo: es proteger la inversión que estás a punto de hacer.
Revisión técnica y plan de evolución para sistemas que presentan riesgos o son difíciles de mantener.
Conocer la soluciónSistemas adaptados a la operación real para centralizar información, reducir errores y reemplazar tareas manuales.
Conocer la soluciónCuéntanos qué problema presenta, qué tecnologías utiliza y qué acceso o documentación existe.