Hoy os traigo una entrevista a un personaje de sobra conocido en el ámbito del agilismo español, sobre todo en el mundo del desarrollo dirigido por tests (TDD).
De hecho, el único libro editado sobre el tema en castellano es obra suya y al mismo ya le dedicamos un post en el pasado.
Hace poco tuve la suerte de conocer a Carlos Ble en un Coding Dojo de TDD y por supuesto aproveché para hacerle esta entrevista.
Hola Carlos, eres una persona bastante conocida en el mundo del agilismo en España, sobre todo por tu libro Diseño Ágil con TDD.
¿Cómo y por qué decides escribir un libro sobre TDD en castellano?
La respuesta corta sería: porque no lo había!! Tenemos “bastante” literatura sobre TDD en inglés pero sentía que, siendo la herramienta que es, se merecía un libro en castellano con el llegar a más programadores de habla hispana.
Desde pequeño me gusta escribir, y contar a los demás lo que aprendo y lo que me gusta. La necesidad de escribir un libro sobre TDD surgió cuando había impartido varios cursos sobre ello y veía que repetía siempre las mismas cosas y que no había unos apuntes que pudiera dar a mis alumos. Les recomendaba libros en inglés, pero la gente me miraba raro. Parece como si recomendara libros escritos en chino.
Por otra parte, queria apuntar para mí mismo lo que aprendía con cada curso, ya que cuando das clase, tu tambien aprendes. Al explicarte, al responder dudas, al oir sugerencias y tambien consejos de alumnos aventajados. Así que iba apuntando todo igual que hago con mi blog, apuntar lo que aprendo porque mi memoria no es muy buena. Escribir sobre TDD me hizo aprender muchísimo de TDD. Me hizo estar más seguro de los conceptos porque los tenia que exponer con claridad y con rigor (al menos era mi intención).
en la primera semana tuvimos más de 2.000 descargas del pdf
¿Fue difícil convencer a los colaboradores para que escribieran contigo?
En absoluto, todos se animaron en cuanto se lo propuse. A veces buscas colaboraciones y realmente tu carga de trabajo se dobla, pero no ha sido este el caso!! Han sido autores de primera tanto en conocimientos como en ganas.
¿Qué crees que ha reportado “Diseño Ágil con TDD” al mundo del desarrollo en España?
Decir lo que ha aportado en España suena muy grande. La respuesta directa es que no lo se. Se que a mí me ha aportado muchísimo, em muchos aspectos. El primero, por todo lo que he aprendido escribiendolo. No sólo de TDD sino de cómo se escribe un libro (aunque tendria que escribir muchos más para dominarlo), de cómo publicar, colaborar con mas personas en un libro, etc.
Sabemos que el impacto ha sido grande, en la primera semana tuvimos más de 2.000 descargas del pdf y me ha salido mucho trabajo, pero no soy capaz de cuantificar en más detalle. Cada día hay gente que lo descubre y se siguen abriendo puertas. He recibido muchos emails de feedback, lo cual es estupendo.
Está ayudando a que sepan que en España tambien hacemos TDD, porque lo conoce gente fuera de país, incluso grandes autores de habla inglesa. Digamos que el libro ya ha llegado mas alla de mis redes. Lo ha comprado y descargado gente que ya no son conocidos de conocidos sino que ha llegado más lejos que eso.
ha llevado alrededor de año y medio de trabajo y los últimos meses fueron duros
¿Qué te ha aportado a ti el escribir “Diseño Ágil con TDD”?
Sacar el libro a la luz ha sido todo un reto… me ha llevado alrededor de año y medio de trabajo y los últimos meses fueron duros. Invertí los dos últimos al completo, sin hacer nada más. Terminé extenuado y me dije que no volvería a meterme en semejante berenjenal.
No obstante, ahora mismo estoy colaborando en el libro de mi amigo Esteban Manchado y tengo en mente un futuro libro sobre XP. Con el tiempo las cosas se ven de otro color y “Diseño Ágil con TDD” me está dando mucho. Me está permitiendo trabajar con muchas empresas de todo tipo en todo el país y también en otros paises.
Es muy muy satisfactorio transferir buenas prácticas a los desarrolladores con la idea de ganar en eficiencia y calidad. Terminar un proyecto tan ambicioso te da tambien confianza en ti mismo.
la primera version de pyDoubles salió en 4 viajes de avión
Recientemente has creado junto a Ruben Berdarnez @rubenbpv un marco de trabajo de dobles para Python llamado pyDoubles. ¿Crees que era necesario otro framework de dobles para Python?
Tal vez si hubiese conocido python-mockito no, pero como ya usaba frameworks de dobles antes de que ese existiera y ninguno me gustaba, me decidí a crear el que realmente necesitaba. Ya de paso hemos incluido funcionalidad que no tenia python-mockito y una API que me gusta más. Además se integra con Hamcrest.
Ahora tiene la API y la funcionalidad que mas me gusta de todos los frameworks de dobles que conozco en Python.
En verdad no tenía intención de crearlo, todo empezó cuando me puse a hacer una code kata mientras viajaba en el avión para practicar TDD y APIs fluidas, con problemas más complejos que los de otras katas tipicas. Yo no soy de hacer katas. Me gusta programar algo que tenga utilidad, así que cuando hago una kata, me gusta desarrollar alguna pequeña utilidad.
Luego me cuesta borrarla y hacerla de nuevo, pero así practico también el desapego y la honestidad. Recomiendo mucho borrar el código cuando ya se le tiene aprecio, porque te demuestras a tí mismo que siempre se puede hacer mejor, que no eres el mejor programador del mundo. Hago muchos viajes de avión entre Tenerife y Península y la media son 3 horas de vuelo, asi que trato de sentarme en una ventanilla de emergencia, donde hay espacio para el portátil y aprovecho el tiempo para practicar o para escribir.
Otras veces uso papel y bolígrafo para anotar ideas. Volando se me ocurren a veces las mejores ideas. Es por no poder hacer ninguna otra cosa ni tener ninguna otra distracción.
Total que ese dia empecé a hacer la kata y me gustó lo que fue saliendo. Además probé a borrar todo el código y empezar desde el principio y el resultado mejoró considerablemnte. Todo lo que habia programado en el viaje de ida, lo borre en el viaje de vuelta. Y llegó al punto de que aquello ya era la herramienta que necesitabamos para nuestros tests, porque antes de pyDoubles, usabamos un frameworks de mocks que nos obligaba a hacer “record/replay” y los tests eran muy feos. Creo que la primera version de pyDoubles salió en 4 viajes de avión, no lo toqué más que en viajes de avión.
la recompensa se consigue practicando
¿Qué hace diferente pyDoubles de otros frameworks?
Su sencillez de uso. Su cobertura de test, que debe ser muy cercana al 100%. La extensibilidad para nuevas caracteristicas que se quieran implementar. La sencillez de su implementación. Su licencia open source. El feedback que estan aportando los usuarios. Su documentación. El hecho de que está en el repositorio pypi, en Ubuntu y en Debian (gracias a David Villa por empaquetarlo).
Que está vivo y evoluciona. Que escuchamos las peticiones de los usuarios. Porque se integra perfectamente con Hamcrest.
¿Por qué deberíamos los desarrolladores utilizar pyDoubles?
Porque tiene todo lo que se necesita para practicar TDD y también para testing. No es intrusivo y está bien documentado.
“el mundo no se hizo en dos días”, se necesita mucho trabajo para obtener los resultados prometidos
¿Qúe consejos puedes darle a alguien que está iniciándose en el TDD?
Que no desespere, que sepa que la curva de aprendizaje es dura pero que los resultados llegan y que luego no hay vuelta atras. Es jugar en otra liga.
Por experiencia como docente y mentor, hay sobre todo dos tipos de reacciones al TDD: los incrédulos y los que valoran muy positivamente lo que puede aportar. Los segundos, a pesar de su interés, acaban por no aplicar TDD en su trabajo diario en su mayoria. A ambos perfiles les diría aquello de “el mundo no se hizo en dos días”, se necesita mucho trabajo para obtener los resultados prometidos pero el esfuerzo merece la pena!! Evidentemente, no basta con tomar nota de lo que se explica en un curso de doce horas ni en un libro de 300 páginas, hay que ir implementando las buenas prácticas en el día a día. Sólo siendo constante se logran las premisas de legibilidad, mantenibilidad y sostenibilidad del código fuente.
Así que les diría que practiquen, que la recompensa se consigue practicando.
¿Hacía donde crees que tiende la industria del Softare, es TDD el futuro o es ya un presente?
Depende del país en el que nos situemos… en España estamos caminando despacio, pero creo que sobre seguro, hacia un futuro en el que haremos un mayor uso, no sólo de TDD, sino de muchas otras herramientas ágiles. Estamos gestando el cambio, se va notando. Lo que sí está claro es que empresas, universidades y profesionales deben remar a una, apostando por la calidad. Si queremos diferenciarnos de industrias como la de India o China, tendremos que diferenciarnos en base a nuestra calidad. En cantidad no podemos competir.
hay que estar dispuesto a invertir tiempo y recursos
¿Están preparadas las empresas para abordar el TDD como paradigma de calidad en sus procesos de producción?
A ver, ganas hay y empresas interesadas en TDD, también… lo constato en mi día a día, sin embargo, la mayoría no invierte lo suficiente. Ni siquiera se hace testing de ningun tipo en muchas empresas, así que TDD se queda aún más atrás. Lo que hay que tener claro es que hay que estar dispuesto a invertir tiempo y recursos pero que, con esta inversión, se garantiza una ganancia tangible en todos los sentidos.
Porque, cuánto dinero nos supone, por ejemplo: mantener un software lleno de fallos, tener un equipo descoordinado o realizar una entrega fuera de plazo. Muchas veces, no se toman en cuenta este tipo de variables como parte del coste de desarrollar un producto pero, indudablemente, se paga.
¿Donde podremos encontrarte en los próximos meses?
Mi blog está abierto para todo el que quiera saber por dónde ando metido www.carlosble.com Durante los tres últimos años he viajado muchísimo, espero que esta no sea la tónica para el año venidero Ahora mismo trabajo en SaludOnNet, estamos aplicando XP y estoy muy contento de ver la progresión del equipo. Mientras me necesiten seguiré aquí, y lo compaginaré con algunas visitas que ya tengo contratadas con empresas. También estaré dando clase en el posgrado universitario de La Salle en Barcelona.
Este 2012 se presenta con algunas salidas fuera del país. Parece que voy a volver a hacer formacion por Europa, lo cual es un cambio de aires que apetece, y si me aceptan alguna propuesta, también iré a la conferencia XP (xp2012.org) en Suecia. Creo que tambien nos veremos en Codemotion.es
Muchas gracias Carlos, un placer :)
Muchísimas gracias por la entrevista Oscar, el placer es mio :-)
Tan solo recordar a los lectores que pueden descargar el libro Diseño Ágil con TDD directamente desde Dirigido por tests de forma completamente gratuita puesto que el libro esta licenciado bajo creative commons.
Si quieres saber más sobre Carlos Ble, puedes seguirlo en su cuenta de Twitter @carlosble.
Más en GenbetaDev | Entrevistas