Posts Tagged Agile

Retorciendo Agile para no ser ágil

Leo en el último párrafo de un blog:

Constatando, como solemos comentar, que la teoría ágil se debe adaptar a cada caso en particular, muchas veces relajando la agilidad, obteniendo la verdadera riqueza y productividad de las múltiples soluciones que ofrece la ingeniería del software.

Lo que me recuerda la keynote que JB Rainsberger dió este año en la Conferencia Agile-Spain 2011.

Rainsberger explica en la keynote cómo, en estos 10 años de Agile, muchos nos frustramos porque no nos funciona nuestra implementación de Agile y por ello comenzamos rápidamente a “innovar” y crear cosas como “post-Agile” pero sin experiencia real en practicar con éxito los fundamentos. Como colofón a su charla, Rainsberger nos aconseja leer sobre eXtreme Programming (XP) y practicar mucho hasta interiorizar los fundamentos. Sólo entonces estaremos en condiciones de adaptar con éxito los procesos a “el mundo real”. Afirmar esto en “el mundo real” parece muy radical, utópico y no sé qué otras palabras más pronunciadas con un tono poco amable, pero lo cierto es que ya era algo que hace un par de años Xavi Gost me avisaba cuando le comentaba mi intención de explorar el Agile coaching y ahora refrendado por la experiencia. Cada vez que me acerco a “el mundo real” y tratamos de hacer Agile (llámese Scrum, XP o lo que sea), el mayor obstáculo es el rechazo de las organizaciones (y las personas que las forman) a cambiar sus procesos. Esos procesos, que presuntamente funcionan, no se pueden cambiar por otros, que siendo “lo que se debería hacer” según ellos mismos, porque los nuevos son muy costosos en el plano de las responsabilidades personales, nos sacan a todos de nuestra zona de confort y nos ponen en la tesitura de atrevernos a equivocarnos (y luego reconocerlo). Y por ello comienzan a retorcer los principios ágiles (los de la parte de atrás del Manifiesto) para hacer el cambio posible y no sé cuantas cosas más, en vez de echar mano de los valores de XP, en particular del coraje y atreverse a realmente intentarlo.

Lecturas recomendadas

Además del seminal de Beck, XP Explained, yo recomendaría también la lectura del de Jeffries, XP Installed, también citado por Rainsberger en esa keynote.

Tags: , ,

Embajador en los Agile Testing Days 2011 #agiletd

Me alegro mucho de poder presentarme como el primer embajador de España en los Agile Testing Days que, a la sazón, organiza otro año más un español afincado en Alemania. Voy a intentar organizar mi agenda para poder estar en Noviembre en este evento que cada año va teniendo más y más nivel gracias al empuje de la editorial Díaz & Hilterscheid, que algunos ya conoceréis por publicaciones en papel como Agile Record o Testing Experience. Echad un vistazo al programa si no me creéis y seguid la actividad en twitter en y con el hashtag #agiletd.

¿Nos vemos en Potsdam (cerca de Berlín) del 14 al 17 de Noviembre?

Tags: , ,

Agile significa Agile Software Development

Recién acabada la conferencia Agile 2010, organizada por la Agile Alliance, varios “pesos pesados” del agilismo a nivel internacional (UncleBob, Corey Haines, Cory Foy… incluso organizadores como J.B.Rainsberger) han señalado que la mayor conferencia sobre desarrollo ágil de software que se organiza en el planeta parece haber olvidado que hay algo muy relevante en esto del desarrollo de software: la programación. Como bien señala Martin Fowler en su blog, los “soft skills” son muy importantes para hacer bien nuestro trabajo, pero igualmente indica que “la programación juega un papel central en el desarrollo de software e intentos para marginarla correlacionan bien con caminos muertos” (como véis, Fowler es de origen inglés y eso se nota cuando escribe). :-)

Hace ya 10 años de la primera conferencia centrada en el agilismo (la XP2000), por lo que ya debe haber opiniones más que maduras al respecto. Es evidente que, como toda “marca” en un mercado, “Agile” está en pleno crecimiento a nivel masivo y eso implica que los “early adopters” ya están buscando un producto mejor. Así, ya tenemos en el paraguas de lo “agile” en relación al software, ideas venidas de otros sectores y las viejas ideas revisitadas como mejoras de las antiguas. También hay que tener en cuenta que hay países (como el nuestro) donde tanto el desarrollo de software como el agilismo van a diferentes velocidades a las marcadas en los países anglosajones y nórdicos (que son los que parecen marcar la tendencia principal). Y estas diferentes velocidades hacen que haya una mezcla de consumidores “ilustrados” y consumidores “ignorantes” (con todos los respetos para ambos “colectivos”). Ante esta heterogeneidad, el libre mercado hace de las suyas y convierte a consumidores “ignorantes” en productores “presuntamente ilustrados” y, sobre todo, potencia los productos de más fácil consumo. Como la tele. :(

Mi opinión es que es inútil intentar evitar que haya consultores, gestores, directores, certificadores, entrenadores, formadores… que vivan, con más o menos ética, con más o menos fortuna, de cada nuevo “buzz” y que nos aborden cada poco con su marketing. Entiendo que algunos prefieran seguir bajo el paraguas de lo “agile” porque les garantice clientes. También entiendo que algunos prefieran distinguirse de lo “agile” porque está empezando a desvirtuarse del conjunto de valores y principios que originaron el movimiento. ¿En el término medio está la virtud? Puede que sí, pero yo no soy muy dado a mezclar colores porque la experiencia me dice que cuando mezclas sin saber sólo te sale un color indeterminado que yo suelo denominar “caca” (quizás por exceso de rojo sangre y verde ecológico) ;-)

No quiero decir con esto que prefiera llevar todos los contenidos de programación a una conferencia aparte. Como decía alguien en twitter, hay que mantener en sincronía el mundo de gestión ágil con el de ingeniería ágil, o de lo contrario no habrá cambio cultural posible en las organizaciones. (Es mi opinión, claro)

