Desarrollo de software. Michael Anthony Jackson. Programa que funciona vs Programa correcto
La siguiente reflexión de Michael Anthony Jackson muestra uno de los problemas con los que nos encontramos habitualmente cuando nos empezamos a dedicar a este negocio, si bien no todos terminan aprendiendo de la experiencia: “El origen de la sabiduría de un programador (desarrollador) se basa en conocer la diferencia entre un programa que funciona y un programa correcto. Un programa que no funciona es indudablemente incorrecto; pero un programa que funciona no es necesariamente correcto; ya sea porque es difícil de entender (utilizar), porque es difícil de mantener ante cambios en los requisitos, porque su estructura es diferente a la estructura del problema o porque no estemos seguros si funciona”.
La reflexión es del año 1975 y como suele pasar con muchas de estas máximas del desarrollo de software, más de treinta y cinco años después continúa vigente.
Un software de calidad no es un software que corre, necesita más, mucho más. Y ahí es donde está la diferencia entre un desarrollador y otro y entre una empresa de desarrollo de software y otra.
Soy consciente de que en muchas ocasiones el contexto en el que se ha desarrollado el proyecto no permite o no facilita la obtención de un sistema de calidad o de una aplicación totalmente correcta, pero la diferencia está en la intención, es decir, hay equipos de desarrollo que permanecen planos tanto cuando hay cuestas arriba como cuando las hay hacia abajo, en los que solo importa ejecutar trabajo sin preocuparse por la eficiencia del mismo, en los que solo importa que el taxímetro esté funcionando para facturar al cliente, en los que solo importa cerrar el proyecto cuanto antes, caiga quien caiga.