Atreverse a eliminar lo implementado
El software es por defecto incremental, siempre hay o habrá mejoras que hacerle o nuevos requerimientos que implementar.
La analogía del pintor:
Una persona pide a un pintor que le haga un cuadro en base a ciertas características poco claras, entonces el pintor decide hacer un boceto como borrador. Ante el primer borrador el cliente no queda satisfecho y hace correcciones; el pintor hace un nuevo lienzo intentando plasmar la idea del cliente y nuevamente se hacen otras correcciones. A la tercera corrección lo que pide el cliente y lo que entrega el pintor recién se empieza a parecer.
El primer boceto y el tercero no se parecen en nada, pero a medida que más correcciones se hacían más cerca del producto que de verdad quería el cliente estamos.
Podemos decir entonces que: Los clientes no saben que es lo que quieren y con el tiempo y las correcciones nos acercamos más al producto final que desea.
Programar casi siempre es un ejercicio de destrucción, donde buscamos la mejor solución a un problema que también puede cambiar en el tiempo.
A medida que el software se vuelve más complejo y se introducen nuevas características no podemos dar cuenta que el diseño inicial no encaja con el producto que se quiere construir.
Por naturaleza el software tiende a deteriorarse, esto tiene que ver mucho con la entropía, siempre hay nuevas tecnologías mejoradas que pueden dejar desactualizado a un proyecto cuyo mantenimiento no sea el adecuado.
Una regla fundamental del software profesional es que tiene que permitir dedicar menos esfuerzo a mantenimiento que a incorporar nuevas y mejores características.
Si es cambiar o desechar piezas de código mejoraran el software, debemos hacerlo dejando a un lado las emociones que conllevan tirar algo que nos llevó tiempo y esfuerzo construir.
Un programador profesional tiene sumido en su ADN que no se puede desarrollar software sin respaldo de test automatizados.
De igual manera que el proyecto crezca, lo deben hacer también las pruebas.
Un desarrollador de software profesional no duda en eliminar lo que sea necesario siempre que vaya a ser sustituido por una idea mejor que añada simplicidad, mejor diseño o mayor legibilidad a la solución.
Destruimos para construir.
Eliminar código que funciona pero un fin mayor es como dar un paso atrás para dar tres pasos adelante.
El desarrollo de software es una tarea incremental en la que en cada paso vamos añadiendo una funcionalidad adaptando lo que ya tenemos para acomodarlo a los nuevos requerimientos.
No basta con crear solamente algo que funcione, debemos encontrar la solución más simple y con el mejor diseño.
Modificar significa en ocasiones tirar a la basura piezas de código enteras, quizá porque encontramos una mejor solución, o por que no se entendieron bien los requerimientos iniciales.
Volver a escribir código desde cero a veces significa ahorrarnos mucho tiempo en el futuro del proyecto.
Te dejo el link gratuito de El libro negro de programador por si te intesa leerlo, o dale click a la imagen:
Top comments (0)