Yo quiero ser un buen programador y quiero rodearme (intelectualmente) de buenos programadores. Creo que para llegar a ser un buen programador hay que practicar mucho (y bien) con otros. Para eso creo que tenemos que buscar dos cosas: foros donde poder adquirir estas habilidades prácticas, para poder dejar de comportarnos como onanistas de la programación, y un cambio de actitud en los programadores, para darnos cuenta de que se aprende mucho más y mejor en compañía (aunque ese “onanismo” pueda resultar placentero). Creo que en, en mi experiencia, la mayoría de las disfunciones de los equipos son debidas a miedos individuales, normalmente debidos a la falta de autoconfianza. A partir de ahí probablemente podamos empezar a tener confianza en nosotros mismos y pasar al siguiente escalón: ampliar nuestra visión “sólo técnica” y, de verdad, ser capaces de entender a las capas de gestión y comerciales de las empresas para las que trabajamos (los que trabajéis para una empresa por cuenta ajena, claro). En esa etapa ya seremos capaces de entender por qué hay gente que necesita una estimación fiable de cuánto va a costar desarrollar una funcionalidad. Pero también en esa etapa seremos capaces de defender con seguridad nuestras estimaciones (aunque no sean todo lo fiables que se necesiten) porque habremos perdido esa falta de autoconfianza que nos bloquea y nos pone a la defensiva.

Por todo esto defiendo la necesidad de potenciar eventos como la Conferencia SC2010 a la que asisitiremos unos cuantos desde España, o la XP Universe (que están arrancando Corey Haines y Cory Foy). Quiero aprender de estas Conferencias de Artesanos del Software para ser capaces de traer algo similar a nuestro país. Quiero que los programadores nos acostumbremos a participar en nuestras comunidades locales y a organizar eventos ligeros donde transmitir nuestras habilidades e ignorancias. Quiero que todos seamos aprendices y, con humildad y orgullo, busquemos el convertirnos en maestros. Quiero eso para poder pasar a la siguiente fase.

Con la ayuda de Xavi Gost y otros a los que ya he enredado en el pasado, estoy enredando en el presente y enredaré en el futuro, hemos creado hace casi un año agilismo.es con la intención de poner estos valores en un lugar relevante. Nos gusta nuestra profesión y queremos mejorar en ella. Pronto veréis que le vamos a dar una vuelta de tuerca a lo que hemos estado haciendo hasta ahora. Pero eso quedará para otro artículo. :)

Tags: , ,

Érase una vez… el diseño ágil con TDD

Después de varias semanas de retiro en las lejanas tierras de Huelva, obligado por razones familiares, y después del fenomenal éxito del libro “Diseño Ágil con TDD” que mi buen amigo Carlos Blé me ha dejado prologar, debo reconocer que ahora mismo no tengo mucho que aportar en este blog salvo extraer ese prólogo. Me siento bastante orgulloso de él, no sólo porque es original, sino porque creo que resume bastante bien cómo enfocar un desarrollo de software guiado por las pruebas además de reflejar el espíritu del cambio (aunque tardío) que se está produciendo en nuestro sector y que desde iniciativas como Agile Spain o agilismo.es trato de apoyar en primera persona. Espero que os guste:

É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ás 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ó que quería saber en todo momento cuántos sacos de grano había y quién metía y sacaba sacos de grano del almacén. Para ello sólo tenían un mes, pero les advirtió de 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ás joven e impulsivo, inmediatamente se puso manos a la obra. “¡No hay tiempo que perder!”, decía. Y empezó rápidamente a escribir lineas y lineas de código. Algunas eran de un reciente programa que había ayudado a escribir para la guardería de la vaca Paca. Adrián pensó que no eran muy diferentes un almacén de grano y una guardería. En el primero se guardan sacos y en el segundo pequeñ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ódigo comenzó acordando con Iván dos cosas: qué era exactamente lo que podría ver dentro de una semana y cómo sabrían que efectivamente estaba terminada cada cosa. Iván quería poder conocer cuanto antes cuántos sacos de grano había en cada parte del almacén porque sospechaba que en algunas partes del almacén se estaban acumulando sacos sin control y se estaban estropeando. Como constantemente tenían que entrar y salir sacos del almacén, no podía saber cuántos había ahora mismo, así que acordaron ir contabilizando cuántos había en cada zona del almacén y que cada vez que entrara o saliera un saco apuntarían a qué zona iba o de qué zona venía. Así, en poco tiempo podrían tener una idea clara del uso que se estaba dando a las distintas zonas del almacén.

Mientras Adrián adelantaba a Pablo escribiendo muchas líneas de código, Pablo escribía primero las pruebas automatizadas. A Adrián eso le parecía una pérdida de tiempo. ¡Sólo tenían una semana para convencer a Iván!

Al final de la primera semana, la demo de Adrián fue espectacular, tenía un control de usuarios muy completo, hizo la demostración desde un móvil y enseñó además las posibilidades de un generador de informes muy potente que había desarrollado para otra granja anteriormente. Durante la demostración hubo dos o tres problemillas y tuvo que arrancar de nuevo el programa, pero salvo eso, todo fue genial. La demostración de Pablo fue mucho más modesta, pero cumplió con las expectativas de Iván y el programa no falló en ningún momento. Claro, todo lo que enseñó lo había probado muchísimas veces antes de hacer la demostración gracias a que había automatizado las pruebas. Pablo hacía TDD, es decir, nunca escribía una linea de código sin antes tener una prueba que le indicara un error. Adrián no podía creer que Pablo hubiera gastado más de la mitad de su tiempo en aquellas pruebas que no hacían más que retrasarle a la hora de escribir las funcionalidades que había pedido Iván. El programa de Adrián tenía muchos botones y muchísimas opciones, probablemente muchas más de las que jamás serían necesarias para lo que había pedido Iván, pero tenía un aspecto “muy profesional”.

