Contrato de desarrollo de software: ¿de quién es el código?

Qué debe incluir un contrato de desarrollo de software: propiedad del código, precio fijo o por horas, cláusulas clave y señales de alerta antes de firmar.

Guante de astronauta con una llave de latón sobre un contrato en blanco con sello de lacre, sobre blanco

Si contratas a una agencia o a un freelancer para desarrollar un software o un sitio web, no des por hecho que el código es tuyo solo porque lo pagaste. En muchos casos, la ley le da los derechos a quien crea la obra, salvo que un documento por escrito diga otra cosa. Un buen contrato de desarrollo de software deja eso claro y también cubre el alcance, los pagos, la aceptación de entregables, el acceso al código fuente, a nombre de quién quedan el dominio y el hosting, el soporte después del lanzamiento y cómo se entrega todo si la relación termina.

Esto es información general, no asesoría legal. Las leyes cambian según el país y cada proyecto es distinto. Pide a un abogado que revise cualquier contrato de desarrollo de software antes de firmarlo.

¿Qué es un contrato de desarrollo de software?

Es el acuerdo entre tu empresa y la agencia o el freelancer que va a construir tu sitio web, tu aplicación web o tu sistema a la medida. Muchas veces tiene dos partes: un contrato marco con los términos legales (propiedad, responsabilidad, confidencialidad, terminación) y un anexo técnico o "statement of work" que describe este proyecto en particular: qué se va a construir, en qué plazo y por cuánto.

El contrato importa sobre todo cuando algo sale mal. Si el proyecto se retrasa, se acaba el presupuesto o decides cambiar de proveedor, el contrato es lo que dice quién es dueño de qué y qué sigue. Es mucho más fácil escribirlo cuando todos se llevan bien que negociarlo en medio de un desacuerdo.

¿Quién es dueño del código cuando contratas a un desarrollador?

En México, los programas de computación están protegidos por la Ley Federal del Derecho de Autor (LFDA). Esa ley distingue dos tipos de derechos, y entender la diferencia te ahorra muchos malentendidos:

  • Derechos morales: pertenecen a la persona que creó la obra, como el derecho a ser reconocida como autora. En términos generales, la ley los considera irrenunciables y no se pueden ceder.
  • Derechos patrimoniales: son los que permiten explotar la obra: usarla, reproducirla, modificarla, distribuirla o venderla. Estos sí se pueden transmitir, y son los que a tu empresa le interesan.

La ley tiene reglas particulares para el software que hacen los empleados como parte de su trabajo y para las obras hechas por encargo, pero no conviene depender de esas reglas cuando contratas a un proveedor externo. Lo más seguro es una cesión de derechos patrimoniales por escrito, firmada, que diga con claridad qué se cede, en qué territorio y por cuánto tiempo. La LFDA tiene reglas sobre la duración de las transmisiones de derechos, así que pídele a tu abogado que revise ese punto en particular. También pregúntale si conviene inscribir el contrato o el programa ante el INDAUTOR.

Si tu proveedor es de Estados Unidos, el tema se maneja distinto: allá se habla de "work made for hire" y de la cesión escrita del copyright. Si el contrato involucra a los dos países, con más razón vale la pena que lo revise un abogado.

Cesión o licencia: ¿cuál es la diferencia?

Hay dos formas comunes en que un contrato te da derechos sobre el código:

  • Cesión: los derechos patrimoniales pasan a tu empresa. Puedes modificar el software, contratar a otro desarrollador para mantenerlo o venderlo junto con tu negocio.
  • Licencia: el desarrollador conserva los derechos y te da permiso de usar el código. Una licencia puede ser amplia (sin fecha de vencimiento, que permite modificar y transferir) o limitada (para un solo uso, ligada a un pago mensual o revocable).

