Aviso Legal
® Software Crafters es una marca registrada.
Verás, en este mundo hay dos tipos de personas, amigo mío:
Los que tienen armas cargadas y los que cavan.
Usted cava".
Esta es una de las frases más famosas del personaje interpretado por Clint Eastwood en la película que lo convirtió en un actor de renombre.
Aunque personalmente no soy un fanático de las pelis del oeste debo admitir que este “spaguetti western” en particular está bastante bien.
Incluso para muchos es una cinta de culto.
Lo que sin duda es una auténtica joya es la banda sonora compuesta por Ennio Morricone, especialmente la música de la épica escena final.
En la que los tres personajes, "El bueno" (interpretado Clint Eastwood), "El feo" y "El malo", se enfrentan en el cementerio de Sad Hill mientras tratan de localizar 200.000 dólares que habían enterrado.
Pero aquel lugar donde el trío de ‘cowboys’ se retaba a muerte, aunque pudiera parecerlo, no era el Lejano Oeste.
Ni siquiera era Hollywood… sino España.
En concreto, en un pequeño pueblo de la provincia de Burgos.
Donde, por cierto, 50 años después del estreno de la película, unos cuantos fans se juntaron, reconstruyeron el cementerio de la escena final y grabaron un documental sobre ello.
Bien.
¿Y qué tiene que ver esto con el desarrollo de software?
Pues que el título me viene que ni pintado para describir los 3 tipos de código que los developers solemos escribir.
Empecemos por el malo.
Ese código que no hay quien lo toque, porque cuando intentas arreglar una cosa rompes otra.
No tiene tests y en el caso de existir son de baja calidad y no aportan ninguna seguridad.
Es el típico proyecto en el que los developers están constantemente apagando fuegos.
Se pasan el día depurando y corrigiendo bugs.
Añadir nuevas funcionalidades son los padres.
Veamos el siguiente tipo, el feo.
Este es el código que, aunque funciona, está repleto de code smells.
Ya sabes, tiene todo el catálogo de malos olores que describe Martin Fowler en su libro Refactoring:
Obsesión por primitivos, clases con múltiples responsabilidades, funciones con demasiados parámetros, malos nombres, demasiada anidación…
Es un código viscoso al que cuesta mucho añadir nuevas características.
Y los tests, cuando hay, pasan una vez sí, dos no.
Indeterministas no, lo siguiente.
En cambio, el código bueno es el que te permite seguir disfrutando de un greenfield project con el paso del tiempo.
Un proyecto fácil de cambiar y mantener, que tiene el mínimo acoplamiento y la máxima cohesión entre sus artefactos.
Por supuesto dispone una batería de tests muy cuidada, con nombres que cuentan historias sobre el negocio.
Código que aprobaría el propio Clint Eastwood.