Iván no supo qué hacer. La propuesta de Pablo era muy robusta y hacía justo lo que habían acordado. La propuesta de Adrián tenía cosillas que pulir, pero era muy prometedora. ¡Había hecho la demostración desde un móvil! Así que les propuso el siguiente trato: “Os pagaré un 50% más 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é nada.”. Era una oferta complicada porque por un lado, el que ganaba se llevaba mucho más de lo previsto. Muy tentador. Por el otro lado, corrían el riesgo de trabajar durante un mes completamente gratis. Mmmmm.

Adrián, tan impulsivo y arrogante como siempre, no dudó ni un instante. “¡Trato hecho!”, dijo. Pablo explicó que aceptaría sólo si Iván se comprometía a colaborar como lo había hecho durante la primera semana. A Iván le pareció razonable y les convocó a ambos para que le enseñaran el resultado final en tres semanas.

Adrián se marchó pitando y llamó 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ápidamente manos a la obra. Mientras Adrián arreglaba los defectillos encontrados durante la demo, Sixto se encargó de diseñar una arquitectura que permitiera enviar mensajes desde el móvil hasta un webservice que permitía encolar cualquier operación para ser procesada en paralelo por varios servidores y así garantizar que el sistema estaría en disposición de dar servicio 24 horas al día los 7 días de la semana.

Mientras tanto, Pablo se reunió con Iván y Bernardo (el encargado del almacén) para ver cuáles deberían ser las siguientes funcionalidades a desarrollar. Les pidió que le explicaran, para cada petición, qué 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 continuación Pablo fue, tarjeta a tarjeta, discutiendo con Iván y Bernardo cuánto tiempo podría tardar en terminarlas. De paso aprovechó para anotar algunos criterios que luego les servirían para considerar que esa funcionalidad estaría completamente terminada y eliminar alguna ambigüedad que fuera surgiendo. Cuando Pablo pensó que, por su experiencia, no podría hacer más trabajo que el que ya habían discutido, dió por concluida la reunión y se dispuso a trabajar. Antes que nada resolvió un par de defectos que habían surgido durante la demostración y le pidió a Iván que lo validara. A continuación se marchó a casa a descansar. Al día siguiente, cogió la primera de las tarjetas y, como ya había hecho durante la semana anterior, comenzó a automatizar los criterios de aceptación acordados con Iván y Bernardo. Y luego, fue escribiendo la parte del programa que hacía que se cumplieran esos criterios de aceptación. Pablo le había pedido ayuda a su amigo Hudson, un coyote vegetariano que había venido desde América a pasar el invierno. Hudson no sabía programar, pero era muy rápido haciendo cosas sencillas. Pablo le encargó que comprobara constantemente los criterios de aceptación que él había automatizado. Así, cada vez que Pablo hacía algún cambio en su programa, avisaba a Hudson y éste hacía, una tras otra, todas las pruebas de aceptación que Pablo iba escribiendo. Y cada vez había más. ¡Este Hudson era realmente veloz e incansable!

A medida que iba pasando el tiempo, Adrián y Sixto tenían cada vez más problemas. Le terminaron echando la culpa a todo el mundo. A Iván porque no les había explicado detalles importantísimos para el éxito 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ómo 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áginas web que les permitiera dibujar el flujo de navegación en un gráfico y a partir de ahí generar el esqueleto de la aplicación. ¡Eso seguro que les ahorraría mucho tiempo! Al poco tiempo, Sixto, harto de ver que Adrián no valoraba sus aportaciones y que ya no se iban a usar sus ideas para enviar y recibir los SMS, decidió que se marchaba, aun renunciando a su parte de los beneficios. Total, él ya no creía que fueran a ser capaces de ganar la competición.

Mientras tanto, Pablo le pidió un par de veces a Iván y a Bernardo que le validaran si lo que llevaba hecho hasta aquel momento era de su agrado. Les hizo un par de demostraciones durante aquellas 3 semanas, lo que sirvió para corregir algunos defectos y cambiar algunas prioridades. Iván y Bernardo estaban francamente contentos con el trabajo de Pablo. Sin embargo, entre ellos comentaron más de una vez: “¿Qué estará haciendo Adrián? ¿Cómo lo llevará?”.

Cuando se acercaba la fecha final para entregar el programa, Adrián se quedó 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ó la hora de la demostración, Adrián sólo pudo enseñar el programa instalado en su portátil (el único sitio donde funcionaba a duras penas) 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án.

Pablo, sin embargo, no tuvo ningún problema en enseñar lo que llevaba funcionando desde hacía mucho tiempo y 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án había olvidado mencionar en las primeras reuniones porque daba por sentado que se lo entregarían. Claro, Adrián no había tenido tiempo para nada de eso.

Moraleja:

Además de toda una serie de buenas prácticas y un proceso de desarrollo ágil, Pablo hizo algo que Adrián despreció: acordó con Iván (el cliente) y con Bernardo (el usuario) los criterios mediante los cuáles se comprobaría que cada una de las funcionalidades estaría bien acabada. A eso que solemos llamar “criterios de aceptación”, Pablo le añadió la posibilidad de automatizar su ejecución e incorporarlos en un proceso de integración 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ón. Al evitar volver a trabajar sobre asuntos ya acabados, Pablo era más eficiente. En el corto plazo, las diferencias entre ambos enfoques no parecen significativas, pero en el medio y largo plazo, es evidente que escribir las pruebas antes de desarrollar la solución es mucho más eficaz y eficiente.

En este libro que ahora tienes entre tus manos, y después de este inusual prólogo, te invito a leer cómo Carlos explica bien clarito cómo guiar el desarrollo de software mediante la técnica de escribir antes las pruebas (más conocido como TDD).

Un cordial saludo,
Jose Manuel Beas

