¿Qué aporta para la calidad en software?
¿Alguien recuerda las controversias y las peleas religiosas entre si C++ o Visual Basic eran lenguajes para niños o para hombres? Esos bien podrían compararse con recuerdos de opiniones en otros temas durante la adolescencia, cuando creíamos que conocíamos tanto de la vida —tal vez como aún ahora creemos que sí lo sabemos.
Con base en algunas observaciones recurrentes, a lo largo de varias organizaciones de desarrollo, de diferentes tamaños, y de diversidad de proyectos de desarrollo, tiendo a coincidir plenamente con lo que apuntan personajes como Steve McConnell o Bertrand Meyer. Lo que aporta más a la calidad del software se puede agrupar en las dimensiones de personas, proceso, diseño, y tecnología. Pero los factores críticos de calidad en esas dimensiones no tienen el mismo impacto sobre la calidad a final de cuentas. Los factores para la calidad aportan en diferentes órdenes de magnitud. La siguiente figura ilustra la idea:
En otras palabras, para aplicar bien la tecnología es necesario hacerlo en concordancia con su diseño en particular. Por ejemplo, instalar aplicaciones de Office para manipular documentos de lado del servidor no corresponde con su diseño —por eso ese esquema suele quedar fuera de un contrato de soporte. Además, por sí misma, la tecnología no resuelve los problemas importantes sino que para eso se necesita especificar los escenarios de uso correspondientes.
Así mismo, los diseños o arquitecturas, por más glamorosas que sean, entregan valor marginal si no están acompañadas de un proceso por el cual se llegará a la realización de lo diseñado. También, no importa mucho el proceso que se tenga, por muy bien definido que esté, si no se cuenta con el personal que tenga la capacidad y el empoderamiento para adaptar sobre la marcha dicho proceso hacia la realidad del valor de negocio en los típicos ambientes de mercado —dinámicos e impredecibles.