Tal vez les parezca una locura encontrar un artículo sobre código cerrado en un blog que promociona GNU/Linux y el software libre. Pero esta entrada nace a raíz de una inquietud que me presentó un colega amigo y decidí ponerme en la piel de alguien que vive de escribir código fuente.

Un desarrollador me comentó que luego de realizar una aplicación le solicitaron la cotización del código fuente. ¿Existe alguna técnica para valuar el código fuente más allá de hacerlo "a ojo"?.

El software de código cerrado es un tema delicado en el mundo de los profesionales del desarrollo ya que posee muchas aristas. Por un lado está el punto de vista ético: ¿Todo el software debe ser de código abierto? ¿Cuándo se justifica que un software sea de código cerrado? ¿Soy peor que Hitler si deseo vender el fruto de mi trabajo y esfuerzo, es decir, el código fuente cerrado de mi aplicación? Por otro lado está el problema de la cotización: ¿Cuánto cobro la hora de desarrollo? ¿Puedo quedarme con el código fuente? ¿Cuánto puedo cotizar mi software terminado si alguien me lo quiere comprar?.

Voy a tratar de abordar alguna de estas cuestiones en este artículo y dejaré el debate abierto para quien se quiera sumar para brindar su opinión o punto de vista.



Según mi parecer, no es posible utilizar una fórmula matemática para calcular el precio de acuerdo a la cantidad de líneas. No valen lo mismo 100 líneas de código de un sistema que lanza un transbordador espacial que 100 líneas de código de un flash que se ejecuta cuando entrás a Truchinga! (por citar un ejemplo).

Creo que el precio del código lo ponen diferentes aspectos. A saber:

  1. ¿Cuánto costaría desarrollarlo nuevamente? Esto incluye horas de diseño, desarrollo, testeo, estabilización, etc.
  2. ¿Cuán grande es la necesidad del cliente por poseerlo? Si lo necesita de forma urgente vale más que desarrollarlo desde cero (oferta/demanda).
  3. ¿Cuán difícil y costoso sería verificar que un nuevo desarrollo funcione correctamente?

Aunque existe la cuestión ética de que si el cliente ha pagado (ha invertido) para desarrollar el sistema, el código fuente debe entregarse de forma gratuita ya que es de su propiedad (a pesar de que en el contrato no se haya especificado explícitamente). Los puntos anteriores suponen que un cliente quiere adquirir una pieza de software que ha sido desarrollada anteriormente (o de forma independiente). No es ético vender el código de una aplicación que el mismo cliente ha pagado para desarrollar, por hacer esto te corresponde el mote de mercenario ya que se trata de una especie de secuestro de la aplicación.

Lo que se puede ofrecer al cliente en este escenario es venderle soporte como un servicio, ya que no existe nadie mejor que nosotros para mejorar, corregir o extender nuestro propio código.

Pero si el cliente no te ha pagado por desarrollarlo (es decir, era un desarrollo anterior de tu propiedad) es válido vender el código. El costo es más alto que lo que sería diseñarlo, desarrollarlo, testearlo y verificarlo nuevamente. Ya que tu software está testeado, verificado y en funcionamiento, y no hace falta esperar varios meses/años para alcanzarlo porque ya está terminado (todos sabemos que encarar un nuevo desarrollo es algo muy doloroso tanto para el cliente como para los desarrolladores).

Llegado a este punto, no hay una fórmula matemática para calcular cuánto vale nuestro código. Podría ser una mezcla entre la estimación de horas de desarrollo (multiplicadas por un costo fijo por hora) y alguno de los puntos anteriores. Pero una de las aristas con más peso o importancia es: ¿Quién tiene mejores habilidades para negociar, el cliente o el desarrollador?. Y en este caso lamentablemente salen perdiendo los desarrolladores, ya que los clientes suelen tener más experiencia negociando.

He tenido la suerte de asistir a una conferencia de Richard Stallman en Bahía Blanca, y me quedó en claro que no todo software debe ser libre o de código abierto, y es en general el caso del software hecho a medida. Si una empresa "A" invierte millones de dólares en desarrollar su sistema de gestión no va a querer que otra empresa "B", que compite en el mismo sector que "A", acceda libremente al código y utilice su misma aplicación sin costo alguno.

En la mayoría de los casos, desarrollar un programa y no liberarlo no es un error. En ocasiones una apicación es tan útil que acapararla para sí constituye un perjuicio para la humanidad (por ejemplo un sistema operativo). Pero la mayoría de las aplicaciones hechas a medida prestan una solución tan específica que liberarlas no beneficiaría a muchas personas y perjudicaría notablemente a su creador. Por lo tanto, no hay ningún conflicto entre el desarrollo de software privado o a medida y los principios del software libre.

Aunque no debe confundirse liberar el código al mundo con entregar el código a quien ha pagado por su desarrollo. Si a un profesional se le paga por desarrollar una aplicación y éste luego decide vender el código al mismo u otro cliente se trata de una falta de ética profesional. Por este comportamiento se puede clasificar al "profesional" como mercenario, estafador o cualquier otro calificativo similar.

Espero que se sumen en los comentarios.


Tal vez pueda interesarte


Compartí este artículo