Espero que después de leer esto, los que no hayáis comprado el libro de Carlos sintáis un impulso irrefrenable y lo hagáis rápidamente, y los que ya los hayáis comprado, o al menos leído, dejéis un comentario aquí sobre qué os ha parecido. ¿Cómo mejoraríais la historia? ¿Qué le quitaríais? ¿Le daríais otro enfoque?

Tags: ,

Muchos temas pendientes

Tengo pendientes ya demasiadas cosas. Tantas que me van a salir hasta telarañas (como las de la foto). No sé si tengo justificación para todas, pero tampoco es que vaya a cambiar nada el poner excusas. Así que voy a hacer un pequeño resumen (otro) del estado de mi vida y así, de paso, me ayudará a poner en orden mis prioridades.

Contenidos recuperados

Tengo pendiente la segunda parte de la explicación de cómo conseguí importar mi viejo blog usando Groovy y la API de Google Reader. Esto es algo que requiere bastante esfuerzo pues, aunque tengo el código escrito, hay que explicarlo convenientemente (no es mi mejor pieza de código y no es suficientemente autoexplicativa) y además tengo que buscar un plugin de WordPress o algo que permita que el código fuente se vea decentemente. Se admiten sugerencias.

Claro, ahora que Google ha tenido a bien devolverme el viejo blog, algunas tareas de mejora sobre el proceso de recuperación pierden interés (me refiero a que hay anuncios que han quedado empotrados en los artículos importados y a que los enlaces han quedado apuntando al viejo blog) y aparecen necesidades nuevas. Lo primero que he hecho ha sido hacerme una copia de seguridad tanto de los contenidos -incluyendo los comentarios y la plantilla- y lo segundo poner un aviso de que me he mudado “para que conste”. Así que ahora he pensado que lo ideal sería importar esa copia de seguridad al nuevo blog, pero tengo que hacer una prueba en local y todo eso antes de hacer el cambio… y me está dando una pereza…

En cualquier caso, prometo escribir (pronto) la segunda parte del artículo sobre cómo importé el contenido del viejo blog. Aunque sólo sea porque lo prometido es deuda.

Reunión Agile Madrid

Tengo también pendiente el resumen de la última reunión del grupo local de Agile Spain en Madrid. Lo que pasa es que Alberto Peña (@plagelao) ha hecho tan buen resumen en su blog que casi que me voy a quedar en dejar constancia y poco más. Ya he subido las diapositivas que utilicé, pero no subiré las notas que escribí para ayudarme porque realmente no aportan nada a la presentación. Sólo para quede constancia: no es ni mucho menos mi mejor presentación; y me alegro mucho, mucho, de que se me olvidara comprobar el espacio en disco antes de empezar a grabar el video, y vuelvo a pedir disculpas públicamente a mis compañeros del grupo de Agile Spain por no haberme preparado bien la presentación. Podríamos haber aprovechado mucho más la reunión. Aunque son gente estupenda: no hicieron sangre conmigo y además me ayudaron a que el resultado final de la reunión fuera muy positivo.

Mi resumen de la discusión es el siguiente:

La confianza es el valor más difícil de alcanzar dentro de un equipo que se quiera autoproclamar ágil. Confianza en sí mismos, confianza entre ellos y confianza hacia el exterior (incluyendo a otros departamentos y, sobre todo, al cliente).

Yo siempre había pensado que la clave estaba en el coraje y la autoexigencia, pero después de esta reunión me di cuenta de que éstos son valores individuales, que requieren un esfuerzo individual. Pero el mayor obstáculo para ser ágil es un obstáculo colectivo: la confianza. Es relativamente fácil confiar en uno mismo, pero confiar en los demás… ay, ay, eso ya es otra cosa. Y que los demás confíen en nosotros… eso ya ni te cuento. ¿Verdad?

Agilismo.es

También estoy arrancando agilismo.es con el inefable Xavi Gost. Queremos hacer de agilismo.es un portal de referencia para el agilismo desde su perspectiva más de las trincheras. Hay ya muchos portales en español sobre Scrum y en general desde un punto de vista de la gestión de los proyectos. Por ejemplo, Proyectos Agiles (que dirige Xavier Albaladejo) es muy buen punto de referencia para esto. También Scrum Manager (iniciativa de Juan Palacio). Pero hemos visto que hay una gran carencia de contenidos de calidad cuando nos ponemos a buscar, desde el punto de vista de los desarrolladores, referencias en español sobre Extreme Programming, Integración Continua, TDD, Programación por Parejas, etc.

Ahora mismo es poco más que una “página güeb” donde este tipo y yo nos ofrecemos para dar coaching, pero no dudéis que va a ir creciendo rápidamente, con contenidos propios y de calidad.

iExpertos.com

Con Carlos Blé y su iExpertos.com tengo una relación muy curiosa. Además de proporcionarme “por la cara” el wordpress donde tengo mi nuevo blog, Carlos se ha empeñado en que yo puedo dar cursos. Bueno, a mi también me ha parecido buena idea, claro. Yo le había propuesto dar un taller sobre Integración Continua, pero no cuajó. Ahora parece que hay posibilidades de uno sobre Refactoring. Éste es más complicado porque requiere preparar muy bien el material. Pero me parece un taller muy, muy bonito. Ya veremos si sale y si lo puedo hacer yo o lo hace el propio Carlos, que de eso también sabe.

Por otro lado, hace tiempo le comenté que podríamos hacer un podcast “agilismo.es powered by iExpertos.com” y el tío ya tiene casi todo montado. Hasta hemos tenido que decir que no a Jorge Rubira para grabar un podcast de JavaHispano sobre el Agile Open Spain 2009, porque queríamos sacar el primer podcast antes de Navidades y Jorge ya no tenía hueco. Carlos es un tipo muy emprendedor e incluso se ha buscado un amigo que nos ha hecho una sintonía para no tener que pagarle a Ramoncín. Je, je.

