TL;DT: definitivamente
Soy un freelance en Alemania y solía trabajar para un pequeño estudio de diseño web. Sin embargo, gestionaban un sitio de comercio electrónico no tan pequeño. Conseguí el trabajo a través de un amigo en la típica forma de "oye, tenemos un pequeño problema, ¿podrías echarle un vistazo? Así que eché un vistazo y arreglé el error. Quedaron satisfechos con mi rápido trabajo y pronto surgieron otros problemas menores. Luego, otras mayores, y así sucesivamente hasta que me convertí en un colaborador habitual de su equipo. Bueno, apoyo no es la palabra correcta, yo era su único programador (y también el único que sabía HTML y CSS, pero eso probablemente no es tan importante en ese negocio). Siempre dijimos que deberíamos tener un contrato, pero nunca llegamos a establecerlo.
Lo último que hice para ellos fue un nuevo sistema de boletín informativo. El antiguo era sólo un php-script que tenía que ejecutarse en una ventana abierta del navegador. Procesaba algunas direcciones y luego recargaba la página para procesar las siguientes. Esto estaba bien al principio, pero mientras tanto tenían más de 750.000 correos que entregar y por eso la versión basada en la página del navegador debía ser reemplazada por un cron-job. El problema era: No sabía cuánto tiempo se ejecutaría el script. Así que se ejecutaba cada pocos minutos, se comprobaba si el script seguía ejecutándose buscando en una lista de procesos activos (usando ps
) y termina si encuentra el script en ejecución. Funcionó en mi máquina. Insistí en probarlo más a fondo, pero la dirección decidió ponerlo en producción. Producción en este caso significaba: el mismo servidor donde corría la base de datos y apache.
Entonces, había un error. El recién ejecutado script sólo encontraba instancias antiguas si el pid de la instancia en ejecución era menor que las nuevas. Era un bug estúpido y era culpa mía. El script pasó a producción un viernes y no me avisaron hasta el lunes. Mientras tanto, nuestro hoster retiró todo el servidor ya que se comportaba como una máquina infectada, enviando docenas de los mismos correos a las mismas direcciones. La tienda estuvo fuera de servicio durante todo un fin de semana. Otros fines de semana se vendieron unos 100.000 euros. Yo era estudiante.
Si trabajas en una empresa en Alemania no puedes ser responsable de este tipo de daños (quizás si tu contrato dice lo contrario, pero supongo que esto no es posible legalmente). Sin embargo, ser autónomo es otra historia. Por defecto, yo era responsable. Ahora bien, no acepté ejecutar esto en producción y también -hace tiempo- les informé de que ejecutar todo en un servidor, especialmente el sistema de correo, no era la mejor idea. Pero no podía probarlo. No teníamos un contrato y, por supuesto, tampoco documentábamos ese tipo de cosas.
Al final tuve mucha suerte y no intentaron hacerme responsable. Aún así, pasé unos cuantos días sin dormir hasta su decisión.
Tener un contrato, comprobar las responsabilidades. Piensa también en cuestiones como las licencias. ¿Pueden utilizar tu obra de la manera que quieran? ¿Pueden revenderlo? ¿Pueden utilizarlo en otros países? ¿En otros contextos? ¿Necesitan tu permiso, quieres (y mereces, por supuesto) un dinero extra por ello?
Es posible que duerma mejor ;D