Hace tiempo que llevo pendiente compensar el desequilibrio en artículos técnicos que últimamente tengo en el blog, así que aquí va éste.
El pasado día 22 de diciembre celebramos el segundo aniversario del primer coding dojo que organizamos como AGILISMO.es. Luis Rivera, siempre disponible para echarnos una mano, nos prestó las instalaciones de Okuri, también conocidas como Tetuan Valley porque allí tiene la sede esta iniciativa de incubación y aceleración de startups en Madrid. Echamos de menos a Alejandro y Roberto, de Autentia, a los que tanto tenemos que agradecer durante estos dos años. Pero junto a los habituales también estuvo gente nueva. Eso es buena señal.
Hasta aquí no parece un artículo técnico, ¿verdad? Bueno, pues al grano. Durante el desarrollo del coding dojo, con la PomodoroKata como ejercicio, surgió un debate sobre si dejar el número 25 en los primeros pasos del desarrollo es aceptable o no. Xavi defendía la sustitución del 25 por una constante por tratarse de un número mágico mientras que @mikelodeon opinaba que era suficientemente expresivo y que el refactor era prematuro.
Como podeis comprobar en el video de la kata que grabé hace ya dos años, yo también prefiero sustituir el 25 por una constante (minuto 1:40 aprox) por las siguientes razones:
* el método minutesLeft devolviendo 25 es menos expresivo que minutesLeft devolviendo DEFAULT_DURATION
* en el test también hago este refactor aunque el título del test es incorrecto y debería decir "Un pomodoro tiene una duración por defecto", porque realmente me es indiferente cuál sea esa duración
* si realmente hubiera querido probar que la duración por defecto es 25 entonces debería haber tenido un test del tipo: assertEquals("La duración por defecto es 25", 25, Pomodoro.DEFAULT_DURATION), lo que nos habría llevado a pasar esa constante de privada a pública.
Como veis, mis argumentos están basados en la expresividad del código y en que se ajusten a lo que se quiere probar. El trabajo más difícil es siempre elegir bien los tests porque, dependiendo de ellos, nuestro diseño y posterior implementación tomarán un rumbo u otro.
Lo siento, no quería publicar nada el día 1 por no sé qué pudor raro y porque estoy preparando un artículo técnico que quería que fuera el primero del año, pero ayer una compañera de cuando yo estudiaba Informática en Sevilla me envió una felicitación navideña en forma de cita de Steve Jobs y no he podido resitir la tentación de publicarla. Obviamente no es porque sea una cita de Steve Jobs sino por lo que dice: me he sentido muy identificado con estas palabras.
No puedes conectar los puntos mirando hacia adelante; sólo puedes hacerlo mirando hacia atrás. Asi que tienes que confiar en que los puntos se conectarán de alguna forma en el futuro. Tienes que confiar en algo, tu instinto, el destino, la vida, el karma, lo que sea. Porque creer que los puntos se conectarán luego en el camino te dará la confianza de seguir tu corazón, incluso cuando te conduce fuera del camino trillado y eso hará toda la diferencia.
Estos días niño1 anda leyendo un libro titulado “Escenarios fantásticos” de cuando yo tenía su edad y que rondaba por casa de mis padres. Mientras caminábamos dando un paseo bajo el cálido solecito del sur, charlando sobre el libro, con niño1 hablando de espejimos, arcoiris y demás fantasías, he conseguido encajar varias piezas que andaban dando vueltas por mi cabeza últimamente.
Hace cosa de un año me preparé una charla para practicar entre amigos. Se trataba de un formato muy similar a la pechakucha y la llamamos 15en5 porque se trataba de contar una historia con 15 diapositivas en 5 minutos. Lo cierto es que fue una experiencia muy interesante porque gracias a ello me di cuenta de que se puede decir mucho en apenas 5 minutos. Pero además de las habilidades que aprendí al prepararme aquella presentación, pude aprender algo sobre mi mismo. Y pasado un año, creo que realmente ese aprendizaje caló muy profundamente en mí.
Como excusa para mi charla usé la película “El Mago de Oz”. Supongo que la mayoría la habréis visto alguna vez: Judy Garland como Dorothy, su perrito Totó, las baldosas amarillas, el espantapájaros, el león y el leñador de hojalata… Lógicamente no se trataba de hacer un resumen de la película en 15 diapositivas, aunque eso ya sería un trabajo difícil en sí mismo, sino que traté de contar algo más.
En la historia, tanto Dorothy como el resto de personajes que van acompañándola por el camino de baldosas amarillas en busca del Mago de Oz se consideran a sí mismos como personajes incompletos, a los que, de una manera u otra, les falta algo. Y hacen la ruta juntos con la ilusión de que el Mago de Oz les recompondrá mágicamente, que Él, con sus superpoderes, les hará sentirse completos, así, sin más. Pero resulta que el Mago de Oz es un farsante y no tiene realmente poderes. Es apenas un mago de feria también atrapado en el mundo mágico de Oz. Curiosamente, todos los acompañantes de Dorothy creen que el Mago les ha concedido las cualidades que ellos tanto ansiaban, sin darse cuenta de que en realidad ellos no necesitaban el don pues ya lo poseían: durante el viaje lo habían demostrado sobradamente. El espantapájaros era un líder inteligente y carismático, el león era un valiente y generoso amigo y el leñador de hojalata era cariñoso y con los mejores sentimientos. Todos, juntos, habían conseguido superar muchos obstáculos (en el libro aún más) pero todos piensan que en realidad ha sido el Mago de Oz el que les ha otorgado esos dones. No es hasta el final de la película, cuando por fin Dorothy sabe que desde su llegada al País de Oz había tenido el poder de volver con su familia.
La moraleja de esta historia, la que yo quería transmitir, era que cada uno, por muy incompletos que nos sintamos, no deberíamos emplear nuestra energía en encontrar a un Mago de Oz para que él, mágicamente, nos complete. Es el viaje por el camino de baldosas amarillas, junto a otros mejor, el que nos ayudará a demostrarnos a nosotros mismos que realmente somos capaces de superar nuestras incapacidades.
La firme creencia en esto que acabo de afirmar es lo que me ha llevado a seguir en el camino de baldosas amarillas y a seguir buscando acompañantes con los que hacer más divertido y completo este viaje. A veces me cruzo con mucha gente, algunos de vuelta, que piensan que jamás podrán llegar a Oz y que incluso me dicen que es mejor volver (¿a dónde?) porque “por allí no se va a ningún sitio” y no sé qué pamplinas de “el mundo real”. Otros van corriendo, queriendo llegar antes. Yo, realmente, no voy a ningún sitio concreto así que tampoco sé si voy rápido o despacio… porque inocentemente busco la felicidad, pero no para quedarme allí (“Happiness is a direction, not a place”) sino por el mero placer de andar el camino.
No busco espejismos, arcoiris ni otros escenarios fantásticos como los que lee e imagina niño1 con su libro, tampoco espero que me toque la lotería (aunque reconozco haber comprado un décimo para mi madre con el oscuro deseo de que si tocara me daría parte del premio), ni tampoco creo en Papá Noel, que jamás me trajo nada cuando era pequeño, ni en Reyes Magos, igual que tampoco en el Mago de Oz, ni siquiera en el Mago More (recomiendo encarecidamente su charla en TEDxMoncloa). Simple y llanamente busco un camino que andar en buena compañía: aprendiendo cada día, compartiendo cada día y, si es posible, riendo cada día. Lo cuál no quiere decir que yo sea alguien a quien no le guste sentir a veces esa ilusión como la que seguro han vivido los niños durante este video de Spanair para estas Navidades. ¡Felices Fiestas!
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.
La semana pasada fue el Global day of Code Retreat, más de 20 personas en Valencia nos levantamos temprano un sábado para tirarnos el día programando.
¿Por qué hacemos lo que hacemos quienes nos autodenominamos “craftsman”?
Pues porque no sabemos otra manera de hacerlo, no sabemos otra manera que nos permita seguir creciendo, aprendiendo, mejorando nuestra técnica y mantener el orgullo por nuestro trabajo.
Siempre que hablas de valores y dedicación hay compañeros que se sienten amenazados. Intentaré tranquilizarlos…
A pesar de estar orgullosos de nosotros y mostrarlo, no nos sentimos superiores a nadie, interpretar eso sólo es achacable a las miserias particulares de cada cual, en ningún caso a nuestra arrogancia.
Siempre que hablas de hacer las cosas de otra manera, la industria reacciona con su charla sobre el “mundo real” y “las cosas son así”.
Tranquilos, tampoco somos una amenaza para la industria. La industria está bien aunque estaría mejor con algo más de humanidad. Nosotros no buscamos los proyectos de los que vive la industria, queremos proyectos que se puedan hacer artesanalmente, que saquen el máximo partido a las consecuencias de nuestra práctica; código mantenible, permeabilidad al cambio, despliegue contínuo. No son vuestros preciados proyectos de banca y administración pública. Una vez más, estad tranquilos.
No confundais pasión y vehemencia, con actitudes autoritarias o amenazantes (especialmente os ruego abandoneis la palabra “talibán”). Tenemos que hablar con pasión de las cosas que nos apasionan y reaccionar con vehemencia cuando vienen a nuestros foros, blogs o timelines a desafiarnos.
Tenemos una pasión por hacer proselitismo, por infectar. Pero una vez más, tranquilizaos, no vamos a ir a evangelizar a vuestras casas. Evangelizaremos desde el ejemplo que son nuestros talleres, nuestros proyectos, nuestros blogs y nuestros eventos y siempre será de manera generosa porque no entendemos una manera de prosperar y crecer que no sea dando.
Ni 20 razones ni fotos, sólo me reía de los que hacen Link Bait.