También estamos pendientes, junto con Gregorio Mena, de arrancar una serie de webinars. Esto último es mucho más complicado incluso que el podcast, que ya tiene miga. Pero si conseguimos darle forma va a ser un bombazo.

¡Ah! Y el ya casi famoso libro de TDD de Carlos… adivinad quién ha escrito el prólogo… y no es el típico prólogo. Pero para saber de qué va lo tendréis que descargar. ¡Que será gratis!

Trabajo

Y la noticia de la semana es que ya tengo trabajo. La verdad es que ya casi tenía trabajo. Estaba a punto de cerrar un acuerdo para teletrabajar de “freelance” programando un par de aplicaciones JSF en un equipo scrum de tres personas (una jefa de proyecto, un junior y un servidor). Iba a ser mi primera experiencia como trabajador por cuenta propia. Pero hablo en pretérito imperfecto porque ayer por la mañana fui a una entrevista a la que había llegado convocado a través del INEM. (Sí, ya sé que es un poco extraño, pero ha sido así). Y resulta que he aceptado trabajar en un proyecto de 6 meses para el Ayuntamiento de Alcobendas. Bueno, y ellos también han aceptado trabajar conmigo, claro.

Estoy seguro de que va a ser un proyecto muy bonito en el que voy a poder aprender mucho. Creo que será muy bueno también para el Ayuntamiento, para los empleados a los que voy a ayudar y en última instancia para los ciudadanos. Durante la entrevista les expliqué por encima esto del agilismo y “alucinaron”. Claro. Les gusta mucho eso de ir teniendo “software que funciona”. Pero a continuación les cambia el gesto cuando se acuerdan de “las cosas de palacio van despacio”. Je, je. Dentro de un par de meses ya veremos quién ha sido más testarudo: si yo y mi “agilismo de guerrilla dentro de la recalcitrante administración pública” (parece el título de una peli de miedo) o ellos con su “no, no nos moverán”. Sospecho que ganaré yo. Mis armas son mucho más poderosas. Estoy dotado de un optimismo a prueba de bomba y ellos no. Todavía.

Coding Dojo

¡Pero esto NO es todo, amigos! El día 22 (el día de la Lotería) estamos montando un “coding dojo” en las intalaciones que Okuri Spaces tiene en el barrio de Tetuán (en Madrid). El maestro Xavi Gost vendrá a darnos una clase de su kung-fú programando en Java una aplicación para hacer un “pomodoro”. Y eso en un “pomodoro” de duración: 25 minutos. La sala es pequeña (apenas cabrán sentados unas 20 personas), pero lo grabaremos, tranquilos. Será gratis y la idea es que nos sirva para promocionar agilismo.es powered by autentia, que si todo va bien será una iniciativa muy interesante relacionada con la formación de calidad y de la que por el momento no os puedo comentar más porque tampoco hay mucho más y porque, ¡qué caramba!, hay que crear un poco de expectación.

En fin, esperemos a ver qué tal nos lo pasamos en el Dojo y si alguno de vosotros se decide a venir, no olvidéis saludarme, que a todo bloguero le hace ilusión conocer a sus lectores.

Tags: , , , , , , , , , , ,

Informática Profesional

Por fin tengo en mis manos el libro de Roberto Canales, Director General de Autentia. Se titula “Informática Profesional” y es un pedazo de libro. No sólo por sus 548 páginas, sino por todo lo que lleva dentro. Debería ser un libro de texto obligado en las universidades por todo lo que de transmisión de experiencia hay en él. Roberto retrata nuestro sector de una manera amena y didáctica. ¿Qué más se puede pedir? Pues si además le pides que dé consejos prácticos, que haga autocrítica y que tome partida, pues también.

Además, se puede leer a varias velocidades. Las excelentes ilustraciones de Jorge Crespo en formato cómic hacen que puedas hacer una primera lectura en “modo tebeo” (con breves incursiones al texto) y luego, más reposadamente leer todo el texto, que es mucho y con consejos muy sabios.

Reconozco que aún no lo he leido completamente, ni tan siquiera a velocidad “tebeo”. Me he quedado justamente antes de empezar el capítulo 5 “Vender Tecnología”. Pero he echado un vistazo en profundidad al índice y ojeado algunos capítulos que me resultaban especialmente interesantes (como el de “Metodologías”, claro), y creo que, como dice Jorge Crespo en la penúltima página:

Guarda bien este ejemplar. ¡¡Será la revolución del conocimiento empresarial!!

Estamos a punto para el Agile Open Spain 2009, que será mañana por la tarde y…

¿¿Mañana por la tarde?? ¡¡Maldita sea!! ¡¡Y todo lo que me queda por hacer todavía!!
Lo siento, os tengo que ir dejando…

Por cierto, y a propósito del Agile Open, me ha gustado mucho el cómic de la página 123. ¡Ah! Os lo tendréis que comprar… Sólo os daré una pista:-)

Enhorabuena, Roberto. Y muchas gracias. De mayor quiero ser como tú (bueno, puestos a pedir, un poco más guapo) :-)

Tags: ,

Parado, pero no ocioso

Aunque estoy en las filas del INEM, es decir, en el paro, no estoy ocioso ni mucho menos.

Por un lado estoy bastante involucrado en la organización del Agile Open Spain 2009. Parece mentira que un evento tan sencillito, con un formato tan ligero como openspace y con tan “pocos asistentes” (hemos limitado las invitaciones a sólo 150), pudiera ser tan laborioso. Supongo que tiene que ver también con el hecho de que ninguno nos dedicamos a esto de organizar eventos, que estamos geográficamente dispersos y que es la primera vez que hacemos algo así. Y por si fuera poco, me tengo que preparar alguna cosilla para el Open como el “mortal kombat” con Xavi Gost (un ejercicio de TDD y programación en parejas “en vivo y en directo”, que queremos grabarlo y todo) o un breve discursito de bienvenida a los que vengáis.

