archivo

Archivos diarios: septiembre 7, 2009

La piedra filosofal de la construcción de software es la generación automática de código evitando cualquier tarea mecánica o repetitiva que tenga que realizar un programador. Si el generador de código está bien construido y depurado, el software saliente se encontrará libre de errores (y, ¿por qué no? tendrá gran calidad) y además hará más sencillo la verificación por parte de toda la organización de un framework de desarrollo común.

Un buen generador de código reduce considerablemente por tanto los tiempos de desarrollo, incrementa la calidad del resultado final y como consecuencia de ambos aspectos reduce los costes de producción.

Los generadores de código siempre han tenido la crítica (la tienen los frameworks en general) de aplicar soluciones muy generalistas a problemas concretos o lo que, dicho con otras palabras, no aplicaba soluciones tan eficientes como desarrollos realizados de forma específica. Sobre esto habría mucho que comentar y debatir. Mi opinión al respecto es que es tan bueno lo que aporta un determinado framework o un buen framework de generación de código que no debe haber lugar a debate, ya que todo lo positivo que proporcionan desnivelan considerablemente la balanza a su favor.

Evidentemente el éxito de una empresa de desarrollo de software no es sólo su framework o la disponibilidad de una buena herramienta de generación de código, ya que los proyectos de desarrollo de software requieren de muchos aspectos más para tener éxito, como por ejemplo un buen análisis (fundamental para cualquier solución de generación de código, ya sea orientada a modelo o aplicando otra estrategia), una buena gestión interna y con el cliente del proyecto, un buena ejecución final de la lógica de negocio y de la capa de cliente, un importe de venta del proyecto acorde a su naturaleza y complejidad, etc, etc, etc…

En cualquier caso, quienes posean una buena solución de generación de código, si la saben explotar convenientemente y siguen invirtiendo en ella, tienen una ventaja competitiva importante respecto a los demás.