Si tenemos dos programas que hacen lo mismo pero con códigos diferentes… ¿Cuál es mejor?
Entre programadores son frecuentes las discusiones sobre cómo es mejor programar una determinada función o incluso todo un programa. Pues para zanjar la cuestión y sin más preámbulos, aquí van los criterios para saber qué código es «mejor».
- Calidad. La calidad es el grado de cumplimiento de los requerimientos. Cuantos más requerimientos (funcionales y de otro tipo) cumpla el software, mejor será. Podríamos resumir este criterio como «que funcione».
- Adaptabilidad. Los requerimientos van a cambiar. Lo harán durante el desarrollo o después, pero seguro que cambiarán. Así que cuanto más fácil sea adaptar un código a unos requerimientos cambiantes, mejor será. Podemos resumir este criterio como que sea «fácil de cambiar». Lo que implica que sea sencillo, fácil de entender, bien organizado…
- Robustez. Ocurrirán situaciones no previstas en los requerimientos. Seguro que algún usuario introduce datos inválidos o llega una información inconsistente o falla algún sistema externo… ¿Puede nuestro código soportarlo o cae derrotado ante el primer imprevisto? Cuando más resistente a las situaciones inesperadas sea nuestro código, mejor.
Evidentemente pueden aparecer algunos otros criterios importantes en situaciones especiales. Por ejemplo, un software para la defensa naval encargado de interceptar misiles enemigos tendrá como criterio principal el tiempo de respuesta. O un software encargado de realizar operaciones quirúrgicas tendrá como criterio principal reducir al mínimo la tasa de fallos. Pero por lo general, la mayoría de programas siguen los criterios expuestos: Calidad (cumplimiento de requerimientos), Adaptabilidad (facilidad para cambiar y evolucionar) y Robustez (resistencia frente a imprevistos).
¿Estás de acuerdo o empezamos una buena discusión entre programadores?