Por otro lado, estamos constituyendo Agile Spain como asociación, lo cuál no es mucho, pero suma (o resta, según se vea). Igual que las “relaciones exteriores”. Mantener el contacto con Red.es y otros contactos que puedan ayudar a Agile Spain en el futuro es algo necesario, que a veces quizás ocupa más de lo necesario.

El grupo de Agile Spain en Madrid requiere un poco más de energía y para eso tengo que “soltar lastre” en otros asuntos. Pero es difícil dejar de hacer… porque me había comprometido, por ejemplo, a participar como revisor del libro de Carlos Blé sobre TDD y colaborar con una breve reseña sobre DDD. Buff… hago lo que puedo, Carlos. ;-)

También estoy arrancando un proyecto personal llamado agilismo.es. Pretendo que sea un portal donde ofrecer contenidos de calidad relacionados con las metodologías y prácticas ágiles. No os puedo contar mucho más porque hay que ir creando expectativa…

He estado preparando mi CV (ya os contaré sobre la única respuesta que he tenido hasta el momento) porque “a Dios rogando y con el mazo dando”, ¿no?

Y por si fuera poco, ahora me he dejado enredar por iExpertos.com (Gregorio Mena y Carlos Blé) para dar un pequeño curso en Tenerife sobre Buenas prácticas en Integración Continua, donde explicaré cómo montar un ecosistema software muy sencillo y las mejores prácticas que conozco para tener una integración continua decente. Teniendo en cuenta que los que vengan van a salir con “recetas” para irse a su casa y ponerse a jugar enseguida, creo que es tremendamente barato (apenas 35€), sobre todo si lo comparas con esos cursos de tres cifras que apenas te sirven para irte a tu casa y pensar en cómo pones en práctica todo aquello (si algún día siquiera tienes la oportunidad de hacerlo). Pero es tan barato porque en realidad se trata sólo de cubrir los gastos de mi desplazamiento y poco más. No hay un verdadero interés por parte de los organizadores (ni de mi mismo) de lucrarnos con esto. Hombre, si vais muchos quizás haya para darme un paseo por alguna otra isla. :-) Pero debo confesar que me gustaría comenzar a “redituar” todos estos esfuerzos.

Necesariamente, toda esta actividad hace que la regla del “no me aprietes que no te abarco” entre en juego. Hay iniciativas que arranqué con mucho cariño, como la lista de DDD en español, o algunas lecturas que quería ir resumiendo en este blog (que también tengo un pelín abandonado, lo sé).

¡Ah! Se me olvidaba, tengo dos pequeños a los que tengo que llevar y traer del cole y demás actividades. Menos mal que el mayor se baña solo. :-D

En fin, lo dicho, parado sí, pero no ocioso.

Tags: , , , , ,

Agile Spain en red.es

La semana pasada estuvimos Ángel Medinilla, Agustín Yagüe y un servidor representando a Agile Spain en una reunión con red.es. Nos recibieron Marta Ferrero (Subdirectora Adjunta de Relaciones Externas) y Borja Manso (Responsable de Gabinete de Dirección General). Para el que no sepa qué es red.es le diré que, entre otras cosas, es un ente público dependiente del Ministerio de Industria que se encarga de promover la Sociedad de la Información en España. Dicho así suena un poco rimbombante, pero realmente es que lo es. Se encargan de promover el DNI-e, el TDT, el SIMO, el FICOD y otro montón de iniciativas cuyo nexo común es la utilización del las TIC para mejorar (a veces complicar) la vida de las personas.

Cómo llegamos a hablar con red.es es verdaderamente curioso. A la vuelta de las vacaciones estuve desayunando con Abel Muiño, que me comentó que hablara con gente de Iniciador, que siempre tenían buenas ideas. Me puso en contacto con María Encinar, de Iniciador Galicia. Y chateando con ella a las tantas de la madrugada me dijo que tuiteara a Sebastián Muriel (el mismísimo Director General de red.es y una verdadera fuerza de la naturaleza). ¡Venga ya! Pues sí, le tuiteé y le envié un correo. Y al día siguiente ya se estaba moviendo todo. ¡Increíble!

Así que los tres nos plantamos en el edificio Bronce de Madrid. Teníamos preparada una presentación con 9 diapositivas que me costó preparar toda la noche, pero al final Ángel Medinilla no la usó. El portátil se quedó toda la reunión encima de la mesa sin abrir. Mejor. Ángel estuvo fantástico. Modestia aparte, creo que todos estuvimos bastante bien. El ambiente era más propicio para una charla que para un powerpoint. Marta es una persona muy accesible, que desde el principio demostró mucho interés por lo que habíamos ido a contarle.

Decidimos que fuera Ángel quien liderara la exposición porque es quien más “vis comercial” tiene de los tres. Nuestro discurso estaba consensuado, pero pensamos potenciarlo con sus tablas por “los escenarios de todo el mundo”.

¿Por qué fuimos 3? Porque queríamos escenificar el hecho de que Agile Spain aglutina a tres colectivos muy importantes en nuestro sector:

  • los profesionales
  • las empresas
  • la Universidad

Ángel explicó muy bien cómo el agilismo es algo que está siendo adoptado fuera de España, que representa una ventaja competitiva frente al resto y que red.es nos podía ayudar (por su relación con las Administraciones Públicas) a conseguir que éstas lo fueran adoptando también (dada la influencia que tienen en el sector en España).

