Scrum y metodologías ágiles
Lic. Alejandra Alfonso
Contexto histórico
1970’s 1980’s 1990’s 2000’s
“Managing the Development of Large Software Systems”,
Winston Royce
Ciclo de vida en cascada
Smalltalk-80, auge diseño orientado a objetos
“New New Product Development Game”, Takeuchi y Nonaka Equipos multi-disciplinarios y
auto-organizados, “scrum”
DoD standard 2167 Cascada y orientado
a documentos Chaos Report 1994Standish Group ,
Reporte DoD 75% de los proyectos analizados fracasados o nunca usados
DoD comienza a utilizar IID “Software Engineering
Economics”, Barry Boehm Costo del cambio
exponencial
Procesos de desarrollo iterativos y livianos
Scrum, XP, DSDM, Crystal
Agile Manifesto
We are uncovering better ways
of developing software by doing
it and helping others do it.
Manifiesto ágil
Kent Beck - Mike Beedle - Arie van Bennekum - Alistair Cockburn - Ward Cunningham Martin Fowler - James Grenning - Jim Highsmith - Andrew Hunt - Ron Jeffries - Jon Kern Brian Marick - Robert C. Martin - Steve Mellor - Ken Schwaber – Jeff Sutherland - Dave Thomas Si bien hay valor en los ítems de la derecha, valoramos más los de la izquierda
Individuos e interacciones
Software funcionando
Colaboración con el cliente
Responder a los cambios
por sobre procesos y herramientas
por sobre documentación exhaustiva
por sobre negociación contractual
Principios ágiles
La principal prioridad es satisfacer al cliente
Aceptar cambios en los requerimientos en todo momento
Realizar entregas de software frecuentes
Asegurar la calidad y la excelencia técnica desde el inicio
cascada
“cowboy
coding”
procesos
8
Costo del cambio
Tiempo
Requerimientos Análisis Diseño Implementación Testing Producción
B.Boehm
Software Engineering Economics
C o st o d e l c a m b
io “A problem that might take a dollar to fix if you found it during requirements analysis
The development of a piece of software changes
its own requirements
-Kent Beck
Tesis ágil Nº1:
10
Costo del cambio “controlado”
Tiempo K.Beck XP Explained C o st o d e l c a m b
io exponential rise in the cost of changing “Under certain circumstances, the
Prácticas claves
Requerimientos evolutivos
Planificación iterativa y adaptativa
Priorización por valor de negocio y por riesgo
Diseño y arquitectura emergentes
Refactoring, test driven development, integración continua, pair programming
Scrum
Framework de administración y control para proyectos de desarrollo de software
Proceso de control empírico: Visibilidad
Inspección
Scrum
Scrum Diario
24 horas
Sprint
1-4 semanas
Planificación de Sprint
Mountain Goat Software (http://www.mountaingoatsoftware.com)
Demo de Sprint
Retrospectiva de Sprint
Product Backlog Sprint Backlog
Incremento de funcionalidad
Visión + ROI
Roles en Scrum
Product Owner
•Representa al cliente o usuario final
•Define prioridades para el negocio
ScrumMaster
•Líder facilitador
•Coach
Equipo
•Inter-disciplinario
Product Backlog
Lista de requerimientos:
Priorizados por valor de negocio
Estimados en tamaño
Más valor
Menos valor
Los ítems menos prioritarios están menos refinados
Sprint 1
Sprint 2
Sprint 3
Product Backlog
Planificación de Sprint
Scrum
Master Equipo
Product
Demo de Sprint
Stakeholders
Versión incremental de la aplicación
El equipo le muestra al PO la funcionalidad terminada durante el
sprint
Otros stakeholders e interesados están invitados a participar y dar
feedback
Retrospectiva
Debe ser “SMART”:
Specific
Measurable Attainable Relevant Timely
Keep
Change
Try
Brainstorming
User Story
Una user story describe una funcionalidad de negocio requerida de forma tal que:
Es importante para el cliente y/o los usuarios
Se pueden escribir casos de test que verifiquen la funcionalidad
Puede ser estimada
Puede ser priorizada
Ejemplos: user stories para Ágiles 2011
Como organizadores, queremos que la sede esté ubicada en un lugar céntrico de la ciudad para que sea simple para
los participantes llegar al evento
Como sponsor P
latinum , quisiera que mi stand que esté ubicado en u
na zona de paso obligad
o para los asistentes, para poder prom
ocionar mis productos y servicios entre ellos
Software
Objetivo
Actividad
Herramienta
Problema a resolver u objetivo del usuario
Actividades que lleva a caboel usuario para alcanzar sus objetivos
Features provistos por la herramienta que soportan las actividades del usuarios
Torta de cumpleaños
Batir huevos
Qué
Quién
Para qué
Estimación ágil
Estimación por tamaño relativo…
… usando unidades abstractas:
Ejemplo
Qué considerar en las estimaciones
Done
User Story
Requerimiento Software funcionando
Velocidad
Velocidad
Trabajo
Bibliografía recomendada
Agile Project Management with Scrum. Ken Schwaber, 2004. Implementing Lean Software Development: From Concept to Cash. M. Poppendieck, T. Poppendieck, 2006.Extreme
Programming
Explained: Embrace Change.
Kent Beck, 2004.
Kanban.
Bibliografía recomendada (cont.)
Agile Testing: A Practical Guide for Testers and Agile Teams.
L. Crispin, J. Gregory, 2009.
Agile Retrospectives: Making Good Teams Great.
E. Derby, D. Larsen, 2006.
Agile Estimating and Planning.
Mike Cohn, 2005.
Bibliografía adicional
User Stories Applied: For Agile Software Development.
Mike Cohn, 2004
Agile & Iterative Development, A Manager’s Guide.
Craig Larman, 2002
Scaling Lean & Agile Development: Thinking and
Organizational Tools for Large-Scale Scrum. C. Larman, B. Vodde, 2008
Succeeding with Agile: Software Development Using
Scrum. Mike Cohn, 2009
Software by Numbers: Low-Risk, High-Return
On-line
Comunidad ágil latinoamericana: www.agiles.org
Scrum: www.scrumalliance.org
Agile Alliance: www.agilealliance.org
Manifiesto ágil: www.agilemanifesto.org
Grupo ScrumDevelopment (inglés):
http://groups.yahoo.com/group/scrumdevelopment/
Foro latinoamericano (español):