miércoles, 23 de mayo de 2012

¿Han muerto las metodologías ágiles?

Me siento culpable. Y me siento culpable porque soy de los que no les gusta aceptar las cosas porque sí. Necesito verificar criterios, y confirmar que realmente, las indicaciones recibidas y los objetivos, son coherentes.

Y no, no me acabo de levantar con resaca tras una noche de alcohol y desenfreno. Estoy hablando de la muerte de las metodologías ágiles. Y me siento culpable, porque soy muy crítico con posturas tipo “si es ágil es bueno” o también “con SCRUM siempre es mejor”.

Yo veo las metodologías ágiles, SCRUM y XP entre ellas, como los representantes de una gran promesa, un mito casi religioso que ha alcanzado su paroxismo en un cierto momento, y se ha creado una burbuja insostenible. Y la desgracia, será que cuando fallen los proyectos, la culpa se la van a llevar los de siempre: los programadores. Precisamente las metodologías que ponen por encima a las personas, van a ser las que usen a dichas personas como chivos expiatorios, tratando de justificar sus fallos. Y es que tienen fallos (son "humanas"), como me esfuerzo en demostrar con éste y otros mitos.

Y me siento culpable, porque me gustaría ver muchos más proyectos usando Scrum, XP, Lean, etc. Pero no a cualquier precio. No a costa de terminar sufriendo los mismos fallos que las metodologías pesadas y tradicionales nos han traído:
-       Retrasos en las entregas.
-       Spaguetti Code.
-       Deuda técnica.
-       Etc..
Echo la vista atrás y veo que ya hace unos cuantos años que muchísima gente se hace las mismas preguntas que yo:
http://www.infoq.com/news/2008/11/decline-of-agile
http://stackoverflow.com/questions/301993/is-agile-development-dead
http://practicalagility.blogspot.com.es/2008/11/agile-circling-drain.html
http://www.boost.co.nz/blog/agile/rules-of-improv-applied-to-scrum/
http://craignicol.wordpress.com/2011/05/16/agile-is-dead/
http://agilesoftwaredevelopment.com/blog/janusz-gorycki/agile-dead
http://myagileeducation.com/2011/long-live-agile-is-agile-dead/
http://blog.recursivity.com/post/934000041/why-agile-is-dead

Y son sólo unos pocos ejemplos.

Viendo los comentarios que la gente escribe en esos blogs, al final es lo de siempre. Es un flujo que se está cumpliendo con exactitud:
  1. Grandes promesas. En este caso, surge el manuscrito ágil.
  2. No hay pruebas de lo contrario, de que las metodologías no sean el nuevo "resuelve-todo", por lo pero se genera gran expectativa esperando éxito en los proyectos. Curiosamente, con un esfuerzo mínimo. Y además, contentando al colectivo al que se dirige la promesa: por fin los programadores encuentran una metodología que promueve sus aspiraciones y les da el control. ¿Porqué me suena esto extrañamente a la pastilla que todos los años aparece de forma milagrosa y que permite adelgazar sin esfuerzo?
  3. Conforme se añade gente, y un colectivo importante pasa a vivir de la formación, consultoría y porqué no decirlo: de apuntarse al carro y vivir del cuento y de la fama que se consigue con las metodologías ágiles, la burbuja se hace imparable.
  4. ¿Y ahora qué? Pues decepción, sensación de tiempo perdido, proyectos con problemas (los ya comentados retrasos, código spaguetti,...).
  5. ¿Y después? ¿Qué nos depara el futuro? Pues como siempre, adoptaremos las nuevas ideas, aunque esta vez sin verlas como una varita mágica, sino como lo que son: herramientas tan útiles como su adecuación al proyecto en curso, nuestra situación particular, etc...

No hay bola de cristal que nos solucione el punto 5. Ni siquiera tengo claro el que haya explotado aún la burbuja de las metodologías ágiles, a pesar de que muchos autores en la red así lo afirman. De momento, las metodologías “tradicionales” y “pesadas”, no han muerto tampoco. Siguen teniendo sus problemas, pero siempre encuentran un tipo de empresas o proyectos en los que ser de utilidad. En todo caso, evolucionan. Como espero que también evolucionen las metodologías ágiles, evitando convertirse en un elemento más de la cadena de palabras de moda:

·         2nd generation languages
·         3rd generation languages
·         CASE tools
·         UML
·         OOP
·         Java
·         CMM (and CMMI)
·         XML
·         Generics
·         Design patterns
·         .NET
·         Outsourcing/offshoring
·         Agile/Scrum
·         LINQ
·         TDD
·         Etc.

Todos ellos han sido útiles. Muchos de ellos se siguen usando. Pero han tenido su momento burbuja. La clave está en ser lo suficientemente inteligente en mirar atrás y darse cuenta de que al final, no son más que herramientas en nuestra mochila, y no constituye ninguna por sí misma una solución que elimine a las demás de un plumazo.

De todas formas, yo os recomiendo mirar con desconfianza cada vez que un supuesto gurú nos venda la nueva "pastilla milagrosa" en forma de metodología o herramienta.

Además, el uso de SCRUM y otras metodologías ágiles me recuerda a la teoría del caballo muerto que ya comenté en otro post. Se ha tratado de exprimir tanto y tanto a estas metodologías, llegando hasta sinsentidos, que en los casos en que realmente pueden ser útiles (que no son pocos), se genera desconfianza. Curiosamente, es lo mismo que ha pasado ya hace años con las metodologías tradicionales, el desarrollo en cascada, etc.

No hay comentarios:

Publicar un comentario