Putting it together

by Luismi Cavallé

Red-Green-Refactor

03 Dec 06

En Creating Passionate Users se preguntan sobre la conveniencia de los patrones rítmicos en nuestro trabajo. Tienen dudas acerca de si estos patrones son signo de que las cosas se vuelven mecánicas, rutinarias, o si, al contrario, forman parte de la experiencia zen del fluir (Be water, my friend).

En lo que a desarrollo de software se refiere, el TDD propone el siguiente mantra:

  1. Escribe un test sencillo que compruebe una parte de la funcionalidad que quieres implementar. Asegurate de ejecutar el test y de que este falle (rojo) según lo esperado
  2. Escribe el mínimo código en tu aplicación con el que consigas pasar el test (verde). No es necesario buscar la mejor solución posible, sino aquella que más rápidamente nos permita pasar el test. En el siguiente paso te preocuparás de la calidad del código, no ahora
  3. Refactoriza: Identifica código repetido, mala encapsulación o cualquier otro mal olor y corrígelo con la seguridad que te proporcionan los tests de que no vas a romper nada
  4. Repite el proceso hasta que la funcionalidad esté completamente implementada

No sé si seguir está práctica me hace más feliz como programador o si me acerca más a la experiencia casi mística del flow (aunque cierto rollo Karate Kid de “Dar cera, pulir cera” sí hay). De lo que estoy más seguro es de que desarrollar software de esta manera facilita enormemente escribir código de calidad, permite resolver problemas complejos incrementalmente al dividirlos en pasos sencillos y acerca un poco más al objetivo de ser ágil.