Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Agenda
Motivación
Desarrollo Iterativo
Planeación iterativa dirigida por los
riesgos y por el cliente
El principio de “Time boxing”
Desarrollo evolutivo y adaptativo
Entrega incremental
Entrega evolutiva
Los errores más comunes
2
Desarrollo y construcción “predecible”
3
Desarrollo y Construcción “No
Predecible”
En contraste
Suponga que una persona desea construir una casa “a la
medida”. Requiere utilizar materiales y métodos
ecológicos, pero no está segura al 100% de lo que
desea.
Cambia o clarifica sus decisiones conforme pasa el tiempo
4
al ver la casa y considerar sus costos
Desarrollar Software es “Desarrollar
nuevos productos”
+ Predictibilidad de proyectos -
Desarrollo de nuevos
Manufactura en masa o productos o proyectos con
Manufactura alto nivel de inventiva:
predecible:
Alto grado de novedad,
Niveles bajos de cambio o creatividad y cambio sin
novedad con altos niveles experiencia previa de casos
de creación idéntica o casi idénticos a partir de los
idéntica cuales estimar o derivar
planes confiables 5
Proyectos predecibles y no predecibles
P. Predecibles P. No predecibles
6
¿En que categoría cae el software?
Desarrollar software no es un
problema de manufactura en masa o
predecible
7
Si esto no convence …
9
Considere el enfoque de “cascada”
10
Ejercicio: ¿Por qué estimaciones
predictivas fallan?
11
¿Por qué estimaciones predictivas
fallan?
12
¿Por qué estas estimaciones
predictivas de estimación fallan?
13
La motivación de los Métodos Ágiles
14
Pero también son motivados por el
deseo de competir y ganar
15
Pero también son motivados por el
deseo de competir y ganar
Goldman y Preiss en su
libro Agile competitors and
Virtual Organizations:
Strategies for Enriching the
Customer nos enseñan:
16
Recursos Web
www.agilealliance.org
www.bradapp.com
alistair.cockburn.us
www.martinfowler.com
www.mountaingoatsoftware.com
17
Agenda
Motivación
Desarrollo Iterativo
Planeación iterativa dirigida por los
riesgos y por el cliente
El principio de “Time boxing”
Desarrollo evolutivo y adaptativo
Entrega incremental
Entrega evolutiva
Los errores más comunes
18
Desarrollo iterativo
Los métodos ágiles son un enfoque para
construir software (o cualquier cosa) en
un ciclo de vida compuesto por varias
iteraciones en secuencia.
Cada iteración es un mini-proyecto
auto-contenido compuesto por
actividades como análisis de requisitos,
diseño, programación y pruebas.
Los métodos ágiles son un subconjunto
de los métodos iterativos y evolutivos.
19
Desarrollo iterativo
El objetivo final de una iteración es
obtener un release de iteración: un
sistema parcial estable, integrado y
probado.
Es decir: Todo el software a través de
todos los equipos de desarrollo se integra
en un release en cada iteración.
Los release pueden ser internos (para el
equipo de desarrollo) o externos (para
el cliente).
20
Desarrollo iterativo e incremental
(IID)
La retroalimentación (feedback) de la iteración N dirige el
refinamiento y adaptación de los requisitos y el diseño en la
iteración N+1
feedback feedback
21
Longitud de las iteraciones
22
Disciplinas a través de las iteraciones
A four-week iteration (for example).
A mini-project that includes work in most Note that
disciplines, ending in a stable executable. although an
iteration includes
work in most
Sample disciplines, the
UP Disciplines relative effort and
emphasis change
Business Modeling over time.
Focus
of this Requirements This example is
book suggestive, not
Design literal.
Implementation
Test
Deployment
Project Management
Environment
Iterations
24
Planeación iterativa dirigida por el
cliente y por el riesgo
25
Planeación iterativa dirigida por el
cliente y por el riesgo
27
Planeación iterativa dirigida por el
cliente y por el riesgo
28
Planeación iterativa dirigida por el
cliente y por el riesgo
29
Agenda
Motivación
Desarrollo Iterativo
Planeación iterativa dirigida por los
riesgos y por el cliente
El principio de “Time boxing”
Desarrollo evolutivo y adaptativo
Entrega incremental
Entrega evolutiva
Los errores más comunes
30
Ejercicio-El principio de Timeboxing
31
El principio de TimeBoxing
Timeboxing:
Es la práctica de mantener fija la fecha final
de la iteración y no permitir cambios.
Este principio debería aplicar también para la
fecha final de todo el proyecto.
Si eventualmente sucediera que las
solicitudes hechas (ámbito) para una
iteración no puedan satisfacerse dentro del
timebox, entonces en lugar de cambiar la
fecha final, el alcance se reduce
(colocando las prioridades de más bajo
riesgo al final de la lista de “deseos”).
32
El principio de TimeBoxing
33
Longitud del TimeBox
34
Longitud del TimeBox
Se ha demostrado que Pasos cortos
ofrecen:
Menor complejidad.
Menor riesgo.
Mejor retroalimentación.
Más alta productividad.
Mayor tasa de razón de éxito.
Todos los métodos modernos (incluyendo
Scrum o XP o UP) requieren o
recomiendan aplicar Timeboxing a las
iteraciones.
35
TimeBoxing
Ámbito
(tareas) Tiempo Tiempo, ámbito, recursos
y calidad son las 4
variables comunes con las
que se puede jugar en un
Proyecto proyecto.
Timeboxing remueve el
tiempo de estas opciones
durante una iteración
Calidad Recurso ¡Recuerde el “Iron
(gente) Triangle”!
36
Beneficios del Time-Boxing
Enfoque: El enfoque psicológico que
promueve una fecha de terminación fija
de 3 semanas es muy diferente al que
promueve una de 3 meses.
Timeboxing es un antídoto a la Ley de
Parkinson: “El trabajo se expande para
ocupar todo el tiempo disponible”
Las personas recuerdan más fechas
postergadas que características
postergadas: es un capricho de la
naturaleza humana.
37
Beneficios del Time-Boxing
Obliga a atacar niveles pequeños de
complejidad: la investigación ha
demostrado que pasos de complejidad
baja se realizan más productivamente.
Obliga a tomar decisiones difíciles y
de compensación tempranamente: se
obliga a ser realista en lo que se hará y
en lo que no se hará. Obliga al manejo
de prioridades.
38
Durante la iteración, ningún cambio de
los Stakeholder externos
No se permite que el
Administrador del producto (o algún
otro stakeholder) diga:
“¿Pueden hacer esto también?”
Deberá esperar a la siguiente iteración.
Sin embargo, el equipo puede reducir
el alcance de la iteración si a la
fecha final del Timebox no es posible su
implementación completa.
40
Agenda
Motivación
Desarrollo Iterativo
Planeación iterativa dirigida por los
riesgos y por el cliente
El principio de “Time boxing”
Desarrollo evolutivo y adaptativo
Entrega incremental
Entrega evolutiva
Los errores más comunes
41
Desarrollo evolutivo y adaptativo
Desarrollo iterativo evolutivo:
Los requisitos, planes, estimaciones y
soluciones evolucionan o se refinan en el
transcurso de las iteraciones.
En lugar de ser completamente definidos o
“congelados” en un esfuerzo mayúsculo de
especificación antes de que el desarrollo
iterativo empiece.
42
Desarrollo evolutivo y adaptativo
Desarrollo adaptativo:
Es un término relacionado con
evolutivo.
Implica que los elementos se adaptan
en respuesta al “feedback” del trabajo
anterior –”feedback” de usuarios,
testers, desarrolladores, etc.
La intención es la misma que en el desarrollo
evolutivo, pero el nombre sugiere un mecanismo
más fuerte de repuesta-feedback en la
evolución.
43
Análisis evolutivo de los requisitos
1 2 3 4 5 ... 20
requirements workshops
requirements
requirements
software
software
In evolutionary iterative
development, the
requirements evolve
over a set of the early
iterations, through a
series of requirements
90% 90%
workshops (for
example). Perhaps
after four iterations and
50%
workshops, 90% of the
requirements are 30%
defined and refined. 20% 20%
5% 8% 10%
Nevertheless, only 2%
10% of the software is
Iteration 1 Iteration 2 Iteration 3 Iteration 4 Iteration 5
built.
a 3-week iteration
kickoff meeting team agile start de-scope final check-in demo and next
clarifying iteration modeling & coding & iteration and code- 2-day iteration
goals with the team. design, testing goals if freeze for the requirements planning
1 hour UML too much iteration workshop meeting;
whiteboard work baseline 2 hours
sketching.
5 hours Most OOA/D and
Use-case modeling
applying UML during
during the workshop
this period 45
Planeación evolutiva y adaptativa
Igual que con los requisitos, en la
planeación adaptativa y evolutiva no se
trata de que los estimados y fechas se
desconozcan por siempre.
Esto es, debido a que los primeros requisitos
son muy cambiantes (y a otros factores),
existe una fase inicial de alto nivel de
incertidumbre, la cual declinará conforme el
tiempo avance y la información se acumule.
Esto ha sido llamado el cono de
incertidumbre. Steve McConnell's Software
Project Survival Guide (Microsoft Press, 1998,
ISBN: 1-57231-621-7)
46
El Cono de Incertidumbre
La respuesta iterativa a la
incertidumbre es postergar los
estimados semi-confiables de
costo, esfuerzo o tiempo hasta
que unas pocas de las iteraciones
han pasado. Razonablemente un
10% o 20% del proyecto.
48
Contratos de precio fijo
50
Contrato de dos fases
51
Agenda
Motivación
Desarrollo Iterativo
Planeación iterativa dirigida por los
riesgos y por el cliente
El principio de “Time boxing”
Desarrollo evolutivo y adaptativo
Entrega incremental
Entrega evolutiva
Los errores más comunes
53
Entrega incremental
56
Entrega evolutiva
En la Entrega Incremental hay un plan
definido para las entregas futuras (el
“feedback” no conduce el plan de
entregas).
En la Entrega Evolutiva no hay plan (o al
menos no uno fijo) de entregas futuras;
cada una es creada dinámicamente en base
a la información que va surgiendo.
58
Agenda
Motivación
Desarrollo Iterativo
Planeación iterativa dirigida por los
riesgos y por el cliente
El principio de “Time boxing”
Desarrollo evolutivo y adaptativo
Entrega incremental
Entrega evolutiva
Los errores más comunes
59
El error más común
Líderes de proceso iterativos y ágiles
continuamente se encuentran en escenarios así:
Líder: Seguro, nosotros no aplicaremos la cascada-
ya sabemos que no funciona. Adoptaremos el
método <X> y estamos ante nuestro primer
proyecto. Ya hemos estado trabajando durante
dos meses y hemos terminado prácticamente el
análisis de los casos de uso y la planificación y
programación de lo que iremos haciendo en cada
iteración. Después de revisar y aprobar los
requisitos finales y la programación de
iteraciones, empezaremos a programar …
Ups !
60
El error más común
61
Métodos iterativos
62
Métodos iterativos
Ejemplos:
Evo (el primero, inició en los 1960s)
UP (desarrollado a mediados de los 1990s)
Microsoft Solutions Framework. (una
descripción de las mejores prácticas usadas
por Microsoft)
OPEN de Henderson-Sellers, FireSmith y
Graham
Modelo de espiral WinWin o Modelo de espiral
MBASE de Barry Bohem.
63
Lecturas recomendadas
Rapid Devlopment- The Mythical Man-
Steve McConell. Month-Frederick
Examina variaciones del Brooks. La edición de
desarrollo iterativo. plata de este clásico
discute las ventajas
de IID, además de
muchas otros temas
muy interesantes
64