en construccionEn un día claro y soledado de pronto comenzó un proyecto de desarrollo ágil . El día anterior, alguien imaginó un nuevo sistema y decidió que se debería armar un equipo ágil para construirlo. Esta persona contó la idea a sus colegas, y todos decidieron que sería una excelente idea hacerlo. Afortundamente, había financiamiento disponible y un equipo de desarrollo ágil formado por personas capacitadas estaba esperando para comenzar el trabajo. Con todo el apoyo de los esponsores, financiamiento y la gente adecuada para el trabajo, en medio de un maravilloso acto inaugural el proyecto despegó.

Si tan sólo fuera tan simple.

Comenzar un proyecto es, a menudo, un proceso largo y difícil, que involucra el tener que realizar maniobras políticas durante meses,incluso años. Las organizaciones tienen recursos limitados y muchas alternativas en las cuales invertir esos recursos. Como resultado, se debe elegir inteligentemente cuando se trata de decidir que proyecto de IT comenzar, particularmente si se desea maximizar el ROI de los esponsores. Esto es cierto para todos los proyectos de IT, incluyendo los ágiles.

Un concepto común en la comunidad ágil es el de Iteración Cero, llamado 'Sprint 0' por Scrum, que está descripto en mi artículo Iniciando un proyecto ágil. Durante esta iteración se organiza el equipo de trabajo del proyecto. También se genera una visión inicial de los requerimientos con el objetivo de entender el alcance, y más importante, guiar a la miríada de esponsores hacia ese alcance y hacia un manejo de sus necesidades concurrentes razonable. También se realiza cierta arquitectura de alto nivel para identificar las posibles estrategias técnicas. En paralelo, se está incorporando gente al equipo, configurando los puestos de trabajo, haciendo una planificación inicial y cualquier cosa que se requiera para iniciar el proceso. Estas actividades son todas importantes, pero todas presuponen que alguien ha decidido llevar adelante el proyecto. Entonces, esta 'primera' iteración, que hemos agregado a la mayoría de los métodos ágiles una vez que nuestro entusiasmo disminuyó y nos dimos cuenta que había algo más que construcción en un proyecto de desarrollo de software, no es, en realidad, la primera iteración después de todo, porque hay trabajo antes de que la iteración cero comience. Para mantener el esquema de numeración coherente, llamemosla Iteración -1 ("Sprint -1" para los scrummers entre nosotros)

La Iteración -1, que popularizó Mike Vizdos, de Implementing Scrum, es lo que yo llamo la fase de preconcepción en el Enterprice Unified Process (EUP). El EUP se extiende por todo el ciclo de desarrollo del sistema (system development lifecycle, SDLC por sus siglas en inglés) para incluir todo el ciclo de vida del proyecto. La imagen más abajo muestra el ciclo de vida completo para gestión ágil dentro de organizaciones de IT, mostrando las diferencias en el alcance de las metodologías. Las metodologías de desarrollo de software (SDLC) se centran en desarrollar una release de un sistema, mientras que el ciclo de vida del sistema se centra en el ciclo de vida completo del sistema, desde el concepto inicial hasta que es retirado de producción. El ciclo de vida de IT incluye todas las actividades relacionadas con todos los sistemas de una organización, agregando cuestiones que abarcan toda la organización como gestión de cartera de clientes, arquitectura global de la organización y reutilización.


Traducido de Iteration Negative One, por Scott Ambler.

Inspiración.

"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana cada uno. Pero si tú tienes una idea y yo tengo una idea, e intercambiamos las ideas, entonces ambos tendremos dos ideas"

Bernard Shaw