17/12/2013
Hola y un buen día de Dios para todos!! hoy tengo una pequeña historia muy bonita para compartir con Uds. mis amigos programadores, espero les guste saludos :)..........................................................................................................................................................................................
Érase una vez que se era, un lejano país donde vivían dos cerditos, Pablo y Adrián que, además, eran hermanos. Ambos eran los cerditos m ́as listos de la granja y, por eso, el gallo Iván (el gerente de la misma) organizó una reunión en el establo, donde les encargó desarrollar un programa de ordenador para controlar el almacén de piensos. Les explicó qué quería saber en todo momento: cuántos s**os de grano había y quién metía y sacaba s**os de grano del almacén. Para ello sólo tenían un mes pero les advirtió que, en una semana, quería ya ver algo funcionando. Al final de esa primera semana, eliminar ́ıa a uno de los dos.
Adrián, que era el m ́as joven e impulsivo, inmediatamente se puso manos a la obra. “¡No hay tiempo que perder!”, E ́rase una vez que se era, un lejano pa ́ıs donde viv ́ıan dos cerditos, Pablo y Adri ́an que, adem ́as, eran hermanos. Ambos eran los cerditos m ́as listos de la granja y, por eso, el gallo Iv ́an (el gerente de la misma) organiz ́o una reuni ́on en el establo, donde les encarg ́o desarrollar un programa de ordenador para controlar el almac ́en de piensos. Les explic ́o qu ́e quer ́ıa saber en todo momento: cu ́antos s**os de grano hab ́ıa y qui ́en met ́ıa y sacaba s**os de grano del almac ́en. Para ello s ́olo ten ́ıan un mes pero les advirti ́o que, en una semana, quer ́ıa ya ver algo funcionando. Al final de esa primera semana, eliminar ́ıa a uno de los dos.
Adri ́an, que era el m ́as joven e impulsivo, inmediatamente se puso manos a la obra. “¡No hay tiempo que perder!”, dec ́ıa. Y empez ́o r ́apidamente a escribir l ́ıneas y l ́ıneas de c ́odigo. Algunas eran de un reciente programa que hab ́ıa ayudado a escribir para la guarder ́ıa de la vaca Paca. Adri ́an penso ́ que no eran muy diferentes un almac ́en de grano y una guarder ́ıa. En el primero se guardan s**os y en el segundo, pequen ̃os animalitos. De acuerdo, ten ́ıa que retocar algunas cosillas para que aquello le sirviera pero bueno, esto del software va de reutilizar lo que ya funciona, ¿no?
Pablo, sin embargo, antes de escribir una sola l ́ınea de c ́odigo comenz ́o acor- dando con Iv ́an dos cosas: qu ́e era exactamente lo que podr ́ıa ver dentro de una semana y c ́omo sabr ́ıa que, efectivamente, estaba terminada cada cosa. Iv ́an quer ́ıa conocer, tan r ́apido como fuera posible, cu ́antos s**os de grano hab ́ıa en cada parte del almac ́en porque sospechaba que, en algunas partes del mismo, se estaban acumulando s**os sin control y se estaban estropeando. Como los s**os entraban y sal ́ıan constantemente, no pod ́ıa saber cu ́antos hab ́ıa y do ́nde estaban en cada instante, as ́ı que acordaron ir contabiliz ́ando- los por zonas y apuntando a qu ́e parte iba o de qu ́e parte ven ́ıa, cada vez que entrara o saliera un s**o. As ́ı, en poco tiempo podr ́ıan tener una idea clara del uso que se estaba dando a las distintas zonas del almac ́en.
Mientras Adri ́an adelantaba a Pablo escribiendo muchas l ́ıneas de c ́odigo, Pablo escrib ́ıa primero las pruebas automatizadas. A Adri ́an eso le parec ́ıa una p ́erdida de tiempo. ¡So ́lo ten ́ıan una semana para convencer a Iv ́an!
Al final de la primera semana, la demo de Adri ́an fue espectacular, ten ́ıa un control de usuarios muy completo, hizo la demostracio ́n desde un m ́ovil y ensen ̃o ́, adem ́as, las posibilidades de un generador de informes muy potente que hab ́ıa desarrollado para otra granja anteriormente. Durante la demostra- cio ́n hubo dos o tres problemillas y tuvo que arrancar de nuevo el programa pero, salvo eso, todo fue genial. La demostracio ́n de Pablo fue mucho m ́as modesta, pero cumplio ́ con las expectativas de Iv ́an y el programa no fallo ́ en ningu ́n momento. Claro, todo lo que ensen ̃o ́ lo hab ́ıa probado much ́ısimas veces antes gracias a que hab ́ıa automatizado las pruebas. Pablo hac ́ıa TDD, es decir, nunca escrib ́ıa una l ́ınea de c ́odigo sin antes tener una prueba que le indicara un error. Adri ́an no pod ́ıa creer que Pablo hubiera gastado m ́as de la mitad de su tiempo en aquellas pruebas que no hac ́ıan m ́as que retrasarle a la hora de escribir las funcionalidades que hab ́ıa pedido Iv ́an. El programa de Adri ́an ten ́ıa muchos botones y much ́ısimas opciones, probablemente muchas m ́as de las que jam ́as ser ́ıan necesarias para lo que hab ́ıa pedido Iv ́an, pero ten ́ıa un aspecto “muy profesional”.
Iv ́an no supo qu ́e hacer. La propuesta de Pablo era muy robusta y hac ́ıa justo lo que hab ́ıan acordado. La propuesta de Adri ́an ten ́ıa cosillas que pulir, pero era muy prometedora. ¡Hab ́ıa hecho la demostracio ́n desde un m ́ovil! As ́ı que les propuso el siguiente trato: “Os pagar ́e un 50% m ́as de lo que inicialmente hab íamos presupuestado, pero sólo a aquel de los dos que me haga el mejor proyecto. Al otro no le dar ́e nada.”. Era una oferta complicada porque, por un lado, el que ganaba se llevaba mucho m ́as de lo previsto. Muy tentador. Pero, por el otro lado, corrían el riesgo de trabajar durante un mes completamente gratis. Mmmmm.
Adri ́an, tan impulsivo y arrogante como siempre, no dudo ́ ni un instante. “¡Trato hecho!”, dijo. Pablo explic ́o que aceptar ́ıa s ́olo si Iv ́an se compro- met ́ıa a colaborar como lo hab ́ıa hecho durante la primera semana. A Iv ́an le parecio ́ razonable y les convoc ́o a ambos para que le ensen ̃aran el resultado final en tres semanas.
Adri ́an se marcho ́ pitando y llam ́o a su primo Sixto, que sab ́ıa mucho y le asegurar ́ıa la victoria, aunque tuviera que darle parte de las ganancias. Ambos se pusieron r ́apidamente manos a la obra. Mientras Adri ́an arreglaba los defectillos encontrados durante la demo, Sixto se encarg ́o de disen ̃ar una arquitectura que permitiera enviar mensajes desde el m ́ovil hasta un webser- vice que permit ́ıa encolar cualquier operaci ́on para ser procesada en paralelo por varios servidores y as ́ı garantizar que el sistema estar ́ıa en disposici ́on de dar servicio 24 horas al d ́ıa los 7 d ́ıas de la semana.
Mientras tanto, Pablo se reuni ́o con Iv ́an y Bernardo (el encargado del almac ́en) para ver cu ́ales deber ́ıan ser las siguientes funcionalidades a desarro- llar. Les pidio ́ que le explicaran, para cada petici ́on, qu ́e beneficio obten ́ıa la granja con cada nueva funcionalidad. Y as ́ı, poco a poco, fueron elaborando una lista de funcionalidades priorizadas y resumidas en una serie de tarjetas. A continuacio ́n, Pablo fue, tarjeta a tarjeta, discutiendo con Iv ́an y Bernardo cu ́anto tiempo podr ́ıa tardar en terminarlas. De paso, aprovecho ́ para anotar algunos criterios que luego servir ́ıan para considerar que esa funcionalidad estar ́ıa completamente terminada y eliminar alguna ambigu ̈edad que fuera surgiendo. Cuando Pablo penso ́ que, por su experiencia, no podr ́ıa hacer m ́as trabajo que el que ya hab ́ıan discutido, dio por concluida la reuni ́on y se dispuso a trabajar. Antes que nada, resolvi ́o un par de defectos que hab ́ıan surgido durante la demostracio ́n y le pidio ́ a Iv ́an que lo validara. A conti- nuaci ́on, se marcho ́ a casa a descansar. Al d ́ıa siguiente, cogi ́o la primera de las tarjetas y, como ya hab ́ıa hecho durante la semana anterior, comenz ́o a automatizar los criterios de aceptacio ́n acordados con Iv ́an y Bernardo. Y lue- go, fue escribiendo la parte del programa que hac ́ıa que se cumplieran esos criterios de aceptacio ́n. Pablo le hab ́ıa pedido ayuda a su amigo Hudson, un coyote vegetariano que hab ́ıa venido desde Am ́erica a pasar el invierno. Hud- son no sab ́ıa programar, pero era muy r ́apido haciendo cosas sencillas. Pablo le encarg ́o que comprobara constantemente los criterios de aceptacio ́n que ́el hab ́ıa automatizado. As ́ı, cada vez que Pablo hac ́ıa algu ́n cambio en su programa, avisaba a Hudson y este hac ́ıa, una tras otra, todas las pruebas de aceptacio ́n que Pablo iba escribiendo. Y cada vez hab ́ıa m ́as. ¡Este Hudson era realmente veloz e incansable!
A medida que iba pasando el tiempo, Adri ́an y Sixto ten ́ıan cada vez m ́as problemas. Terminaron culpando a todo el mundo. A Iv ́an, porque no les hab ́ıa explicado detalles important ́ısimos para el ́exito del proyecto. A la vaca Paca, porque hab ́ıa incluido una serie de cambios en el programa de la guarder ́ıa que hac ́ıa que no pudieran reutilizar casi nada. A los inventores de los SMS y los webservices, porque no ten ́ıan ni idea de c ́omo funciona una granja. Eran tantos los frentes que ten ́ıan abiertos que tuvieron que prescindir del env ́ıo de SMS y buscaron un generador de p ́aginas web que les permitiera dibujar el flujo de navegaci ́on en un gr ́afico y, a partir de ah ́ı, generar el esqueleto de la aplicaci ́on. ¡Eso seguro que les ahorrar ́ıa mucho tiempo! Al poco, Sixto, harto de ver que Adri ́an no valoraba sus aportaciones y que ya no se iban a usar sus ideas para enviar y recibir los SMS, decidio ́ que se marchaba, au ́n renunciando a su parte de los beneficios. Total, ́el ya no cre ́ıa que fueran a ser capaces de ganar la competici ́on.
Mientras tanto, Pablo le pidio ́ un par de veces a Iv ́an y a Bernardo que le validaran si lo que llevaba hecho hasta aquel momento era de su agrado y les
hizo un par de demostraciones durante aquellas 3 semanas, lo que sirvi ́o para corregir algunos defectos y cambiar algunas prioridades. Iv ́an y Bernardo estaban francamente contentos con el trabajo de Pablo. Sin embargo, entre ellos comentaron m ́as de una vez: “¿Qu ́e estar ́a haciendo Adri ́an? ¿C ́omo lo llevar ́a?”.
Cuando se acercaba la fecha final para entregar el programa, Adri ́an se qued ́o sin dormir un par de noches para as ́ı poder entregar su programa. Pero eran tantos los defectos que hab ́ıa ido acumulando que, cada vez que arreglaba una cosa, le fallaba otra. De hecho, cuando lleg ́o la hora de la demostracio ́n, Adri ́an s ́olo pudo ensen ̃ar el programa instalado en su port ́atil (el u ́nico sitio donde, a duras p***s, funcionaba) y fue todo un desastre: mensajes de error por todos sitios, comportamientos inesperados... y lo peor de todo: el programa no hac ́ıa lo que hab ́ıan acordado con Iv ́an.
Pablo, sin embargo, no tuvo ningu ́n problema en ensen ̃ar lo que llevaba funcionando desde hac ́ıa mucho tiempo y que tantas veces hab ́ıa probado. Por si acaso, dos d ́ıas antes de la entrega, Pablo hab ́ıa dejado de introducir nuevas caracter ́ısticas al programa porque quer ́ıa centrarse en dar un buen manual de usuario, que Iv ́an hab ́ıa olvidado mencionar en las primeras reuniones porque daba por sentado que se lo entregar ́ıan. Claro, Adri ́an no hab ́ıa tenido tiempo para nada de eso.
Moraleja:
Adem ́as de toda una serie de buenas pr ́acticas y un proceso de desarrollo ́agil, Pablo hizo algo que Adri ́an desprecio ́: acord ́o con Iv ́an (el cliente) y con Bernardo (el usuario) los criterios mediante los cu ́ales se comprobar ́ıa que cada una de las funcionalidades estar ́ıa bien acabada. A eso que solemos lla- mar “criterios de aceptacio ́n”, Pablo le an ̃adi ́o la posibilidad de automatizar su ejecuci ́on e incorporarlos en un proceso de integraci ́on continua (que es lo que representa su amigo Hudson en este cuento). De esta manera, Pablo estaba siempre tranquilo de que no estaba estropeando nada viejo con cada nueva modificaci ́on. Al evitar volver a trabajar sobre asuntos ya acabados, Pablo era m ́as eficiente. En el corto plazo, las diferencias entre ambos en- foques no parecen significativas, pero en el medio y largo plazo, es evidente que escribir las pruebas antes de desarrollar la soluci ́on es mucho m ́as eficaz y eficiente.
En este libro que ahora tienes entre tus manos, y despu ́es de este inusual pr ́ologo, te invito a leer c ́omo Carlos explica bien clarito c ́omo guiar el desa- rrollo de software mediante la t ́ecnica de escribir antes las pruebas (m ́as conocido como TDD). Y empez ́o r ́apidamente a escribir l ́ıneas y l ́ıneas de c ́odigo. Algunas eran de un reciente programa que hab ́ıa ayudado a escribir para la guarder ́ıa de la vaca Paca. Adri ́an penso ́ que no eran muy diferentes un almac ́en de grano y una guarder ́ıa. En el primero se guardan s**os y en el segundo, pequen ̃os animalitos. De acuerdo, ten ́ıa que retocar algunas cosillas para que aquello le sirviera pero bueno, esto del software va de reutilizar lo que ya funciona, ¿no?
Pablo, sin embargo, antes de escribir una sola l ́ınea de c ́odigo comenz ́o acor- dando con Iv ́an dos cosas: qu ́e era exactamente lo que podr ́ıa ver dentro de una semana y c ́omo sabr ́ıa que, efectivamente, estaba terminada cada cosa. Iv ́an quer ́ıa conocer, tan r ́apido como fuera posible, cu ́antos s**os de grano hab ́ıa en cada parte del almac ́en porque sospechaba que, en algunas partes del mismo, se estaban acumulando s**os sin control y se estaban estropeando. Como los s**os entraban y sal ́ıan constantemente, no pod ́ıa saber cu ́antos hab ́ıa y do ́nde estaban en cada instante, as ́ı que acordaron ir contabiliz ́ando- los por zonas y apuntando a qu ́e parte iba o de qu ́e parte ven ́ıa, cada vez que entrara o saliera un s**o. As ́ı, en poco tiempo podr ́ıan tener una idea clara del uso que se estaba dando a las distintas zonas del almac ́en.
Mientras Adri ́an adelantaba a Pablo escribiendo muchas l ́ıneas de c ́odigo, Pablo escrib ́ıa primero las pruebas automatizadas. A Adri ́an eso le parec ́ıa una p ́erdida de tiempo. ¡So ́lo ten ́ıan una semana para convencer a Iv ́an!
Al final de la primera semana, la demo de Adri ́an fue espectacular, ten ́ıa un control de usuarios muy completo, hizo la demostracio ́n desde un m ́ovil y ensen ̃o ́, adem ́as, las posibilidades de un generador de informes muy potente que hab ́ıa desarrollado para otra granja anteriormente. Durante la demostra- cio ́n hubo dos o tres problemillas y tuvo que arrancar de nuevo el programa pero, salvo eso, todo fue genial. La demostracio ́n de Pablo fue mucho m ́as modesta, pero cumplio ́ con las expectativas de Iv ́an y el programa no fallo ́ en ningu ́n momento. Claro, todo lo que ensen ̃o ́ lo hab ́ıa probado much ́ısimas veces antes gracias a que hab ́ıa automatizado las pruebas. Pablo hac ́ıa TDD, es decir, nunca escrib ́ıa una l ́ınea de c ́odigo sin antes tener una prueba que le indicara un error. Adri ́an no pod ́ıa creer que Pablo hubiera gastado m ́as de la mitad de su tiempo en aquellas pruebas que no hac ́ıan m ́as que retrasarle a la hora de escribir las funcionalidades que hab ́ıa pedido Iv ́an. El programa de Adri ́an ten ́ıa muchos botones y much ́ısimas opciones, probablemente muchas m ́as de las que jam ́as ser ́ıan necesarias para lo que hab ́ıa pedido Iv ́an, pero ten ́ıa un aspecto “muy profesional”.
Iv ́an no supo qu ́e hacer. La propuesta de Pablo era muy robusta y hac ́ıa justo lo que hab ́ıan acordado. La propuesta de Adri ́an ten ́ıa cosillas que pulir, pero era muy prometedora. ¡Hab ́ıa hecho la demostracio ́n desde un m ́ovil! As ́ı que les propuso el siguiente trato: “Os pagar ́e un 50% m ́as de lo que inicialmente hab ́ıamos presupuestado, pero s ́olo a aquel de los dos que me haga el mejor proyecto. Al otro no le dar ́e nada.”. Era una oferta complicada porque, por un lado, el que ganaba se llevaba mucho m ́as de lo previsto. Muy tentador. Pero, por el otro lado, corr ́ıan el riesgo de trabajar durante un mes completamente gratis. Mmmmm.
Adri ́an, tan impulsivo y arrogante como siempre, no dudo ́ ni un instante. “¡Trato hecho!”, dijo. Pablo explic ́o que aceptar ́ıa s ́olo si Iv ́an se compro- met ́ıa a colaborar como lo hab ́ıa hecho durante la primera semana. A Iv ́an le parecio ́ razonable y les convoc ́o a ambos para que le ensen ̃aran el resultado final en tres semanas.
Adri ́an se marcho ́ pitando y llam ́o a su primo Sixto, que sab ́ıa mucho y le asegurar ́ıa la victoria, aunque tuviera que darle parte de las ganancias. Ambos se pusieron r ́apidamente manos a la obra. Mientras Adri ́an arreglaba los defectillos encontrados durante la demo, Sixto se encarg ́o de disen ̃ar una arquitectura que permitiera enviar mensajes desde el m ́ovil hasta un webser- vice que permit ́ıa encolar cualquier operaci ́on para ser procesada en paralelo por varios servidores y as ́ı garantizar que el sistema estar ́ıa en disposici ́on de dar servicio 24 horas al d ́ıa los 7 d ́ıas de la semana.
Mientras tanto, Pablo se reuni ́o con Iv ́an y Bernardo (el encargado del almac ́en) para ver cu ́ales deber ́ıan ser las siguientes funcionalidades a desarro- llar. Les pidio ́ que le explicaran, para cada petici ́on, qu ́e beneficio obten ́ıa la granja con cada nueva funcionalidad. Y as ́ı, poco a poco, fueron elaborando una lista de funcionalidades priorizadas y resumidas en una serie de tarjetas. A continuacio ́n, Pablo fue, tarjeta a tarjeta, discutiendo con Iv ́an y Bernardo cu ́anto tiempo podr ́ıa tardar en terminarlas. De paso, aprovecho ́ para anotar algunos criterios que luego servir ́ıan para considerar que esa funcionalidad estar ́ıa completamente terminada y eliminar alguna ambigu ̈edad que fuera surgiendo. Cuando Pablo penso ́ que, por su experiencia, no podr ́ıa hacer m ́as trabajo que el que ya hab ́ıan discutido, dio por concluida la reuni ́on y se dispuso a trabajar. Antes que nada, resolvi ́o un par de defectos que hab ́ıan surgido durante la demostracio ́n y le pidio ́ a Iv ́an que lo validara. A conti- nuaci ́on, se marcho ́ a casa a descansar. Al d ́ıa siguiente, cogi ́o la primera de las tarjetas y, como ya hab ́ıa hecho durante la semana anterior, comenz ́o a automatizar los criterios de aceptacio ́n acordados con Iv ́an y Bernardo. Y lue- go, fue escribiendo la parte del programa que hac ́ıa que se cumplieran esos criterios de aceptacio ́n. Pablo le hab ́ıa pedido ayuda a su amigo Hudson, un coyote vegetariano que hab ́ıa venido desde Am ́erica a pasar el invierno. Hud- son no sab ́ıa programar, pero era muy r ́apido haciendo cosas sencillas. Pablo le encarg ́o que comprobara constantemente los criterios de aceptacio ́n que ́el hab ́ıa automatizado. As ́ı, cada vez que Pablo hac ́ıa algu ́n cambio en su programa, avisaba a Hudson y este hac ́ıa, una tras otra, todas las pruebas de aceptacio ́n que Pablo iba escribiendo. Y cada vez hab ́ıa m ́as. ¡Este Hudson era realmente veloz e incansable!
A medida que iba pasando el tiempo, Adri ́an y Sixto ten ́ıan cada vez m ́as problemas. Terminaron culpando a todo el mundo. A Iv ́an, porque no les hab ́ıa explicado detalles important ́ısimos para el ́exito del proyecto. A la vaca Paca, porque hab ́ıa incluido una serie de cambios en el programa de la guarder ́ıa que hac ́ıa que no pudieran reutilizar casi nada. A los inventores de los SMS y los webservices, porque no ten ́ıan ni idea de c ́omo funciona una granja. Eran tantos los frentes que ten ́ıan abiertos que tuvieron que prescindir del env ́ıo de SMS y buscaron un generador de p ́aginas web que les permitiera dibujar el flujo de navegaci ́on en un gr ́afico y, a partir de ah ́ı, generar el esqueleto de la aplicaci ́on. ¡Eso seguro que les ahorrar ́ıa mucho tiempo! Al poco, Sixto, harto de ver que Adri ́an no valoraba sus aportaciones y que ya no se iban a usar sus ideas para enviar y recibir los SMS, decidio ́ que se marchaba, au ́n renunciando a su parte de los beneficios. Total, ́el ya no cre ́ıa que fueran a ser capaces de ganar la competici ́on.
Mientras tanto, Pablo le pidio ́ un par de veces a Iv ́an y a Bernardo que le validaran si lo que llevaba hecho hasta aquel momento era de su agrado y les
hizo un par de demostraciones durante aquellas 3 semanas, lo que sirvi ́o para corregir algunos defectos y cambiar algunas prioridades. Iv ́an y Bernardo estaban francamente contentos con el trabajo de Pablo. Sin embargo, entre ellos comentaron m ́as de una vez: “¿Qu ́e estar ́a haciendo Adri ́an? ¿C ́omo lo llevar ́a?”.
Cuando se acercaba la fecha final para entregar el programa, Adri ́an se qued ́o sin dormir un par de noches para as ́ı poder entregar su programa. Pero eran tantos los defectos que hab ́ıa ido acumulando que, cada vez que arreglaba una cosa, le fallaba otra. De hecho, cuando lleg ́o la hora de la demostracio ́n, Adri ́an s ́olo pudo ensen ̃ar el programa instalado en su port ́atil (el u ́nico sitio donde, a duras p***s, funcionaba) y fue todo un desastre: mensajes de error por todos sitios, comportamientos inesperados... y lo peor de todo: el programa no hac ́ıa lo que hab ́ıan acordado con Iv ́an.
Pablo, sin embargo, no tuvo ningu ́n problema en ensen ̃ar lo que llevaba funcionando desde hac ́ıa mucho tiempo y que tantas veces hab ́ıa probado. Por si acaso, dos d ́ıas antes de la entrega, Pablo hab ́ıa dejado de introducir nuevas caracter ́ısticas al programa porque quer ́ıa centrarse en dar un buen manual de usuario, que Iv ́an hab ́ıa olvidado mencionar en las primeras reuniones porque daba por sentado que se lo entregar ́ıan. Claro, Adri ́an no hab ́ıa tenido tiempo para nada de eso.
Moraleja:
Adem ́as de toda una serie de buenas pr ́acticas y un proceso de desarrollo ́agil, Pablo hizo algo que Adri ́an desprecio ́: acord ́o con Iv ́an (el cliente) y con Bernardo (el usuario) los criterios mediante los cu ́ales se comprobar ́ıa que cada una de las funcionalidades estar ́ıa bien acabada. A eso que solemos lla- mar “criterios de aceptacio ́n”, Pablo le an ̃adi ́o la posibilidad de automatizar su ejecuci ́on e incorporarlos en un proceso de integraci ́on continua (que es lo que representa su amigo Hudson en este cuento). De esta manera, Pablo estaba siempre tranquilo de que no estaba estropeando nada viejo con cada nueva modificaci ́on. Al evitar volver a trabajar sobre asuntos ya acabados, Pablo era m ́as eficiente. En el corto plazo, las diferencias entre ambos en- foques no parecen significativas, pero en el medio y largo plazo, es evidente que escribir las pruebas antes de desarrollar la soluci ́on es mucho m ́as eficaz y eficiente.
(extraído del libro Diseño Agil con TDD, Carlos Bl ́e Jurado y colaboradores)