¿Agil o Agilista?

2009 es el año Agile. Se ha convertido en la nueva moda, en el nuevo hype y para algunos en la nueva gallina de los huevos de oro. Ha llevado un tiempo desde que se escribió el Manifiesto en 2001, pero finalmente Agile se ha convertido en una auténtica revolución que está llegando -mejor o peor- a todas partes.

Hasta en España -más vale tarde que nunca- se suceden los podcasts, encuentros, conferencias, cursos, seminarios y charlas. Por llegar, ha llegado hasta a las LanParties! Lo próximo será un Open Space en Madrid. Todo ello bien apoyado desde agile-spain, la Comunidad Agile en castellano.

Es una gran noticia. Está haciendo mucho ruido. Y eso es bueno. Es muy bueno. Porque ante todo, lo que Agile transmite es un mensaje. Un mensaje que informa de que existen mejores formas de desarrollar software y que por primera vez viene de abajo a arriba, desde la gente que sabe desarrollar software a la gerencia y a los clientes.

Mi experiencia

Éste es un mensaje con el que estoy totalmente de acuerdo y que intento llevar a cabo en todos los equipos y proyectos por los que he pasado en los últimos años. No ha sido fácil. Sin apoyos, autoformándome en mi tiempo libre e introduciendo los cambios poco a poco, sacando horas de donde se podía.

Primero adopé la visión y objetivo del Manifiesto y los Principios Ágiles.
Luego fuí aplicando muchas de las llamadas Prácticas Ágiles en el desarrollo de los proyectos, como el diseño y desarrollo dirigido a pruebas (TDD), automatización, integración continua, iteraciones, concepto de hecho, diseño simple y evolutivo, revisiones de código, retrospectivas y documentación inteligente o útil.
Finalmente he utilizado algunas de las técnicas de las Metodologías Ágiles para transformar la forma de organizar el trabajo del día a día y alcanzar un nivel de agilidad más completo.
Consiguiendo así evolucionar la forma de desarrollar software, haciéndo proyectos más estables, eficaces y adaptables a los inevitables cambios, para satisfacción del cliente y propia.

Hoy puedo decir que mis esfuerzos por ser Ágil me han ayudado a ser mejor profesional y, también, a formar equipos que desarrollan mejor software y con los que da gusto trabajar. Aunque aún me queda mucho por aprender y mejorar, hoy soy consciente de que estoy en el camino correcto. Hace unos años no podía decir lo mismo.

Peligro

Sin embargo, últimamente noto el mensaje excesivamente -casi exclusivamente- dirigido a la implantación de las Metodologías Ágiles y principalmente Scrum.

Conviene recordar que las Metodologías Ágiles no son metodologías de desarrollo software en sí, sino simplemente de trabajo. Scrum (pej) no define qué entregables debe tener un proyecto, no define ni siquiera tipos de proyecto, si se debe usar UML, Diagramas Gantt, ni nada. Scrum es tan aplicable al desarrollo de software como a cualquier tipo de proceso divisible en tareas, pej. una mudanza! De hecho nuestro tan aclamado Scrum no es una metodología originalmente creada para el desarrollo de software.

En mi opinión, para poder usar una Metodología Ágil, primero es necesario que el proyecto tenga un nivel técnico alto, basado principalmente en automatización, pruebas e integración continua. Cómo podemos adoptar un desarrollo en iteraciones, si no tenemos modo de garantizar (al menos en parte) que el código que funcionaba en la iteración N sigue funcionando en la iteración N+1. ¿Mediante la repetición de fases de pruebas manuales? ¿Y eso es desarrollar mejor software?
Citando a mi colega Alfredo Casado: sin excelencia técnica no hay agilismo, sólo post-it pegados por las paredes. Y sinceramente el nivel técnico medio de los proyectos software a día de hoy deja bastante que desear.

Por otro lado, no puedo dejar de preocuparme cuando leo mucha de la publicidad que se le está haciendo a las Metodologías Ágiles y a Scrum. Cosas del tipo sólo existen 2 tipos de metodologías: en cascada y ágiles, o sólo hay 2 formas de desarrollar buen software: trabajar en la NASA o usar Scrum, o si no obtienes beneficio de aplicar una Metodología Agile es porque no lo estás aplicando en su totalidad, por tanto debes contratar un experto en Agile o Scrum es el remedio contra la crisis mundial. Por supuesto todo rodeado de los nuevos buzzwords de turno, que así como que engaña impacta más.