Las dos pueden ser justas. Las agencias que reutilizan sus propias herramientas suelen dar licencia sobre esas partes y ceder el resto. Lo importante es que el contrato diga cuál aplica, a qué partes del código y qué puedes hacer con él. Un contrato que dice que el código es de la agencia y no menciona tu licencia te deja muy expuesto.

Código previo del desarrollador y componentes de código abierto

Casi ningún software se escribe desde cero. Tu proyecto seguramente va a incluir herramientas y código que el desarrollador ya tenía (a veces se le llama propiedad intelectual previa) y librerías de código abierto. Un buen contrato:

  • Describe ese código previo y te da una licencia para usarlo como parte de tu software, de preferencia sin vencimiento y transferible si vendes tu negocio.
  • Confirma que los componentes de código abierto se usan bajo sus propias licencias y que son compatibles con la forma en que piensas usar o vender el software.
  • Menciona los servicios de terceros que se pagan (plugins, APIs, plantillas) y a nombre de quién están las suscripciones.

¿Qué debe incluir un contrato de desarrollo de software?

Estas son las cláusulas que vale la pena leer con calma, ya sea que vayas a construir un sitio para tu negocio o un sistema completo como un CRM a la medida.

Alcance, entregables y aceptación

  • Alcance o anexo técnico: las funciones, páginas, integraciones y plataformas incluidas y, igual de importante, lo que no está incluido.
  • Entregables: el software funcionando, el código fuente, la documentación, los archivos de diseño y las contraseñas que vas a recibir.
  • Aceptación: cómo pruebas y apruebas cada entregable, cuántos días tienes para revisarlo y qué pasa si no cumple con lo acordado.

Etapas, pagos y solicitudes de cambio

  • Etapas y pagos: pagos ligados a entregables terminados y aprobados, no solo a fechas.
  • Solicitudes de cambio: un proceso sencillo y por escrito para las ideas nuevas que surgen a medio proyecto, con el costo y el impacto en tiempos aprobados antes de empezar. Que el alcance cambie es normal; que lleguen cobros sorpresa no debería serlo.
  • Facturación: que cada pago tenga su factura (CFDI) con una descripción clara del servicio. Si tienes dudas sobre cómo debe describirse el concepto o sobre retenciones, consúltalo con tu contador.

Propiedad, código y datos

  • Propiedad intelectual: cesión o licencia, a partir de cuándo aplica (muchas veces con el pago final) y cómo se maneja el código previo del desarrollador.
  • Código fuente y acceso al repositorio: el código vive en un repositorio (por ejemplo en GitHub o GitLab) que es de tu empresa o al que puedes entrar en cualquier momento, no solo al final.
  • Cuentas a tu nombre: dominio, hosting, servicios en la nube, cuentas de tiendas de apps, analítica y servicios de envío de correo registrados a nombre de tu empresa, con el desarrollador como usuario.
  • Propiedad y exportación de datos: tus datos son tuyos y puedes exportarlos en un formato estándar.
  • Confidencialidad: las dos partes protegen la información confidencial de la otra, incluidos los datos de tus clientes y tus procesos.

Garantía, soporte y mantenimiento

  • Garantía o periodo de corrección de errores: un periodo definido después del lanzamiento (es común que sea de 30 a 90 días) en el que los errores dentro del alcance acordado se corrigen sin costo extra.
  • Mantenimiento y soporte: qué incluye el cuidado continuo (actualizaciones, parches de seguridad, respaldos, cambios pequeños), los tiempos de respuesta en un acuerdo de nivel de servicio (SLA) y cómo se cobra. Muchas veces es un contrato aparte.

Terminación, entrega y controversias

  • Terminación: cómo puede cualquiera de las partes terminar el contrato, con cuánto aviso y qué pagas por el trabajo ya hecho.
  • Entrega final: al terminar el proyecto o el contrato, el desarrollador entrega la última versión del código, la base de datos, las contraseñas y la documentación en un número de días definido.
  • Solución de controversias: qué leyes aplican, qué tribunales son competentes y si primero se intenta una mediación o un arbitraje.
  • Idioma: si el contrato podría tener que hacerse valer en México, es buena idea que esté en español o en versión bilingüe, y que se indique qué versión prevalece.

