2. UNITEC
2
Las principales causas de los fracasos de los proyectos
Separación de objetivos y negocios
Separación de negocios y tecnología
Carencia de lenguaje y proceso comunes
Falla al comunicar y actuar como equipo
Procesos que son inflexibles a los cambios
“Cuando un proyecto falla rara vez es por cuestiones técnicas”
Jim Johnson , The Standish Group
3. UNITEC
3
¿Qué es la Agilidad?
Es una Cultura basada en
Principios
Valores
Prácticas
¿En que nos enfocamos?
La creación constante de valor en un entorno incierto a partir del aprendizaje colaborativo entre las personas Clientes, desarrolladores, usuarios, expertos.
4. UNITEC
4
Desarrollo ágil: El proyecto se desglosa en iteraciones de tiempo relativamente cortas. Desde las primeras iteraciones, el énfasis es producir funcionalidad operativa real, a pesar de que la nueva versión de software puede no siempre coincidir con la realización de un incremento. En los primeros incrementos, es posible usar un enfoque de bala trazadora, en la cual una pieza de funcionalidad es desarrollada en una forma consistente con el enfoque y la arquitectura de desarrollo pretendida. La funcionalidad se extiende desde la interfaz de usuario, a través de las capas intermedias, hasta los datos almacenados y de regreso. Una vez que se ha obtenido confianza en la pretendida arquitectura, el foco en las iteraciones posteriores se cambia a entregar la funcionalidad con el mayor rendimiento sobre la inversión.
5. UNITEC
5
Objetivos de la gestión ágil
Valor La gestión ágil es necesaria en mercados rápidos. Su objetivo es dar el mayor valor posible al producto; y en el mercado en el que trabaja, este valor es directamente proporcional a la respuesta que pueda ofrecer en: Innovación. Flexibilidad.
Reducción de tiempo de desarrollo Las estrategias son: Solapamiento de las fases de desarrollo y entrega temprana de los primeros incrementos funcionales de producto (partes que con mayor urgencia necesita el cliente) para lanzar la primera versión de producto.
Agilidad Capacidad para adaptar el curso del desarrollo a la evolución de los requisitos y a las circunstancias del entorno.
Fiabilidad La gestión ágil no tiene un carácter predictivo o de anticipación. No conoce de antemano el detalle del producto o servicio que va a desarrollar; por eso su objetivo no es la fiabilidad en el cumplimiento de los planes, sino en el valor del resultado y el tiempo de salida al mercado.
6. UNITEC
6
En 2001, Kent Beck y otros autores de enfoques similares proponen los Principios Ágiles
1.La capacidad de respuesta al cambio, sobre el seguimiento de un plan.
2.Los Productos que funcionan frente a especificaciones y documentaciones innecesarias.
3.La colaboración con el cliente frente a la negociación contractual.
4.A las personas y su interacción por encima de los procesos y las herramientas.
Principios ágiles 2001
7. UNITEC
7
Software Craftmanship http://manifesto.softwarecraftmanship.org/
Manifiesto sale a la luz Marzo de 2009
Busca devolver la excelencia técnica al rango de pilar del movimiento ágil.
Manifiesto ágil 2009
No sólo
Individuos e interacciones
Sino que
Una comunidad de profesionales
Software funcional
Software bien hecho
Colaboración con el cliente
Sociedades productivas
Responder al cambio
Constantemente agregar valor
8. UNITEC
8
Metodologías Ágiles
Metodologías Tradicionales
Basadas en heurísticas provenientes de prácticas de producción de código
Basadas en normas provenientes de estándares seguidos por el entorno de desarrollo
Especialmente preparados para cambios durante el proyecto
Cierta resistencia a los cambios
Impuestas internamente (por el equipo)
Impuestas externamente
Proceso menos controlado, con pocos principios
Proceso mucho más controlado, con numerosas políticas/normas
No existe contrato tradicional o al menos es bastante flexible
Existe un contrato prefijado
El cliente es parte del equipo de desarrollo
El cliente interactúa con el equipo de desarrollo mediante reuniones
Grupos pequeños (<10 integrantes) y trabajando en el mismo sitio
Grupos grandes y posiblemente distribuidos
Pocos artefactos
Más artefactos
Pocos roles
Más roles
Menos énfasis en la arquitectura del software
La arquitectura del software es esencial y se expresa mediante modelos
Diferencias entre metodologías
9. UNITEC
9
Características comunes
Los procesos de desarrollo ágil tienen un número de características comunes:
El uso de pequeños subproyectos o iteraciones subordinadas de caja de tiempo al final del cual se entrega la funcionalidad desarrollada. Cada iteración forma la base para planificar la siguiente iteración.
Volver a planificar el proyecto al final de cada iteración ( a lo que se ha llamado un “Sprint” en Scrum) incluyendo los requerimientos de nuevas prioridades, identificando cualquier nuevo requerimiento y determinando en cual versión de funcionalidad debe ser implementada.
Confianza relativamente mayor en comparación con los métodos tradicionales sobre conocimiento tácito
10. UNITEC
10
Características comunes (cont…)
Una fuerte influencia sobre los mecanismos para diseminar efectivamente los conocimientos tácitos y promover el trabajo en equipo. De ahí que, los equipos son mantenidos pequeño en tamaño, incluyendo tanto representantes de negocios como representantes técnicos los cuales están ubicados físicamente juntos., Reuniones de equipos diariamente pero con estrictos límites de tiempo.
Al menos algunos de los métodos ágiles , estipulan una programación en pareja (dos personas codifican la misma parte del sistema) como un medio de compartir los conocimientos y como una verificación de calidad.
Un cambio en la función/rol del gerente de proyecto, desde una función primordialmente dedicada a la planificación del proyecto , asignando tareas y monitoreando el progreso hacia la de un facilitador y defensor. La responsabilidad de planificar y controlar es delegada a los miembros del equipo.
11. UNITEC
11
Estructura del desarrollo ágil
El esquema de desarrollo está formado por cinco fases:
1.Concepto
2.Especulación
3.Exploración
4.Revisión
5.Cierre
12. UNITEC
12
Principales modelos de gestión ágil 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
Se encuentran agrupadas en la organización Agile Alliance (www.agilealliance.org) para promocionar y difundir su conocimiento.
13. UNITEC
13
Principales modelos de gestión ágil
MÉTODOS QUE SE CENTRAN EN LA GESTIÓN DE PROYECTOS ASD - Adaptive Software Development AUP - Agile Unified Process Crystal DSDM - Dynamic Systems Development Method Scrum XBreed