Las VAN de Alt.Net hispano
Actualizacion: La hora según las equivalencias horarias seria a las 19:00 en Canarias, 20:00 en Madrid
Alt.Net es un movimiento de la comunidad .Net que surgió ya hace varios años y que trata de unir a personas interesadas por la tecnología .Net, que comparten un espíritu de superación profesional y mejora contínua.
Creo que la primera vez que supe de Alt.Net fue a través del blog de Ayende allá por 2007.
La buena noticia es que existe una versión hispana de la comunidad, que parece ser que está pegando fuerte en Latinoamérica. Desde hace algún tiempo se están haciendo reuniones online los sábados, donde algún profesional expone sobre un tema que puede debatir con el resto de asistentes. Se puede compartir el escritorio y hacer cosas juntos vía Live Meeting.
Se les llama VAN y se pueden ver en esta url: http://altnet-hispano.pbworks.com/Historial-de-reuniones
Hace poco Jorge Gamba me invitó a guiar una VAN sobre TDD, a lo cual acepté encantado. Así que el próximo sábado 17 de abril a las 18:00 GMT (19 en Madrid) podemos debatir sobre TDD y programar juntos compartiendo el escritorio.
Nos vemos en la VAN!
En una semana, curso de TDD en Barcelona
Los dias 8 y 9 de abril estamos en Barcelona con nuestro famoso curso de TDD. Una edición abierta a la que puede asistir gente de todas partes. Ideal para que las PYMES envíen a sus desarrolladores. El número de matriculados hasta el momento es bastante bajo aunque gracias a DoubleYou celebraremos el curso, pero es poco probable que lo repitamos este año. Así que si estabas dudando no te lo pienses. El viernes de esta semana cerramos el plazo de inscripción.
Toda la información sobre nuestros cursos de TDD se encuentra en www.iExpertos.com/es/formacion
Stub out with lambda
Lambda functions are a great tool to stub out functions. They turn out to be much more clear and easy than using a stub from a isolation/test-double framework. Lambda in Python are used like this in interaction-based tests:
class MyTests(unittest.TestCase): def test_find_users(): stub = MyDAO() stub.get_users = lambda: ['carlos', 'juan'] sut = UserFinder(stub) self.assertEquals( sut.get_users_with_name_like('ca'), ['carlos'])
The method get_users in the class MyDAO is stubbed out as we assign a new function to it. The test gets a much more clear code than using PyMox or other test-doubles framework for stubs.
Moreover Python let us stub out functions from classes that haven't been instantiated yet, which makes it perfect for interception too. The next example is the way I am using the Google App Engine bulkloader to write integration tests:
from appengine_django import InstallAppengineHelperForDjango InstallAppengineHelperForDjango() from google.appengine.tools import bulkloader def load_data(): args_dict = {'all the values': 'the bulk loader needs', 'etc': 'etc'} bulkloader.RequestManager.AuthFunction = lambda x : ('x', 'y') bulkloader.Run(args_dict)
This way the bulkloader runs avoiding the need to manually type in the username and password. RequestManager is a class and AuthFunction is one of its instance members.
TDD para aumentar la productividad
Uno de los aspectos menos populares de TDD es el de la productividad. La tendencia es pensar que TDD nos hace ir más lentos en el desarrollo ya que nos detenemos a pensar y a escribir ejemplos para ir diseñando el código de producción. Sin embargo, la experiencia nos dice que a medio y largo plazo la inversión en tiempo es de sobra recuparada gracias a un código más fácil de mantener y con un menor número de defectos.
Lo que es menos evidente es que TDD aumenta nuestra productividad al mantenernos concentrados en todo momento en lo que hacemos. Leyendo a David Allen en "Getting things done, the art of stress-free productivity" podemos observar una cantidad enorme de similitudes entre las técnicas de productividad descritas por el autor y TDD. David lleva décadas ayudando a personal de empresas de diverso tipo a trabajar de una manera más productiva y es considerado un experto en la materia.
Basicamente nos habla de que la productividad pasa por tener la cabeza limpia de preocupaciones y tareas pendientes, algo que en TDD cumplimos con nuestra libreta. La libreta nos permite tener una lista de próximas tareas a implementar a la vez que nos permite tener la cabeza vacía y centrada tan sólo en el ejemplo que estamos abordando. Gracias a que los tests nos proporcionan un feedback rápido, el ritmo de ir abordando tareas de la libreta puede llegar a ser muy productivo, siempre que respetemos las reglas de TDD, tales como escribir tests que se ejecuten en milisegundos.
Cuando nos lanzamos a escribir código de producción sin ejemplos (tests) de uso primero, nuestra cabeza está llena de ruido y aumenta la probabilidad de introducir defectos en el código, además de que se nos vaya el santo al cielo.
Una página del libro de David dice:
¿Por qué le damos vueltas a las cosas en la cabeza?
- Porque no tenemos claro cual es el resultado que queremos obtener
- Porque no hemos decidido cual es la siguiente acción que deberíamos afrontar
- No hemos escrito en ningún sitio el resultado que queremos ni las próximas acciones
Está claro que todo eso nos lo quitamos de encima practicando TDD. Según el autor la cantidad de cosas que tenemos en la cabeza es inversamente proporcional a nuestra productividad. Es decir, cuanto más ruido en la cabeza menos producimos. De hecho, la principal causa de atasco en los proyectos no es la falta de tiempo, sino la ausencia de definición de cosas por hacer o tareas pendientes. "No hay razón para tener un pensamiento dos veces, salvo que te guste ese pensamiento." Extrapolando: ¿Por qué seguir preocupados por aquel caso en que la función lanza aquella excepción?
La sensación de que estamos siendo productivos nos lleva a la sensación de que estamos avanzando en los proyectos que a su vez nos produce la satisfacción del trabajo bien hecho. Esta filosofía de la mente vacía y clara no solo aparece en el libro de David Allen sino que podemos leer el mismo mensaje en otras corrientes como las artes marciales, etc...
Ante la pregunta clásica de ... "¿qué pasa si haciendo TDD se te olvida un ejemplo y se produce un bug?" mi respuesta siempre es... "¿acaso la probabilidad de que eso pase, disminuye cuando NO haces TDD?".
Cuando compagino TDD con la técnica del pomodoro soy todavia más productivo. A día de hoy recomiendo muchísimo la técnica del pomodoro
Podgramando.es, tu podcast sobre desarrollo
No conoces todavía www.podgramando.es? Es el podcast técnico que te ayuda a estar al día de forma amena. Descargate el mp3 y escúchalo mientras vas en el coche, en el metro, mientras pasas la fregona...
Se trata de un podcast sobre desarrollo de software.
Patrocinado por iExpertos.com y Agilismo.es
Espero que os guste.
Resumen de mi visita a Donosti
Aupa! Nunca había estado en Euskadi y gracias a Biko he podido visitar Donosti, una de las ciudades más bellas que he estado. He visto pocas cosas más bonitas que la bahía de La Concha iluminada por el sol desde la cima del Urgull. Wonderful. Aparte de la visita turística hemos celebrado una edición de nuestro curso de Test Driven Development, el cual ha transcurrido muy bien.
De nuevo me he encontrado con un equipazo de gente joven con muchísimas ganas de aprender y trabajar, lo cual hace que el curso salga muy bien. Hemos avanzado mucho, hemos visto todo lo que había que ver y nuevamente he aprendido de los demás. La gente ha asimilado muy bien y se han visto ideas muy muy buenas. Si ya tienen un equipo potente ahora, dentro de 5 años no va a haber quien les pare!.
En la tarde de ayer aproveché para entrevistar a algunos compañeros de la sede de Donosti y podeis escuchar el mp3 en podgramando.es
Como anécdota decir que llegué todo contento diciendo a la gente que para Maven era mejor colocar los tests en tal ubicación según me habían dicho en el curso de Madrid y resulta que dijeron.... "de eso nada!... con Maven van mejor en tal otro!" Total, que cada uno los ponga donde más le guste, pero que los ponga
Yo de momento estoy mu contento con mi Python
Mañana colgamos las fotos en el Facebook de iExpertos. Esta vez me he acordado de hacer la foto de grupo al final, cosa que por desgracia siempre olvido en los cursos. Así que del curso que hicimos en Madrid no tengo la foto finish por despiste.
Si has asistido al curso y lees esto, porfavor, deja tu blog y/o tu twitter para seguirte vale?
Eskerrik Asko!!!
Agur!!!
Un mes de viajes
En breve regreso a Tenerife después de haber recorrido en tren buena parte de la península, desde Girona hasta Sevilla, pasando por Madrid y viajando a Segovia. Los motivos del viaje han sido 3. Primero la charla y el taller de TDD en Castellón, cuyo vídeo podeis ver en decharlas.com o directamente en vimeo. El mp3 de la charla tambien lo teneis en podgramando.es, el podcast técnico que por fin hemos arrancado.
Como ya he dicho antes, estoy super agradecido a Ricardo Borillo y David Castelló por invitarme a Castellón, a una universidad impresionante y por tratarme de lujo.
Luego tuvo lugar nuestro curso de TDD en Madrid. Creo que siempre digo que el último curso de TDD que hago es el que mejor sale, pero es que me queda siempre esa sensación al terminar. Esta edición ha ido muy bien sobre todo porque el nivel de los asistentes era altísimo. De hecho me han enseñado cosas, como en ediciones anteriores. El feedback de los asistentes es inmejorable, podeis leer sus comentarios aquí. Teneis las fotos en la cuenta de Facebook de iExpertos. Gracias miles a todos por haberos volcado y currado a tope en este curso. Lo habeis hecho realmente bien!
Lo mejor de los cursos de TDD es que estoy teniendo la oportunidad de programar con los mejores desarrolladores de todo el país. Es un lujo decir que me he sentado con los programadores más despiertos de muchas las cuidades y estoy encantado.
Finalmente, el sábado JM Beas me llevó en su coche junto a más amigos a Segovia al Code Retreat, donde pasamos un día agradable discutiendo temas de programación. Eso sí, iba bajo mínimos y no pude hacer nada interesante a nivel técnico. Apenas sin descansar, no se pueden hacer las cosas bien. Pero bueno, lo pasamos bien y me gustó conocer en persona al grupo de Valladolid, al que espero ver pronto. Me dieron ganas de intentar hacer el Code Retreat en Tenerife. A ver si lo organizamos.
Ahora ya ultimando detalles para ir a San Sebastian donde la semana que viene, tenemos una edición privada de nuestro curso de TDD.
Charla de TDD en la UJI (Castellón)
Ya podeis descargar el audio de la charla:
http://www.podgramando.es/uncategorized/carlos-ble-habla-de-tdd-en-la-u-jaume-i
Por cierto, es oficialmente el primer podcast de podgramando.es. El primero de una larga serie!
El vídeo que se ha grabado de la charla estará disponible muy pronto. Estad atentos a decharlas.uji.es
Code retreat en Segovia
Para cerrar mi viaje de marzo, el sabado dia 6 estare en Segovia junto a JM Beas, Xavi Gost, Jorge Jimenez y Javier Garcia para participar en el code retreat. Teneis mas info aqui: agilismo.es
Nos vemos en Segovia!
Curso de TDD en Barcelona y Valencia
Hemos adelantado la fecha prevista para el curso de TDD en Valencia y sera justo a continuacion del de Barcelona. Queda un mes y medio para que llegue la fecha y ya tenemos abierto el plazo de inscripcion. En el caso de Barcelona, tenemos la suerte de contar con DoubleYou.com para las instalaciones. En el caso de Valencia aun no sabemos el sitio definitivo pero lo que si sabemos es que Xavier Gost ofrecera un modulo adicional y extraordinario sobre TDD y Patrones en el tercer dia. Asi pues en Valencia dirijo yo el curso los dos primeros dias, y Xavi el tercero. Es un lujo poder contar con Xavi. Si todo va bien le tendremos tambien en Madrid en abril. Lo publicaremos pronto.
Toda la info esta en www.iexpertos.com/es/blog.
Os esperamos!