Precio fijo, por tiempo y materiales o iguala: ¿qué conviene?

El modelo de cobro define cómo funcionan en la práctica el alcance, el riesgo y los cambios. Ninguno es mejor en todos los casos.

Factor Precio fijo Tiempo y materiales Iguala mensual
Cómo funciona Un precio acordado para un alcance definido Pagas las horas trabajadas a tarifas acordadas Una cuota mensual fija por un bloque de horas o un servicio continuo
Ideal para Alcance claro y estable: un sitio web, una primera versión bien definida Productos que van cambiando, etapas de descubrimiento, integraciones con incógnitas Mantenimiento, mejoras continuas, trabajo constante de marketing o SEO
Presupuesto predecible Alto, mientras el alcance no cambie Menor; usa estimaciones, topes y reportes frecuentes Alto cada mes
Flexibilidad Baja; los cambios pasan por solicitudes de cambio Alta; las prioridades pueden moverse en cada etapa Media; el trabajo se prioriza dentro de las horas del mes
Quién asume el riesgo Sobre todo el desarrollador, que puede inflar el precio para cubrirse Sobre todo el cliente Compartido; las horas no usadas pueden o no acumularse
Qué vigilar Un alcance vago que termina en discusiones sobre qué estaba "incluido" Que no haya tope ni visibilidad de las horas Entregables poco claros y reglas de acumulación de horas

Muchos proyectos combinan modelos: una etapa de descubrimiento a precio fijo, luego el desarrollo a precio fijo o por tiempo y materiales, y después una iguala para el mantenimiento. Para entender cómo se arma un presupuesto, lee nuestra guía sobre cuánto cuesta un software a la medida.

¿A nombre de quién deben estar el dominio, el hosting y las cuentas?

Ser dueño de tu sitio web no es solo tener el código. Si la agencia registra tu dominio a su nombre, quizá no puedas mover tu sitio web, ni siquiera tu correo, sin su ayuda. Lo mismo pasa con el hosting, Google Analytics, tu Perfil de Negocio en Google, Search Console, las pasarelas de pago y las cuentas de tiendas de apps.

La regla es sencilla: cada cuenta debe estar registrada a nombre de tu empresa, con un correo que tu empresa controle, y el desarrollador debe tener acceso como usuario o administrador. Si una agencia te administra el hosting, el contrato debe decir que los archivos del sitio, la base de datos y los respaldos son tuyos y que te los entregan cuando los pidas. Esto aplica igual para un proyecto de diseño web que para una aplicación grande.

¿Cuáles son las señales de alerta en un contrato de desarrollo de software?

  • La agencia tiene tu dominio a su nombre o en su cuenta, sin ninguna cláusula para transferirlo.
  • No tienes acceso al repositorio hasta el final del proyecto, o nunca.
  • Alcance vago, como "un sitio moderno con todas las funciones necesarias", sin lista de entregables.
  • "El código es nuestro" sin ninguna licencia que diga qué puedes hacer tú con él.
  • No hay cláusula de entrega, así que nadie está obligado a darte el código, los datos y las contraseñas si decides irte.
  • Pagos que no están ligados a etapas, o casi todo el presupuesto por adelantado.
  • Sin criterios de aceptación, de modo que "terminado" es lo que el desarrollador diga.
  • Sin periodo de garantía, y los errores que aparecen la semana del lanzamiento se cobran como trabajo nuevo.
  • Tus datos solo se pueden exportar pagando o en un formato que nadie más puede leer.
  • No hay cesión de derechos por escrito, solo facturas pagadas.

Una señal de alerta no siempre significa mala intención. A veces es solo una plantilla que nadie actualizó. Pregunta, y pide que la respuesta quede por escrito en el contrato.

Lista de verificación para tu contrato

