|
Si hubiera que determinar cuál es el origen de la gestión ágil de proyectos, a falta de mejor información, habría que situarlo en las prácticas adoptadas en los 80 por empresas como Honda, 3M, Canon, Fuji, Nec, Xerox, hp o Epson para el desarrollo de nuevos productos
La industria del software ha sido la primera en seguir su adopción, y muchos de sus profesionales han documentado y propagado las formas particulares con las que han incorporado los principios de la agildad en sus equipos de trabajo. De esta forma han aparecido en la última década los nombres:
- AD - Agile Database Techniques
- AM - Agile Modeling
- ASD - Adaptive Software Development
- AUP - Agile Unified Process
- Crystal
- FDD - Feature Driven Development
- DSDM - Dynamic Systems Development Method
- Lean Software Development
- Scrum
- TDD - Test-Driven Design
- XBreed
- XP - eXtreme Programming
Éstos son los modelos que se encuentran inscritos en la organización Agile Alliance para promocionar y difundir su conocimiento.
Cada una de ellos expone formas concretas de aplicación de principios ágiles en el desarrollo de software. Algunos determinan cómo realizar las pruebas, o la duración que emplean para desarrollar cada iteración, o el protocolo para realizar las reuniones de trabajo.
Unos métodos cubren áreas concretas de la ingeniería del software (diseño, desarrollo pruebas), como es caso de AD, AM o XP, y otros se centran en la gestión del proyecto.
Éstos últimos son: - ASD - Adaptive Software Development
- AUP - Agile Unified Process
- Crystal
- DSDM - Dynamic Systems Development Method
- Scrum
- XBreed (Agile Enterprise)
Por ejemplo, el principio de desarrollo ágil iterativo e incremental, tiene reflejo en ciclos de 30 días empleados por scrum, o de entre 1 y 4 meses empleado por los modelos Cristal.
Adaptive Software Development es el modelo de implementación de patrones ágiles para de-sarrollo de software, diseñado por Jim Highsmith , que materializa las fases de la gestión ágil de la siguiente forma:
ESPECULACIÓN, compuesta por 5 pasos: 1.- Inicio para determinar la misión del proyecto. 2.- Fijación del marco temporal del proyecto. 3.- Determinación del nº de iteraciones y la duración de cada una. 4.- Definición del objetivo de cada iteración. 5.- Asignación de funcionalidad a cada iteración.
COLABORACIÓN Desarrollo concurrente del trabajo de cons-trucción y gestión del producto
APRENDIZAJE En cada iteración se revisa: - Calidad, con criterios de cliente.
- Calidad, con criterios técnicos.
- Funcionalidad desarrollada
- Estado del proyecto
Las características básicas de ASD son:
- Trabajo orientado y guiado por la misión del proyecto.
- Basado en la funcionalidad
- Desarrollo iterativo
- Desarrollo acotado temporalmente
- Guiado por los riesgos
- Trabajo tolerante al cambio.
Agile Unified Process es una versión simplificada de Rational Unified Process, desarrollada por Scott Amber.
Divide el ciclo de desarrollo en 4 fases:
INCEPCIÓN: identificación del alcance y dimensión del proyecto, propuesta de la arquitectura y del presupuesto del cliente. ELABORACIÓN: Confirmación de la idoneidad de la arquitectura. CONSTRUCCIÓN: Desarrollo incremental del sistema, siguiendo las prioridades funcionales de los implicados. TRANSICIÓN: Validación e implantación del sistema. Concebido por Alistair Cockburn , este modelo no describe una metodología cerrada, sino un conjunto de ellas, junto con los criterios para seleccionar y adecuar la más apropiada al proyecto. Los parámetros para determinarla son la criticidad y el tamaño del sistema que se va a construir.
Los criterios empleados para la medición de estos parámetros son:
Criticidad :dimensión de las pérdidas que ocasionaría un malfuncionamiento del sistema 1 (c): Pérdida de confort o usabilidad. 2 (d): Pérdidas económicas moderadas. 3 (e): Pérdidas económicas graves. 4 (l): Pérdida de vidas humanas.
Estos criterios corresponden a los niveles de integridad de un sistema definidos por el estándar IEEE 1012-1998.
Dimensión. Crystal determina el tamaño del sistema por el nº de personas empleadas en su desarrollo. (6 - 20 - 40 - 80)
Fundamentos de Crystal: - Desarrollo iterativo e incremental.
- Duración máxima de uan iteración: 4 meses. Recomienda duraciones entre 1 y 3 meses.
- Especial énfasis en la importancia de las personas sobre los procesos.
- Especial énfasis en la comunicación directa.
- Modelo abierto a la adaptación e introducción de prácticas de otros modelos ágiles (Extreme Programming, Scrum...)
DSDM es el acrónimo que da nombre a un modelo de procesos para desarrollo de sistemas de software, desarrollado y concebido por el DSDM Consortium , que se fundó en Inglaterra en 1994, y que actualmente tiene presencia en Inglaterra, EE.UU. Benelux, Dinamarca, Francia y Suiza; y con interés y contactos para futuras representaciones en Australia, India y China [...]
Es un modelo que estuvo representado en la firma del Manifiesto Ágil. Arie van Bennekum, firmante del manifiesto, era miembro del consorcio en Benelux, consultor y formador de DSDM.
En 2001, año del Manifiesto Ágil, DSDM publicó la versión 4.1 de su modelo, y se consideró una metodología ágil; y aunque mantuvo las siglas, cambió la denominación original (Dynamis Systems Development Method) por Framework for Business Centred Development.
Procesos del ciclo de desarrollo DSDM
El ciclo de desarrollo de DSDM está compuesto de 5 fases, precedidas de un pre-proyecto y un post-proyecto.
1. Pre-proyecto 2. Estudio de viabilidad 3. Estudio de negocio 4. Iteración de modelado funcional 5. Iteración de diseño y desarrollo 6. Implementación 7. Post-desarrollo
Jeff Suterland en 1993 trabajaba en Easel Corporation (compañía que en los macrojuegos de compras y fusiones se integraría en VMARK, y luego en Informix y finalmente en Ascential Software Corporation). Tras conocer el trabajo de Nonaka y Takeuchi, Jeff identificó paralelismos con la industria del software, y aplicó un modelo de desarrollo ágil, iterativo e incremental para desarrollar y mantener sistemas de software
En 1996 lo presentó junto con Ken Schwaber como proceso formal para gestión del desarrollo de software en OOPSLA 96, con el nombre que Nonaka y Takeuchi habían dado a estos equipos de trabajo: "Scrum", por la comparación que hicieron con los equipos de Rugby
Se basa en el principio ágil de desarrollo iterativo e incremental. Al periodo de trabajo para desarrollar un incremento de producto lo denomina “sprint”, y recomienda una duración de 30 días, si bien pueden contemplarse casos de hasta 60 (según Ken Schwaber, o 45 según Jeff Suterland).
Establece una reunión al inicio de cada sprint para determinar el trabajo que se va a realizar, otra al final para evaluar el resultado, y revisiones diarias que realiza el equipo en su auto-gestión.
También denominado Agile Enterprise. Propuesto por Mike Breedle, que colaboró con Ken Schwaber en la definición de Scrum, es una combinación de Scrum para la gestión del proyecto, y Extreme Programming como prácticas de desarrollo.
Esta es una combinación comúnmente empleada independientemente de su definición como Xbreed que hasta la fecha no ha tenido especial relevancia.
|
Un Saludo