Subido por Jean Sagot

2009-06-CharlaPreparaticAgil

Anuncio
Metodologías Ágiles: Scrum y
técnicas de estimación ágil
PreparaTIC - Junio 2009
Jorge Manrubia Díez
jorge.manrubia@giss.seg-social.es
¿Por qué?
Hacer un programa es cómo...
Can you get a design that is capable of turning the
coding into a predictable construction activity?
And if so, is cost of doing this sufficiently small to
make this approach worthwhile?
Martin Fowler, “The new methodology” (2005)
They were amazed that my industry (software
development) was trying to do its work using a
completely inappropriate process control model. (...)
They said that all complex processes that weren’t
completely understood required the emprical
model (not the defined process control
model)
Conclusiones de expertos en teoría de control de procesos
liderados por Babatunde Organnaike tras analizar los
procesos de desarrollo software. Ken Schwaber, “Agile
Software Development with Scrum” (2001)
Diseño del Sistema de Información
© Ministerio de Administraciones Públicas
DISEÑO DEL SISTEMA DE INFORMACIÓN (ORIENTACIÓN A OBJETOS)
Resultados del Análisis
Resultados del Análisis
de
deSistema
Sistemade
de
Información
Información
(Orientación a Objetos)
(Orientación a Objetos)
- Catálogo de Requisitos
- Catálogo de Requisitos
- Contexto del Sistema
- Contexto del Sistema
- Modelo de Casos de Uso
- Modelo de Casos de Uso
- Modelo de Clases de
- Modelo de Clases de
Análisis
Análisis
- Modelo de Procesos
- Modelo de Procesos
- Descripción de
- Descripción de
subsistemas
subsistemas
- Resultado del Análisis de
- Resultado del Análisis de
Consistencia
Consistencia
- Interfaz de usuario
- Interfaz de usuario
- Plan de Pruebas
- Plan de Pruebas
Especificación de
Especificación de
Requisitos Software (ERS)
Requisitos Software (ERS)
DSI 1
DSI 2
DSI 8
DSI 3
DSI 7
DSI 4
DSI 10
DSI 6
Metodología MÉTRICA Versión 3
Entradas
EntradasExternas
Externas
- -Estándares
Estándaresyy
normativas de la
normativas de la
instalación
instalación
- Características
- Características
Específicas del SGBD
Específicas del SGBD
o Sistemas de Ficheros
o Sistemas de Ficheros
a Utilizar
a Utilizar
- Estructura de Datos del
- Estructura de Datos del
Sistema Origen
Sistema Origen
DSI 9
DSI 11
DSI 12
- Diseño de la Arquitectura
- Diseño de la Arquitectura
del Sistema
del Sistema
- Entorno Tecnológico,
- Entorno Tecnológico,
Seguridad, Operación y
Seguridad, Operación y
Administración
Administración
- Diseño Detallado de
- Diseño Detallado de
Subsistemas
Subsistemas
- Diseño de la Realización
- Diseño de la Realización
de Casos de Uso
de Casos de Uso
- Diseño de la Interfaz de
- Diseño de la Interfaz de
Usuario
Usuario
- Modelos de Clases de
- Modelos de Clases de
Diseño
Diseño
- Modelo Físico de Datos
- Modelo Físico de Datos
- Resultado Análisis de
- Resultado Análisis de
Consistencia
Consistencia
- Especificaciones de
- Especificaciones de
Construcción
Construcción
- Plan de Migración y
- Plan de Migración y
Carga inicial
Carga inicial
- Especificación del
- Especificación del
Entorno, Niveles y
Entorno, Niveles y
Planificación de las
Planificación de las
Pruebas
Pruebas
- Requisitos de
- Requisitos de
Implantación
Implantación
CONSTRUCCIÓN
CONSTRUCCIÓN
DEL SISTEMA DE
DEL SISTEMA DE
INFORMACIÓN
INFORMACIÓN
6
Adaptación continua
del proceso
+
Excelencia técnica
Desarrollo ágil: lo que no es
Ágil
Esfuerzo de planificación
Tradicional
Tiempo
El propio proceso se adapta durante el
desarrollo
•
Liberación temprana y continua del
software de software funcional
•
Integración total de la gente de negocio
en los equipos de desarrollo
•
Excelencia técnica, buenos diseños y
simplicidad
•
•
Reuniones cara a cara, comunicación oral
Autoorganización de los equipos de
desarrollo
...
http://agilemanifesto.org/principles.html
SCRUM y Técnicas de
Estimación Ágil
Scrum
• Creada por Ken Schawber, Mike Beedle y
Jeff Sutherland (mediados de los 90)
• Equipos de ~7 personas
• Iteraciones (sprints) de 30 días
Roles
• Product Owner: representa al cliente
• Scrum Master (50% desarrollador)
• Scrum Team
• Chicken (otros)
DESARROLLO
(CICLO DE SPRINTS)
PREGAME
POSTGAME
- Documentación
- Product Backlog
de usuario
Inicial
- Material de
Daily Meeting
- Release Backlog
formación
- Diseño alto
nivel/arquitectura
- ...
1 día
Product Backlog
Sprint: 1 mes
Sprint Backlog
DEFINIDO
Sprint Planning
Sprint Review
Meeting
Meeting
EMPÍRICO
DEFINIDO
Backlogs
Descripción
Lista priorizada de
Product
funcionalidades de negocio
Backlog
y técnicas a desarrollar
Items
Estimación
•User stories
•Características
•Bugs
Story points
Sprint Selección de items del PB y
Tareas
•
Backlog tareas para desarrollarlos
Horas
Historias de usuario
Descripción escrita de una funcionalidad
concreta a desarrollar
Como <tipo de usuario> quiero <poder
hacer algo>
Como desarrollador quiero poder transformar
un modelo físico obtenido de ADABAS a un
modelo lógico
Como desarrollador quiero poder transformar un modelo físico
obtenido de ADABAS a un modelo logico
epic
Como desarrollador quiero poder transformar un modelo físico
obtenido de ADABAS traduciendo sólo las estructuras
relacionales
Como desarrollador quiero poder transformar un modelo físico
obtenido de ADABAS admitiendo campos múltiples
Como desarrollador quiero poder transformar un modelo físico
obtenido de ADABAS admitiendo campos periódicos
theme
Estimación de Tamaño
≠
Estimación de Duración
Story Point = Esfuerzo necesario +
complejidad + riesgo ...
¿Cuánto miden?
¿Quién es más alto?
1, 2, 3, 5, 8, 13, 20, 30,
50, 100
Escala de estimación
Planning Poker
•
La historia se presenta y se discute
sobre ella
•
Los miembros del equipo escogen
carta con la estimación
•
Todos dan la vuelta a la carta a la vez
•
Los miembros con la estimación más
baja y más alta exponen sus razones, y
se repite el proceso de estimación
Velocidad del equipo =
Story points / iteración
Estimación
de Tamaño
Velocidad
Estimación de
Duración
Características
Deseadas
Estimar
tamaño
Estimar
duración
PLANIFICACIÓN
2
Historia 2
3
Historia 3
3
Historia 4
2
Historia 5
5
Historia 6
2
Historia 7
1
Historia 8
8
2
Historia 2
3
Historia 3
3
Sprint Backlog 1
Historia 4
2
Historia 5
5
Historia 6
2
Sprint Backlog 2
Product Backlog
Velocidad = 8 story points /
iteración
Historia 7
1
HIstoria 8
8
Sprint Backlog 3
Tiempo
Historia 1
Historia 1
Las historias seleccionadas para el sprint se
desglosan en tareas (estimación en horas)
Diariamente los
desarrolladores actualizan su
estimación de esfuerzo restante
Realidad
Story Points
Ideal (predictivo)
Tiempo
Gráfico de avance del proyecto (Release
Burndown Chart)
Gráfico de avance del sprint (Iteration
Burndown Chart)
Daily meeting
• ¿Qué has hecho desde ayer?
• ¿Qué vas a hacer hoy?
• ¿Qué problemas tienes?
15 min. máximo
Excelencia técnica
Pruebas
•
•
Exhaustivas
Automáticas
Pruebas automáticas
¿Cuánto? → Herramientas
de cobertura de código
(code coverage)
Refactoring = mejora
continua y temprana
del diseño del código
Integración continua
Acomete cambios
eMac
Supervisa
Desarrollador 1
Construye
Acomete Cambios
G4
Servidor
SCM
Servidor de G3
integración
(CVS)
Continua
(Hudson)
eMac
Desarrollador 2
Feedback
Construcción = Construcción + Tests +
Despliegue
Y para el cuarto...
¡¡¡Yo nunca usaría
Métrica!!!
Diferenciarse
↓
No aburrir
Sin pasarse
Proceso de Desarrollo
Elemento
Ejemplos
•Iteraciones cortas, completas
•Niveles de planificación: de lanzamiento,
Descripción del proceso
Configuración del equipo
de desarrollo
de iteración, diario
•Planificación priorizada
•Historias de usuario, story points,
velocidad
•Implicación del cliente
Aspectos técnicos
Elemento
Ejemplos
Uso de un servidor de
integración continua
•Detección temprana de errores
•Software siempre listo para desplegar
Pruebas automáticas
•Exhaustividad
•Automatización de tests de aceptación
Uso de herramienta de
cobertura de código
Uso de herramientas de
análisis de código
•Definición de umbrales de cobertura a
exigir: ejemplo, 90% código cubierto
•Detección de código sin documentar
•Nombres de identificadores con tamaño
suficiente
•Detección de métodos demasiado largos
Referencias
Agile Estimating and Planning. Mike Cohn. Prentice Hall, 2005
Agile Software Development with Scrum. Ken Schwaber. Prentice
Hall, 2001
The art of Agile Development. James Shore and Shane Warden.
Prentice Hall, 2007
User Stories Applied: For Agile Software Development. Mike Cohn.
Addison-Wesley Professional, 2004
Descargar