Entre todos les explicamos cómo Agile Spain, desde sus distintas perspectivas, está trabajando en esta difusión. Ángel explicó que hay muchas pequeñas empresas interesadas en mejorar su productividad y la satisfacción de sus clientes. También habló del Plan Avanza y otras iniciativas ministeriales en las que
podríamos encajar algunas de nuestras iniciativas y que Agile Spain
puede ayudar a que iniciativas de red.es lleguen a las empresas
españolas. Agustín, por su parte, explicó cómo desde la Universidad se puede contribuir a capacitar a los futuros profesionales y dar fundamento a las organizaciones que quieran adoptar estas metodologías. Además, explicó la posibilidad de crear una red de excelencia (que podemos articular en base
a los grupos locales, apoyándolos, dinamizándolos) y de las conexiones
con otros países. Finalmente, yo expliqué que nuestra comunidad surge principalmente desde abajo, desde los profesionales (programadores, jefes de proyecto,…) que, insatisfechos con la manera de trabajar, estamos dando un paso adelante para cambiar las cosas

Puestos en esto, le pedimos a red.es que nos apoyara institucionalmente dando sobre todo respaldo frente a las administraciones púbicas por la influencia que tienen en nuestro sector. Ángel insistió en que no podemos perder “el tren del agilismo” ya que en otros países están consiguiendo aumentar su competitividad gracias a ello y es algo a lo que podemos y debemos aspirar.

Por último, les explicamos los eventos que estamos organizando, les hablamos de los grupos locales y de los planes de futuro que tenemos: potenciar los grupos locales para crear una comunidad real, organizar un evento en un formato más formal aproximadamente en primavera y, si conseguimos que nos nominen, organizar un evento a nivel internacional (quizás una XP).

Marta nos explicó que estaba muy interesada, que contáramos con red.es para el presupuesto que viene (el de 2009 ya está cerrado y para el Agile Open no puede hacer nada) y que le enviaramos más detalles porque quería escalar esto hacia arriba para explicarlo y nos emplazó para futuras ocasiones donde podamos hacer un brainstorming y encontrar maneras de concretar la colaboración tanto de red.es con Agile Spain como de Agile Spain con red.es. Nos dijo que seguramente enviarían a alguien (por supuesto que ampliaremos el aforo, porque donde comen 2 comen 3). ¡Qué pelota! ¿Verdad?

Resumen

Creo que todos salimos MUY satisfechos de la reunión. Sabíamos que no ibamos a obtener nada concreto porque era una primera toma de contacto, pero nos trajimos una muy buena impresión de red.es y el firme compromiso de buscar maneras concretas de colaborar conjuntamente. ¡Y pensar que hace un año esto de Agile Spain estaba más muerto que vivo!

Tags: , , , ,

Jugar a mejorar

Estaba leyendo un artículo publicado por Xavi Albaladejo en su ProyectosAgiles.org sobre un juego de simulación para enseñar Scrum y me ha venido la idea de hacer un pequeño recopilatorio de artículos que he ido leyendo en los últimos meses y que puede servir para aquellos que queráis venir al Agile Open Spain 2009 con algo visto y, quién sabe, con algo incluso probado.

Empezaré por recomendar una introducción de Scrum en 10 minutos (realmente 7:59). Lo siento, está en inglés, pero merece la pena. Sería genial que algún voluntario le pusiera subtítulos en español, ¿verdad? ;-)

Lógicamente, luego os recomendaría leer la explicación un poco más extensa que hace Xavi en ProyectosAgiles.org. Simplemente pulsad en la pestaña “Qué es Scrum”, pero no os quedéis en leer sólo esa página, profundizad en los hipervínculos a medida que vayáis aumentando vuestro interés. Merece la pena.

Si os ha picado la curiosidad, hace unos meses Xavi Albaladejo, Xavier Quesada y un servidor grabamos un podcast para JavaHispano, donde no hablamos exactamente de Scrum, pero sí hacemos un repaso bastante completo a los fundamentos ágiles en general, que lógicamente son compartidos por Scrum. Creo que merece la pena también, modestia aparte, que echéis un vistazo a la presentación que hice no hace mucho titulada “Los principios ágiles” y que hace un recorrido del Manifiesto Ágil y sus Principios. He adjuntado también mis notas porque sin ellas os podéis quedar un poco perplejos.

Radiadores de información

La vida de un equipo que hace Scrum está muy vinculada al tablón donde se publica la información que produce el propio equipo de manera completamente transparente, entre otras cosas para evitar interferencias por parte de los gestores con la típica preguntita impertinente “¡Qué, chaval! ¿Cómo lo llevas?” (que en realidad quiere decir “¿te falta mucho para acabar?”). Por eso os recomendaría también visitar el blog titulado “Visual Management” (desgraciadamente en inglés) donde Xavier Quesada nos enseña cómo mejorar la gestión del proyecto mediante un mejor uso de los elementos visuales que empleamos para “radiar la información” (es decir, las pizarras, los post-its, etc) y nuestra relación con ellos. Por ejemplo, podemos elegir un tipo de rotulador u otro para escribir en nuestros post-its. Si escribimos con un “boli medio gastado” y con una letra garabateada, estaremos disminuyendo la eficacia de nuestro tablón. Estoy seguro de que si muchos le pedís a Xavier que traduzca su blog, él estará encantado. No en vano es el primer CSC (Certified Scrum Coach) de habla hispana.

Pero si nos quedamos sólo con el tablón, los post-its, las pizarras y las reuniones diarias, probablemente nos estaremos quedando en la parte más cercana al folklore.

Historias de usuario

El trabajo en Scrum se reparte en forma de historias de usuario, que se estiman y priorizan para formar parte de una pila de producto (o “product backlog” en inglés). La mejor referencia para este tema es, sin duda, esta presentación de Mike Cohn, aunque preferiría que os leyérais su libro “User Stories Applied” porque es excelente (y cortito). En cualquier caso, creo que también os podría valer este artículo en español del compañero de Viçenc García.

A mi, todo este tema de las historias de usuario me parece básico, porque si no escribimos bien lo que queremos hacer, ¿cómo vamos a poder hacerlo después? Por eso me interesa tanto todo lo relacionado con las pruebas de aceptación, que algunos preferimos llamar “especificaciones ejecutables” para hacer más énfasis en el hecho de que se escriben antes y no después de la construcción del software. Pero esto ya quedaría fuera de lo que es Scrum (estrictamente hablando).

Si ya habéis llegado hasta aquí, creo que estaréis en la mejor de las disposiciones para aprovechar al máximo el curso gratuito de “Introducción a Scrum” que ofrecieron hace ya unos meses Agustín Yagüe y Juan Gutiérrez en las instalaciones que Autentia nos prestó.

Literatura (en español)

Libros sobre Scrum (y agilismo en general) hay muchos, pero en español hay muchos menos. Yo me atrevo a recomendaros la lectura de dos (elegid vosotros mismos):

Formación

Y si queréis más, podéis ir echando un vistazo al calendario de cursos de Scrum que desde Agile Spain tratamos de mantener actualizado. Si quieres ofrecerte como voluntario para ser tú el que lo mantenga actualizado… no tienes más que ofrecerte. :-) O mejor aún, puedes intentar arrancar un grupo local de Agile Spain. Hay uno en Barcelona y otro en Madrid. Para esto no tienes más que buscarte un lugar donde hacer la primera reunión (tu oficina, la oficina de un amigo, un bar, una escuela… cualquier sitio es bueno para empezar) y avisar por todos los medios que se te ocurran (tienes la lista de correo de Agile Spain a tu entera disposición y a todos nosotros para echarte una mano). Lo demás depende de lo que se os vaya ocurriendo y las ganas que tengáis.

<publicidad>
Yo estoy estudiando seriamente dedicarme a dar formación y coaching ágil en breve, aunque tengo cierto reparo al leer comentarios en contra de los que desgastan el término ágil para su aprovechamiento mercantil. Sea como sea, si alguien está interesado, que se ponga en contacto conmigo y quizás sirva para decidirme definitivamente.
</publicidad>

Por supuesto, tenéis las listas de Agile Spain (la comunidad ágil española) y Ágiles (la comunidad ágil latinoamericana) para cualquier duda o sugerencia que se os ocurra.

Corolario

En cualquier caso, implementar Scrum no os va a garantizar nada más que, si tenéis éxito o fracaso, lo sabréis cuanto antes. Pero no va a reemplazar el que tengáis que tener unas buenas prácticas de ingeniería y una actitud profesional frente al trabajo. Si tenéis inútiles y vagos en vuestros equipos, Scrum sólo os ayudará a identificar que tenéis este problema (ni siquiera os permitirá identificar quién es el más inutil y vago del equipo). Eso sí, si conseguís armar un equipo con ganas de mejorar y capaces de adoptar una alta dosis de autodisciplina, con un poco de paciencia veréis que podréis ir mejorando en las prácticas de ingeniería y, finalmente, consiguiendo éxitos para vuestros clientes, es decir, también para vosotros. Citando a  Alfredo Casado en un hilo de la lista de Agile Spain: “sin excelencia técnica no hay agilismo, sólo post-it pegados por las paredes”.

Como habréis podido comprobar, la mayoría de los recursos que he ido citando en este resumen tiene un cierto tono informal. Incluso los cursos y talleres incluyen juegos (como el que me servía de excusa para arrancar el artículo). Y no es casualidad. Desde el primer momento el agilismo ha estado relacionado con la idea de cambiar la forma de ver el lugar de trabajo como un sitio donde se va a sufrir por otro donde, a cambio de hacernos responsables de nuestro trabajo, nos lo podemos pasar bien.

Nos vemos en el Agile Open Spain 2009. No olvides tu cámara. ;-)

[La foto es una reliquia familiar (aclaro que de alguien que yo no conozco en absoluto) y representa a un grupo de chavales jugando a la pelota. Me pareció que destilaba una cierta ternura y por eso la elegí.]

Tags: , , , ,

Cuidado, soy un tipo peligroso

Mientras estoy terminando el artículo sobre Scrum que dentro de un ratito publicaré, me he topado, gracias a un amigo en twitter, con este otro artículo que, por una parte me ha parecido muy acertado, sobre todo recordando que los métodos ágiles no son balas de plata, es decir, que no siempre son la mejor solución. Pero por otra parte me ha hecho plantearme si es correcta la imagen que transmito de mí mismo al declararme “evangelizador agilista” (“agile evangelist” si echáis un vistazo a mi perfil en LinkedIn).

Después de pensarlo bien y echar mano de mi ejemplar de “Fearless Change”, he llegado a la conclusión de que sí, de que es correcta. Es más, es la que quiero tener en este momento. Porque tengo una pasión y me gustaría poder transmitirla. Esta pasión es el desarrollo de software.

He descubierto que hay formas mejores de desarrollar software y me gustaría que fueran las que se usaran mayoritariamente en las empresas de desarrollo de software de nuestro país. No quiero parecer un “talibán”, alguien que dogmáticamente, sin reflexión alguna, trata de imponer su criterio a todos los demás. Por eso no me autodenomino “Emperador de lo ágil” ni nada por el estilo. Y es que no creo que tener una pasión sea malo, ni tratar de que los demás compartan tu pasión (sin imponerla ni ponerse muy “pesao”) sea malo. Así que creo que, aunque es cierto que hay que empezar a tener cuidado con los que recién llegan a aprovecharse de la marca “agile” y de los que quizás han creado marcas a partir de estos conceptos para “monetizarlos”, también creo que no debemos descartar directamente a aquellos que te tratan de mostrar su pasión simplemente porque se ha convertido en una “buzzword”.

Bueno, lo dejo que no me quiero poner “pesao”. :-)

[La foto es una obra de Warhol que está expuesta en el MOMA de Nueva York y que representa una infinidad de latas de sopa de una misma marca, con lo que no es fácil distinguir una sopa de otra. ¿Moraleja o simplemente arte?]

Tags: , ,