¿Qué pasa si dejamos los casos bordes para el final, o hacer los arreglos cuando ocurra el error? ¿O decir que el performance no es importante hasta que parezca lento?
Ahora tú podrías estar trabajando en una aplicación que funciona en el escenario feliz donde el usuario no experimenta o no intenta usar todas las funcionalidades esperadas.
Comienzo rápido, después lento
Al comienzo, un desarrollador puede entregar funcionalidades rápidamente, todo es nuevo y no hay obstáculos que lo detengan.
A medida que la aplicación crece, emergen los errores, el performance disminuye, los requerimientos de seguridad se hacen críticos y ya no se puede entregar algo nuevo hasta arreglar todo lo anterior. ¿Fue una buena práctica preocuparse por los detalles al final?
El inversionista
Un programador es como un inversionista convencido de lo que necesita su empresa para progresar.
Consciente del trabajo que tiene que entregar ahora y donde debe realizar los esfuerzos de inversión como la integración continua, automatizar deploys, pruebas automatizadas, capacitaciones, etc. El programador tiene que detenerse y pensar sobre lo qué está haciendo y cómo. ¿Es mantenible lo que estamos desarrollando?
La solución temporal es permanente.
Ver el futuro
¿Cómo puedes tener un diseño mantenible si no ves los cambios que vienen? Cada línea de código tiene implicaciones que pueden favorecer al equipo o no. No podemos avanzar a ciegas sin conocer la visión del producto y las nuevas funcionalidades que vienen.
Quizás no puedas ver cuantos clientes van a usar tu aplicación y no tener claridad sobre lo que van a usar o querrán cambiar. Tal vez la arquitectura cambie. Pero si puedes ver qué tan estable, rápida, segura y mantenible sea el producto software en qué trabajas.