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. :)

Artesanos del software en directo

Me he liado la manta a la cabeza y he liado a unos cuantos más por twitter (incluidas sus respectivas parejas) para que nos vayamos el jueves 7 de octubre de 2010 a una conferencia muy especial: Software Craftsmanship 2010. Se anuncia como “Sin charlas. Sin cursos. Sólo programar”. Se celebra en Bletchley Park, un lugar relevante en la Historia de la Informática y que eventos como éste ayudarán a restaurar. Además, es una oportunidad para estar cerca de gente a la que, de otra manera, sólo podemos seguir por twitter. Personalmente, espero ver allí por lo menos a y a  (Enrique fue uno de los que arrancó Agile-Spain en el principio de los tiempos).

A mi, particularmente, me interesa mucho el ver qué cosas diferentes se pueden hacer para enseñar a practicar la programación, que es donde intento posicionarme profesionalmente. Si Xavi Gost se atreviera a venir, incluso sería capaz de proponer la codekata de “un pomodoro en un pomodoro” que hicimos en Madrid y Santiago hace ya varios meses. El “cobarde y juerguista” de ha preferido irse de concierto con sus amigas. Él sabrá lo que hace. Lo echaré de menos sin duda, a él y a otros muchos, pero bueno, intentaré aprender todo lo que pueda para luego poderlo contar. Es lo que hacían los viajeros cuando no había internet (en la antigüedad), que servían para llevar los avances culturales e industriales de unas provincias a otras.

Bueno, pues eso, si os queréis unir a @GermanDZ, @plagelao, y a un servidor, registraos rápido porque quedan muy pocas plazas ya. No sé si al final iremos con camisetas rojas, para que se nos distinga por algo más que porque no hablamos bien en inglés, pero seguro que nos lo pasamos muy bien, al menos tanto como los médicos cuando van a sus conferencias, porque ninguno de nosotros pensará que es un “raro” por emplear el tiempo libre en mejorar profesionalmente. De hecho, a mi me hubiera gustado poderlo enlazar con el curso de 3 días de Greg Young sobre CQRS, pero mi presupuesto, como el de mis compañeros de viaje, sale de mi bolsillo y no da para más. Eso sí, se aceptan donaciones. En cualquier caso, ahí os dejo esa otra alternativa, que, como cae en festivo en España y de lunes a miércoles, quizás algún jefe esté dispuesto a dejaros marchar. Os aseguro que ese curso merece la pena todo el dinero que cuesta más los gastos correspondientes.

Salvar al soldado ágil

Hoy he podido comprobar como hasta el más convencido de los agilistas cede a las presiones de la gerencia porque es a lo que estamos acostumbrados y no se nos ocurre defender nuestra profesionalidad con argumentos sino con excusas. Como el agraviado es un buen amigo, daré su nombre. ;-) (Vaya uno a tener amigos para esto)

dijo hoy por twitter lo siguiente:

semuratAug 03, 10:47am via HootSuite

@semurat odio a los listos q teniendo una aplic completa y COMPLEJA de 2 años te pidan que hagas un modulo igual, pero “sencillo” en 15 días

Después de varias “puyitas” (por mi parte) creo que lo clavó al decirle que:

ialcazarAug 03, 12:30pm via HootSuite

@semurat Si el tiempo y el precio son cerrados, cláramente el alcance será variable, es decir no entregaras todas las funcionalidades

ialcazarAug 03, 12:31pm via HootSuite

@semurat o bien, como tienes que entregar todas las funcionalidades (alcance y precio cerrado) el tiempo será variable, es decir, retrasos

ialcazarAug 03, 12:34pm via HootSuite

@semurat o bien entregas a tiempo, lo q quería el cliente (en principio) pero lleno de fallos ya que “no dió tiempo a hacerlo mejor”. Ánimo!

En definitiva, Jorge podría haber explicado esto mismo a sus jefes. ¿De qué habría servido? A largo plazo estaría sentando las bases de la credibilidad de Jorge como profesional. A corto plazo estaría dando la oportunidad (convendría explicitarla, por si acaso) de que la gerencia priorizara los objetivos, dando la oportunidad a Jorge de entregar lo que más valor ofrezca a sus jefes, lo que podría llevar a una mayor credibilidad como profesional. En ambos casos, no hay nada que perder y sí mucho que ganar. :)

Si a alguien le interesa la opinión autorizada de UncleBob al respecto de estas situaciones, justamente refiere una muy, muy parecida en su charla “Clean Code I”. La podéis descargar desde el BitTorrent de la NDC2010 (Conferencia que se celebró recientemente en Noruega).

Por favor, si alguna vez véis a algún compañero en esta situación, recordadle que tiene más opciones que “aceptar lo inevitable”. Ayudad a salvar al soldado ágil.