Hace poco tiempo, después una conversación con un colega de profesión sobre el mundo IT actual, algo me recordó una viñeta de Andrés Diplotti que vi por primera vez en Google+:

Como programador que he sido durante mucho tiempo, y que en parte sigo siendo, reconozco haber tenido este tipo de soberbia (sin llegar a estos extremos) Supongo que un pecado de juventud que se ha ido mitigando con la edad y que algunos ya teníamos desde la universidad.
Por aquella época recuerdo haber descubierto los patrones de diseño software con el libro de The Gang of Four. Nuestras aplicaciones comenzaron a llenarse de patrones de diseño, cuantos más usabas mejor, en una especie de competición ganada por aquél que usaba el patrón más complejo y difícil de entender. Supongo que esto me ayuda a entender los posts y artículos que veo ahora sobre refactorizar para eliminar patrones de diseño y los costes que esto tiene en algunos proyectos.
Con los años he aprendido en carne propia el principio KISS (Keep it Simple, Stupid) no solo con los patrones, sino también con la personalización de los componentes gráficos que aparecen en pantalla o con los ‘requisitos fantasma’, denominación que oí en una ocasión a un compañero de trabajo para referirse a esas funcionalidades que nadie te ha pedido pero uno cree importante para el cliente y que ‘seguramente’ que él terminará necesitando.
Hace mucho tiempo, un director de proyecto en un cliente me comentó que alguien en otro equipo de trabajo le había indicado que era imposible conseguir la funcionalidad que él pedía. Le contesté que prácticamente todo podía conseguirse invirtiendo el tiempo necesario. No fui lo suficientemente claro. Debí haber añadido: ¿es razonable usar todo ese tiempo en ese funcionalidad?  Con casi cualquier lenguaje de programación uno puede enviar un cohete a la Luna pero ¿de verdad se quiere ir a la Luna o se quiere una aplicación terminada en el tiempo previsto?