Usa esta lista cuando revises una propuesta o un contrato:

  1. Alcance o anexo técnico por escrito, incluido lo que queda fuera.
  2. Lista de entregables: software, código fuente, documentación, archivos de diseño, contraseñas.
  3. Proceso de aceptación con plazos de revisión y criterios.
  4. Etapas con pagos ligados a entregables aprobados.
  5. Proceso de solicitudes de cambio con aprobación por escrito de costo y tiempo.
  6. Cláusula de propiedad intelectual: cesión de derechos patrimoniales o licencia, desde cuándo aplica, territorio y vigencia.
  7. Código previo del desarrollador y componentes de código abierto identificados y con licencia para ti.
  8. Acceso de tu empresa al repositorio durante el proyecto.
  9. Dominio, hosting y cuentas de terceros a nombre de tu empresa.
  10. Propiedad de los datos y exportación en formato estándar.
  11. Obligaciones de confidencialidad para ambas partes.
  12. Garantía o periodo de corrección de errores después del lanzamiento.
  13. Términos de mantenimiento y soporte con tiempos de respuesta, si los necesitas.
  14. Reglas de terminación y pago del trabajo realizado.
  15. Cláusula de entrega con fecha límite para código, datos, contraseñas y documentación.
  16. Facturas (CFDI) por cada pago, idioma del contrato, leyes aplicables y solución de controversias.

¿Cómo maneja inSpace la propiedad y las licencias?

En inSpace acordamos la propiedad y las licencias por escrito antes de empezar un proyecto, para que después no haya sorpresas sobre de quién es el código, los datos o las cuentas. Preferimos dedicar una conversación extra al contrato al principio que dejar a un cliente con dudas sobre lo que pagó.

Si estás planeando un sitio web, una aplicación o un proyecto de software a la medida, con gusto revisamos contigo el alcance, los modelos de cobro y la propiedad, y te recomendamos que tu propio abogado revise lo que vayas a firmar. Trabajamos en español y en inglés, con negocios en México y en Texas. Agenda una llamada gratuita de 30 minutos y trae tus preguntas, o el contrato que estás revisando.

Preguntas frecuentes

¿De quién es el código en un contrato de desarrollo de software?

Depende de lo que diga el contrato. Pagar por el trabajo no siempre te convierte en dueño. En México conviene una cesión de derechos patrimoniales por escrito, que diga qué se cede, en qué territorio y por cuánto tiempo. Pide a un abogado que la revise.

¿Qué diferencia hay entre derechos morales y patrimoniales?

Los derechos morales pertenecen a quien creó la obra, como el derecho a ser reconocido como autor, y en general no se pueden ceder. Los derechos patrimoniales permiten usar, modificar, distribuir y vender la obra, y sí se pueden transmitir por escrito a tu empresa.

¿Qué conviene más, precio fijo o tiempo y materiales?

El precio fijo funciona mejor cuando el alcance es claro y estable, porque el presupuesto es predecible. Tiempo y materiales funciona mejor cuando el producto va cambiando, siempre que haya estimaciones, topes y reportes frecuentes. Muchos proyectos combinan los dos y agregan una iguala para el mantenimiento.

¿A nombre de quién debe estar el dominio de mi sitio web?

A nombre de tu empresa. El dominio, el hosting, la analítica y las demás cuentas deben estar registrados a nombre de tu negocio, con un correo que tú controles, y la agencia debe tener acceso como usuario.

¿El contrato debe estar en español?

Si podría tener que hacerse valer en México, es buena idea que esté en español o en versión bilingüe, indicando qué versión prevalece. Tu abogado puede orientarte según tu caso.

Hablemos de tus próximos clientes.

Agenda una llamada gratuita de 30 minutos o escríbenos. Respondemos en menos de un día hábil.

WhatsApp

¿Prefieres escribir?

Solo usamos tus datos para responderte. Protegido por reCAPTCHA (aplican la Privacidad y los Términos de Google).