El diseño murió... ¿o no?

Creo que como profesionales dedicados y encarrilados dentro de la creciente industria de la economía digital, estamos acostumbrados a las críticas, a las tan consideradas buenas prácticas, así como al rechazo a las malas. Somos voceros de la multitud, seguidores y creadores de tendencias pero, sobre todo, somos tan humanamente humanos que llevamos nuestra esencia biológica y, en cierto modo, filosófico a nuestra profesión de una manera tan íntima y clara que deja hasta pobre cualquier otra profesión del impacto, popularidad y útil -esto bajo los términos económicos modernos-  como la nuestra. Aunando en lo anterior, el escrito Is Design Dead? de Martin Fowler ejemplifica de manera perfecta todo este palabrerío al exponer la subjetividad más objetiva: ¿Cómo no solo se diseña un buen pedazo de software, sino por qué y bajo qué criterio está bien diseñado? Era el año 2004 cuando éste se creó y, a modo personal, opino que esto sigue pasando y más que nunca. 

El punto focal de toda la discusión desarrollada por Martin Fowler es la comparación de las planeaciones y estructuras más arcaicas que rigen el software tradicional con la, para entonces, recién aparecida y aceptada metodología XP, acrónimo para Extreme Programming. Con el fin de no presentar un simple resumen, expondré aquellas ideas que, para la época, me resultaron tan increíblemente recientes que, por lo mismo, no pude evitar generar en mí un sentimiento de incomodidad y resignación. El diseño evolutivo, como su nombre lo propone, presenta ventajas inherentes y totalmente relacionadas tanto al tiempo como expansión de un programa computacional, en contraste al flujo más tradicional de la programación de un producto digital. Así como la teoría que da origen a nuestro ser, éste acercamiento aplicado al código introduce las nociones de que, en realidad, un servicio no está terminado jamás, sino que, como su contraparte causal, es capaz de crecer y mejorar conforme pasa el tiempo gracias a a simplicidad con la que éste es creado y, siempre y cuando los autores demuestren la capacidad técnica, así como la voluntad de seguir. Este último punto es crucial para presentar, lo que para mí, resulta ser lo más interesante: no hay una forma correcta de crear, es decir, no porque no se apliquen diagramas UML complejos quiere decir que estén mal diseñados, o por no siempre respetar estrictamente reglas, como el YAGNI, hace alusión a que el arquitecto en jefe no sabe de planeación y toda la base de código presentará errores irreparablemente caros. 

A modo de conclusión, el diseño no está muerto, solamente que no está viviendo cómo debería según muchos expertos. Claro, no porque está noción exista, dejaremos de aprender y de seguir expandiendo nuestro conocimiento an patrones y en tecnologías específicas con el pretexto de: así está bien, sino que todo lo contrario, será responsabilidad de nosotros aceptar que éste, así como el mismo código, es una herramienta de comunicación que da mejor lugar de desarrollo, así como mayor potencial a nuestras ideas.

Comentarios

Entradas populares de este blog

SOLID Princples

Los microservicios

Las corporaciones necesitan de arquitectos más que el software