Agilidad en la construcción de software

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:

2 comentarios en “Agilidad en la construcción de software

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *