Los diseñadores de software, y los arquitectos en particular, tienen la tendencia de evaluar soluciones por cuan elegantes y óptimas son para un determinado problema.
Al igual que los jueces de los concursos de belleza, miramos el diseño o implementación e inmediatamente vemos los fallos, defectos leves o cosas que no nos gusten, que pueden ser eliminadas con solo unos pocos cambios o iteraciones de refactoring.
[ Los modelos de dominio simplemente claman por que pasemos una vez más por ellos, para ver una vez más atributos o funcionalidades comunes que puedan ser pasados a las clases base. Múltiples implementaciones de servicios duplicados claman por la necesidad de convertirse en servicios web. Las consultas se quejan de insuficiencia de memoria e índices no-únicos y exigen que se les preste atención. ]
Mi consejo: No caiga en la tentación de hacer su diseño o implementación ¡perfecta! Diríjase hacia lo “suficientemente bueno” y deténgase cuando lo haya logrado.
Pero, ¿cuándo es exactamente “suficientemente bueno”? Suficientemente bueno, quiere decir que las imperfecciones restantes no tienen impacto en la funcionalidad del sistema, su mantenimiento, o rendimiento de forma significativa.
La arquitectura y el diseño van juntos. La implementación funciona y cumple con los requisitos de rendimiento; el código es limpio, conciso y bien documentado; ¿Podría ser mejor? Seguramente, pero es lo suficientemente bueno como para detenerse; declaremos pues, la victoria y pasemos a la siguiente tarea.
La búsqueda de la perfección en el diseño y la implementación conduce, en mi opinión, a un sobre-diseño y a soluciones ofuscadas, las cuales al final son difíciles de mantener.
Un cierto número de axiomas de este libro previenen a los diseñadores para evitar abstracciones o complejidades innecesarias. ¿Por qué tenemos problemas en mantener las cosas simples? Por qué estamos buscando la solución perfecta! ¿Por qué más un arquitecto puede introducir complejidad en una solución viable, excepto para tratar las imperfecciones percibidas en un diseño simple?
Hay que recordar que el desarrollo de aplicaciones no es un concurso de belleza, por tanto deje de buscar defectos y de perder el tiempo buscando la perfección.
Autor Greg Nyberg
Versión original en : "Perfect" is the Enemy of "Good Enough"
Muchas veces en el fragor de la batalla diaria, ofuscados en pequeños problemas técnicos, llegamos a perder el norte ("foco"), y a veces inventamos soluciones quiméricas; es entonces cuando debemos replantearnos si lo que estamos haciendo es realmente lo que necesitamos, debemos volver al punto de partida y retomar la vista de águila para no rizar el rizo. Creo que todos nosotros conocemos algún que otro proyecto que se ha disparado en cuanto a tiempo y recursos, algunos por mala planificación, otros por falta de prevision de riesgos, ..., y otros por buscar la perfección.
La perfección puede alimentar nuestro ego, pero nuestro ego no nos puede alimentar.
Emmerson.
- FIN -
No comments:
Post a Comment