Todas estas falacias -y otras más- no hacen sino distorsionar el mensaje original (mejores formas de desarrollar software) y dejar una imagen de vendedor de teletienda que no hace ningún bien, y sólo puede generar desconfianza. Supongo que va asociado al hype, pero ¿qué tal si intentamos todos ser un poco más responsables?

También me preocupa -y mucho- el tema de las certificaciones en Scrum y el ansia de algunos por llegar a ser Agile Coach. Donde algunos ven la luz que iluminará el futuro, yo sólo veo una gallina; de huevos de oro, eso sí. Tiene toda la pinta de convertirse en el MBA de nuestro sector. Y si no, al tiempo.

En realidad Scrum no es aplicable a más de la mitad de los proyectos. Entre otras cosas, requiere una enorme disponibilidad por parte del cliente (el Product Owner es parte del equipo), equipos con dedicación absoluta y de alto nivel técnico y una sala de reuniones por equipo disponible a primera hora. Al final tienes que adaptar Scrum a tus circunstancias, pero entonces yo pregunto: ¿y no será más fácil adaptar la metodología que se esté usando para agilizarla? Ah no, que eso no sería cool.

Conclusión

¿Quiere ésto decir que las Metodologías Ágiles no aportan valor? En absoluto. Claro que aportan. Pero cada cosa en su sitio, sobre todo porque no siempre es posible y viable implantar una Metodología Agile oficial. Una Metodología Agile es la punta del iceberg, la guinda del pastel, debajo necesitamos una sólida base construida a partir del Manifiesto, Principios y Prácticas Ágiles.

No podemos dejarnos llevar por el hype de las Metodologías Ágiles, un hype que cada día tiene más parecidos con la religión que con desarrollar software, tanto por el fanatismo como por el negocio generado. De hecho hasta el nombre de Agilismo ha calado. Pero yo no quiero ser Agilista, yo no necesito creer en ninguna Metodología concreta ni en guías espirituales.

Yo quiero ser Ágil. Y se puede ser Ágil sin seguir fielmente una de las Metodologías Ágiles oficiales. Porque el valor de ser ágil es evidente: automatización, pruebas, integración continua, entregas periódicas de un software que funciona, equipos orgullosos y comprometidos con su trabajo, código de mejor calidad, documentación útil, respuesta frente a cambios en los requisitos, compresión y colaboración del cliente,... entre otros. Ésto sí son mejores formas de desarrollar software!

