Hace ya tiempo que me vengo dedicando a «evangelizar» acerca de la necesidad de incrementar la agilidad (solemos utilizar más el término adaptabilidad) de los sistemas de información.
Bueno, pues ahora voy a centrarme en algo más concreto, en la búsqueda de la agilidad en los procesos de construcción de software.
¿Por qué la agilidad es una caracterÃstica deseada de los procesos de construcción de software?, – aahhh, ¿lo es? –
Si, lo es 🙂
La agilidad es importante ya que los procesos de construcción de software también se ven afectados por los mismos grandes cambios que el resto de los procesos de los sistemas de información. Hoy en dÃa ya no se abordan proyectos de construcción de software de 3 años, ejecutados por equipos de 250 personas; o al menos no es posible abordar este tipo de proyectos si no generan entregables en ciclos no superiores a 3 meses. Por lo que al final nos encontramos con la necesidad de ejecutar proyectos de construcción de alrededor de 3 meses que tienen que generar algo concreto. Es decir, ese proyecto de 3 años se convierte en 12 proyectos de 3 meses y un proyecto de 3 meses es inmanejable si el equipo del proyecto supera las 20 personas (por decir un número).
Otro impacto de este cambio es que ya no es posible dedicar el primer año de esos tres años a hacer un análisis funcional detallado de lo que ha de ser construido. ¡Hay que entregar algo en 3 meses!. Por lo tanto nos vemos en la necesidad de empezar a construir disponiendo únicamente de una parte muy pequeña y no muy madura, del análisis funcional. Esto significa que los requerimientos ya no son sagrados, empezamos la construcción con una versión 0.1 de los requerimientos y sabiendo que estos requerimientos evolucionarán mucho antes de que puedan considerarse una versión 1.0.. ¡¡¡Uuuuufffff, qué panorama!!!.
Pero asà son las cosas y con esto nos tenemos que apañar. Y en este contexto es en el que los procesos ágiles de construcción de software se configuran como una alternativa más viable que los procesos tradicionales para enfrentarnos a estos nuevos retos.
Los procesos ágiles de construcción de software no son algo nuevo, la piedra filosofal de este tipo de procesos es el Manifiesto Ãgil, del que podéis encontrar la versión original aquà y una traducción al castellano aquÃ. Este manifiesto fue redactado en Febrero de 2001 por un grupo de 17 personas (creo que 16 americanos y 1 inglés, Martin Fowler) reunidas en una estación de esquà de Utah, entre descenso y descenso. Si hubieran sido españoles y estado en Sierra Nevada se hubieran dedicado a cosas más interesantes que a discutir acerca de los problemas estructurales subyacentes en los procesos industrializados de producción de software, pero ni eran españoles ni estaban en Sierra Nevada; eso que hemos ganado los demás.
En esta reunión estaban «representantes» de Extreme programming, SCRUM, DSDM, Adaptive Software Development, Crystal, Feature-Driven Development, Pragmatic Programming y otros… :-O
¡¡Tremenda la reunión!! 🙂
No me extiendo más por ahora, ya habrá tiempo para ir profundizando más en estos temas. Para terminar os dejo una primera lista de enlaces con los que ir abriendo boca alrededor de las metodologÃas ágiles:
- Agile Spain
- AgileDraw.org
- Agile Planet
- Internationally agile
- Buildix , the agile development platform in a disk.
- SCRUM and XP from the trenches.
- Eclipse Process Framework Project (EPF)