7 comentarios :: ¿Agil o Agilista?

  1. 100% de acuerdo.
    Casi siempre digo "semi-acomplejado" lo de "nos basamos en scrum pero no es scrum...", no vaya a ser que alguien me queme en la hoguera el servidor de versiones ;-) Pero es que en mi caso era totalmente imposible conseguir un Product Owner, por ejemplo. ¿No puedo tener un backlog por ello? ¿No debo intentar implementar una funcionalidad completa en una iteración? ¿Por qué parece que usar scrum es todo o nada?
    < cinismo >Porque de acomplejar a alguien sobre lo que le falta, se crea la necesidad de comprar algo que lo rellene< /cinismo >
    Básicamente mi "agilidad" se basa en optar por todas aquellas formas de arquitectura, build y documentación que me permitan cambiar rápidamente y con un impacto controlado en el caso de que me haya equivocado o se cambien los requisitos originales. Y si rascamos un poco esa definición, es incluso anterior al manifiesto: simplemente es programar correctamente.
    Salu2
    PD: Hasta el PMI (que parecía el estandarte del "cascadismo") ha montado un grupo de interés sobre Agile. Señal de que el hype se está asentando y dejará de tener interés en breve. Yo voto que el nuevo hype serán las metodologías Lean en proyectos software. Bueno, a mi me pillará programando...

  2. ¿Como? ¿Una buena idea con aplicación en entornos concretos que se usa para todo, donde algunos ya la usan para montarse en dolar y otros por que son borregos y aplican dogmas ciegamente?

    Nunca hubiera pensado que algo así pudiera pasar en nuestro sector.

    ...pi pi PIIIII
    Sarcasmómetro fuera se escala...
    (R)einiciar, (C)ontinuar, (J)ejeje? [J]

  3. Totalmente de acuerdo, ya sabes un poco mi opinión sobre esto y sobre los agile coach "no tecnicos", vendedores de humo de nueva generación y poco más.

    A mi me empezo a interesar esto de las metodologías agiles cuando lei el XP Embrance Change de kent beck, fue la primera vez que leyendo un libro sobre "ingenieria del software" encontre un tio que hablaba del código, de los test, del build, la primera vez que me dije "anda, este trabaja en lo mismo que yo", despues de RUP's y Metricas desde luego tube claro vi claro que este camino era una opción mucho más

    Esta claro que las iteraciones cortas, la relación cercana con el cliente o formar verdaderos equipos de trabajo son cosas muy importantes, pero sin los practicas tecnicas no hay mejora posible: entregaras iterativamente basura, tendras al cliente cerca pero cabreado y el equipo estara unido si, en sus ganas de salir corriendo de otro proyecto desastroso más.

    Pero como siempre que algo se populariza y empieza a ser una oportunidad de ganar dinero, los vendedores de crecepelo surgiran como setas de cualquier parte, con sus titulos de "agile master of the universe" y sus panplinas varias, y por supuesto no sabrían no programar una calculadora, pero vienen a tu empresa a contarte como desarrollar sistemas complejos con sus "soft skills", sus capacidades para mejorar las sinergias inter-personales, y su visión del componente humano del desarrollo de software... y mientras la empresa que se ha tragado estas papuchas se da cuenta de la estafa ya han divisado su siguiente presa... si total esto tampoco es nada nuevo.

    Yo de verdad me veria incapaz de ir a una empresa que hace, que se yo, frabricar termometros, a decirles que hagan esto y aquello para mejorar la calidad de sus productos y la satisfacción de sus clientes, pero sin embargo estos tios no tienen ningún problema...

    Por supuesto hay de todo en el "mundo ágil" y por suerte yo creo que la mayoría siguen siendo gente realmene competente, con talento y con un background tecnico y experiencia muy elevados, yo sigo siendo claramente defensor del enfoque ágil, pero no deja de ser cierto que cada vez aparen compañeros de viaje que se montan al carro del agilismo porque es la nueva moda para seguir engañando a algún nuevo incauto y llevandose su buena pasta vendiendo el nuevo unguento magico. Ya veremos como evoluciona todo esto, pero a la gente le gusta lo facil, y a la gente le gusta creer en milagros...

  4. @Ibon: estoy contigo, el nombre es lo de menos. Antes lo llamabamos Pragmático. Yo si esto sigue así, pues como decia Groucho Marx: que se pare el mundo que me bajo. Del mundo Agile se entiende.

    @Daniel: para mi la sorpresa es que el mensaje inicial proviene exclusivamente de excelente gente técnica, la mayoria autenticos referentes de nuestro sector. Como decia al principio: es un mensaje de abajo a arriba, o al menos lo era. Pero sí, estoy contigo en que empieza a parecerse a la misma historia de siempre pero con distinto nombre. Lástima porque ya sabemos el final...

    @Alfredo: yo creo que la raiz de la cuestión está en que estos Calvos vendedores de crecepelo van con el cuento a otra gente que tiene la misma idea que ellos de desarrollar software: cero.
    Ya lo dijo Djistra en los 80: el problema está en "la incompetencia técnica de los gerentes" [1].

    [1]: http://www.cs.utexas.edu/users/EWD/misc/vanVlissingenEntrevista.html (primera pregunta)

  5. Yo es que creo que pecamos de egocentrismo cuando pensamos que si el mensaje es de abajo-arriba entonces es mejor y no se podrá corromper, o que por que lo digan "autenticos referentes en nuestros sector" entonces es como palabra divina y todo el mundo lo entenderá igual y lo usará correctamente.

    Eso dejando de lado lo que opino de las figuras "de referencia". ;)

  6. Yo no lo llamaría egocentrismo, más bien inteligencia. Si quiero aprender a desarrollar software, acudo a quien sabe desarrollar software y no a quien vende crecepelo. Lo mismo si quisiera aprender a cocinar o a jugar al fútbol.

    Ahora ésto no quita, para que si no me gusta el estilo o resultado del desarrollador, cocinero o futbolista, cambie de fuente.
    Porque el sentido común y cuestionarse las cosas siempre. Fanatismos ninguno.

  7. Este comentario ha sido eliminado por un administrador del blog.

Publicar un comentario