Lean
Agile
Scrum
Desarrollo ágil de software, Scrum
Desarrollo de
Software
Pablo Lischinsky @pablolis
Pablo Lischinsky - Evolución Ágil C.A. 2014 �
Agenda
Antecedentes y motivación
Agilidad y el Agile Manifesto
Framework Scrum
Manejo de requisitos: User Stories y Backlog
Cómo comenzar
Referencias
Pablo Lischinsky - Evolución Ágil C.A. 2014 �
Redefiniendo el éxito de un proyecto
Técnico
Organizacional
Personal
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Redefiniendo el éxito de un proyecto ¿A quiénes impacta? Cliente Usuarios, Interesados Equipo de desarrollo Organización
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Project Success Sliders (Mike Cohn) http://www.mountaingoatsoftware.com/tools/project-success
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Takeuchi y Nonaka, HBR,
1986
SCRUM
Priorización/Pareto
Desarrollo de software
iterativo e incremental
Timeboxing
Built-in instability Self-organizing teams Overlapping development phases Multilearning Subtle control Organizational transfer of learning
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
O principio del 80/20
Priorización y el principio de Pareto
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
20% causas 80% efectos
Never 45%
Always 7%
Often 13%
Sometimes 16%
Rarely 19%
Funcionalidades utilizadas en un software
El 64% Nunca o rara vez se utiliza
El 20% siempre o frecuentemente se
utiliza Sources: Standish group study reported at XP2002 by Jim Johnson, Chairman
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
¿Cómo llegamos aquí? Buscando resolver la crisis del software nacieron varios métodos: Scrum, eXtreme Programming o XP, DSDM, Crystal Clear, Adaptive SD, etc. 1995 "Scrum Development Process," in OOPSLA Business Object Design and Implementation Workshop, J. Sutherland, K. Schwaber. 2001: Agile Manifesto, 17 firmantes de la industria del software.
Orígenes de la agilidad
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
h=p://www.w4-‐bpm.es/principios-‐manifiesto-‐agil.htm
En lugar de trabajar así
Preferimos así
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
h=p://www.w4-‐bpm.es/principios-‐manifiesto-‐agil.htm
En lugar de trabajar así
Preferimos así
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
¿DoD?
¿DoD?
Agile Manifesto
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Agile Manifesto
www.agilemanifesto.org
Feb 11-13, 2001 Snowbird ski resort, Utah
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
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Manifiesto por el Desarrollo Ágil de Software Estamos descubriendo mejores formas de desarrollar software tanto por nuestra propia experiencia como ayudando a terceros. A través de este trabajo hemos aprendido a valorar:
Individuos e interacciones sobre procesos y herramientas. Software funcionando sobre documentación extensiva. Colaboración con el cliente sobre negociación contractual. Respuesta ante el cambio sobre seguir un plan.
Esto es, aunque valoramos los elementos de la derecha, valoramos más los de la izquierda.
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
1. Nuestra mayor prioridad es satisfacer al cliente mediante la entrega temprana y continua de software con valor.
2. Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos Ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente.
3. Entregamos software funcional frecuentemente, entre dos semanas y un mes, con preferencia al periodo de tiempo más corto posible.
4. Los responsables de negocio y los desarrolladores trabajamos juntos de forma cotidiana durante todo el proyecto.
5. Los proyectos se desarrollan en torno a individuos motivados. Hay que darles el entorno y el apoyo que necesitan, y confiarles la ejecución del trabajo.
6. El método más eficiente y efectivo de comunicar información al equipo de desarrollo y entre sus miembros es la conversación cara a cara.
12 Principios del Manifiesto Ágil
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
7. El software funcionando es la medida principal de progreso.
8. Los procesos ágiles promueven el desarrollo sostenible. Los promotores, desarrolladores y usuarios debemos ser capaces de mantener un ritmo constante de forma indefinida.
9. La atención continua a la excelencia técnica y al buen diseño mejora la agilidad.
10. La simplicidad (el arte de maximizar la cantidad de trabajo no realizado), es esencial.
11. Las mejores arquitecturas, requisitos y diseños emergen de equipos auto-organizados.
12. A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo para a continuación ajustar y perfeccionar su comportamiento en consecuencia.
12 Principios del Manifiesto Ágil
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Valores Ágiles Para trabajar en Agilidad se necesita una base firme de valores que sirvan como fundamento para el proceso y los principios del equipo: Foco Coraje/Valor Apertura Compromiso Respeto Otros valores importantes: Comunicación, Feedback/Retroalimentación, Confianza, Honestidad, Colaboración, Empoderamiento.
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Scrum
http://2.bp.blogspot.com/-SkxCC5L8z40/UXgS3jK_peI/AAAAAAAARII/rflNW7UU4qg/s1600/libro+cocina+craft+de+recetas+laminas+decorativas+hermanas+bolena+1.JPG
Scrum no es …
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Es un marco de trabajo ágil para desarrollar productos y servicios en dominios complejos, con requisitos cambiantes o poco definidos, y donde la innovación, la flexibilidad y la productividad son fundamentales. No es una metodología ni una receta. Hace visible las disfunciones y el desperdicio en las organizaciones.
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Scrum
Scrum Scrum es perverso: simple de entender pero difícil de aplicar y dominar. Se basa en el control empírico de procesos y sus tres pilares: transparencia, inspección y adaptación. Es centrado en las personas y se fundamenta en valores, principios y prácticas. Las prácticas incorporan roles, actividades, artefactos y sus reglas.
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Equipo Scrum, roles:
• Product Owner
• Scrum Master
• Team member
Actividades o Reuniones:
• Sprint
• Sprint Planning
• Daily meeting
• Sprint Review
• Retrospective
Artefactos:
• Product Backlog
• Sprint Backlog
• Increment
Transparencia, inspección y adaptación, efecto emergente: más que la suma de sus partes …
Equipo Scrum
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Equipo Scrum El equipo de trabajo se llama el equipo Scrum y consta de 3 roles: • el Product Owner (PO), responsable de qué es lo que
se va a desarrollar y en qué orden, • el ScrumMaster (SM) es responsable de guiar al
equipo en crear y seguir su propio camino basado en el marco Scrum,
• y el equipo de desarrollo (DT) responsable de determinar cómo entregar lo que el PO demandó
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Equipo Scrum ¿cuál es el objetivo de cada jugador?
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Flujo de trabajo Scrum
TM
SM
PO Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Actividades o reuniones de Scrum
Limitadas en tiempo (timebox) Scrum y la gestión del conocimiento Moderadas por el ScrumMaster Inputs y outputs muy claros ¿Construcción de actas? Dependiendo de las necesidades
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
TM
SM
PO Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Flujo de trabajo Scrum
TM
SM
PO Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Flujo de trabajo Scrum
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Sprint Desarrollo superpuesto, no secuencial
En lugar de trabajar en etapas secuenciales ...
... los equipos Scrum trabajan transversalmente.
Requisitos Diseño Código Test
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Sprint Desarrollo superpuesto, no secuencial
En lugar de trabajar en etapas secuenciales ...
... los equipos Scrum trabajan transversalmente.
Requisitos Diseño Código Test ¿Cómo hacerlo? ¡Apoyándose en las modernas prácticas de la Programación eXtrema – XP! (mañana …)
TM
SM
PO Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Flujo de trabajo Scrum
TM
SM
PO Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Flujo de trabajo Scrum
TM
SM
PO Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Flujo de trabajo Scrum
Equipo de Desarrollo 7±2 integrantes Diverso, multidisciplinario Autosuficiente, responsable de todo el proceso: diseñar, construir y probar el producto Auto-organizado, determina conjuntamente la mejor forma de trabajar Propiedad y responsabilidad colectiva del producto Trabajo de a pares, en espacio común Colaboración, gestión del conocimiento
TM
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
TM
SM
PO Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Flujo de trabajo Scrum
ScrumMaster Guía y mantiene al equipo en el camino de Scrum:
entendimiento de los valores, principios y prácticas. Falicitador: elimina los obstáculos (barreras, impedimentos) Desarrolla y protege al equipo de interferencias externas Se asegura de que Scrum sea implementado correctamente Moderador de las ceremonias Desarrolla siempre sus habilidades de liderazgo Agente de cambio hacia agilidad en la organización. Equivalente al entrenador/coach en equipos deportivos Sin autoridad para ejercer control: líder servil, no PM.
SM
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Flujo de trabajo
TM
SM
PO
Flujo de trabajo Scrum
Product Owner Comprender y compartir la visión del producto Maximizar el ROI Priorizar el Product Backlog Hacer el “grooming” o refinamiento del Product Backlog con el equipo Colaborar con el equipo
Hacer con el equipo el Release Planning Comprender y definir el valor de negocio con los stakeholders Hacer de intermediario entre el equipo y el cliente
Disponible para el equipo y SM, participa en reuniones
PO
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Resumiendo Los proyectos tradicionales son como una bala de cañón.
Supuestos:
http://www.funciones.webs.com/FuncionCuadratica_archivos/image004.jpg
3) Nada va a cambiar a lo largo del camino.
2) Los desarrolladores saben cómo construirla.
1) El cliente sabe lo que quiere.
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Agile es como un misil. Supuestos:
1) El cliente descubre lo que quiere.
3) Las cosas cambian a lo largo del camino.
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
A BDC
Sem1 Sem2 Sem3 Sem4
Timeboxing Plan
A BDC
Sem1 Sem2 Sem3 Sem4 Sem5 Sem6 Sem7 Sem8
Escenario tradicional
-> Entregamos ABCD en 4 semanas A
TP ✗ ✗Q ✗
A
TPQ
Escenario ágil Entregamos producto en cada sprint (2 semanas). No estamos seguros que podemos terminar ABCD en 4 semanas Siempre entregamos los más importante primero.
Sem1 Sem2 Sem3 Sem4 Sem5 Sem6
AA B A B E
Ufff!!!...muy tarde
Teniendo el software, veo que CD no son relevantes,
pero requiero E
Ufff!!!, nuestra velocidad es menor de lo que pensábamos. Parece que sólo terminaremos AB en la sem 4.
¿Qué debemos hacer ahora?
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Beneficios de Scrum ¿Ustedes están satisfechos con los resultados que obtienen actualmente? ¿Creen que entregan suficiente valor a sus clientes, a tiempo, de calidad y dentro de los costos? ¿Y sus equipos de trabajo? ¿Best place to work?
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Métodos tradicionales
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Costo d
el c
ambio
Tiempo
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Tiempo
Scrum Costo d
el c
ambio
Valor entregado/Riesgo
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Beneficios de Scrum Clientes + contentos. Mejor retorno de inversión mediante la entrega temprana y frecuente de versiones. Reducen costos Resultados + rápidos Confianza en tener éxito en un mundo complejo y mas competitivo Equipos mas contentos y motivados, empoderados
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Manejo de Requisitos en Scrum Los métodos secuenciales y Scrum tratan los requisitos de forma muy diferente. Métodos secuenciales: los requerimientos son no-negociables, son detallados de antemano, sin ninguna prioridad y pretenden ser independientes del resto del proceso. Scrum: los detalles de los requerimientos son negociados a través de conversaciones continuas con el cliente. Se van desarrollando según su prioridad, justo a tiempo y sólo lo suficiente para que el equipo comience a desarrollar las funcionalidades respectivas.
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Jerarquía de requisitos por nivel de planificación y granularidad
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Manejo de Requisitos en Scrum: Historias de Usuario Las 3 Cs para escribir Historias de Usuario Card (ficha) Conversation Confirmation
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
<<Descripción>>
Como <Rol>
Deseo <Actividad>
Para <Lograr un objetivo>
ID
Bussines Value points
Story points
Historia de usuario (User Story): Ficha
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Escribir historias de usuario
Como miembro del equipo
Deseo escribir historias de usuario correctamente usando la metáfora 3C Para que el esclarecimiento de los requisitos se dé con la mayor transparencia posible.
Us1
12
8
Historia de usuario (User Story)
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Escribir historias de usuario
Como miembro del equipo
Deseo escribir historias de usuario correctamente usando la metáfora 3C Para que el esclarecimiento de los requisitos se dé con la mayor transparencia posible.
Us1
12
8
Historia de usuario (User Story)
¿Quién?
¿Qué?
¿Por qué?
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Ver lista de oportunidades
Como Gerente Comercial
Deseo ver la Lista de Oportunidades
Para Planear la estrategia comercial
Us1
20
8
Historia de usuario (User Story)
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Criterios de aceptación
Dado que he ingresado al sistema como Gerente Comercial
Cuando estoy en la sección de Oportunidades
Entonces debo ver las oportunidades ingresadas por todos
los asesores
Dado que he ingresado al sistema como Gerente Comercial
Cuando selecciono una Oportunidad
Entonces debo ver el monto y la Probabilidad de cumplimiento
Historia de usuario (User Story) – Reverso Ficha
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Criterios de aceptación
Dado que he ingresado al sistema como Gerente Comercial
Cuando estoy en la sección de Oportunidades
Entonces debo ver las oportunidades ingresadas por todos
los asesores
Dado que he ingresado al sistema como Gerente Comercial
Cuando selecciono una Oportunidad
Entonces debo ver el monto y la Probabilidad de cumplimiento
Historia de usuario (User Story) – Reverso Ficha
¡ATDD!
¡Testers escribiendo HU!
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Criterio INVEST en buenas Historias de Usuario Independientes Negociables Valuables Estimables Small (pequeñas) Testeables
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Product Backlog (Gestión de requisitos)
Product Backlog Items (PBIs): Funcionalidades (features) Defectos Trabajo técnico Formación/capacitación
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Product Backlog (Gestión de requisitos)
PB: DEEP (Roman Pichler) Detallado apropiadamente Estimado Emergente (dinámico) Priorizado
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
-
+Prioridad más detalle, alta granularidad
Poco detalle, desconocido, baja granularidad
Detalle
Product Backlog
GesSón dinámica y priorizada por ROI de los requisitos
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
-
+Prioridad En estado listo o Ready para entrar al sprint backlog
Product Backlog
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Product Backlog
Dinámica de la priorización
El PO pueden re-priorizar los PBIs de acuerdo a las necesidades del cliente o el ROI
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Épica
PBI
PBIListo
PBI
Product Backlog
Refinamiento del Backlog Dinámica de una épica
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
¿Cómo comenzar una transformación hacia la agilidad y Scrum? Con ADAPT (Mike Cohn): 1. Reconocimiento de que hay un problema (Awareness) 2. Deseo de adoptar Scrum para intentar resolver el
problema 3. Capacidad y competencia para tener éxito (Ability) 4. Promoción de Scrum en la organización compartiendo
experiencias y casos de éxito. 5. Transferencia del conocimiento e implicaciones del uso de
Scrum a toda la organización
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
¿Cómo comenzar?
Consensuando un Backlog de cambios: ¡ aplicando Scrum para implementar Scrum !
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
¿Cómo comenzar? Kaizen Kaikaku Scrum Orgánico
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Bibliografía
Essential Scrum, Kenneth Robin ¡ Muy recomendable !
Roman Pichler, Sobre el rol del PO
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Bibliografía
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Bibliografía
• The Scrum Guide, Ken Schwaber and Jeff Sutherland, Scrum.org, 2011
• Do Better Scrum, Peter Hundermark, 2009
• Scrum y XP desde las trincheras, Henrik Kniberg, 2007
• Succeeding with Agile, Mike Cohn, 2010.
• User Stories Applied for Agile Software Development, Mike Cohn, 2004.
• Extreme Programming Explained: Embrace Change, Second Edition, By Kent Beck, Cynthia Andres, 2004.
• Agile Software Development, Robert C. Martin, 2002.
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Otros recursos
• http://www.agilealliance.org/
• http://www.scrumalliance.org/
• http://www.scrum.org/
• http://www.extremeprogramming.org/
• http://www.proyectosagiles.org/
• http://www.mountaingoatsoftware.com/scrum
• http://blog.crisp.se/author/henrikkniberg
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Otros recursos Grupos o comunidades
• Foro-agiles: http://groups.yahoo.com/neo/groups/foro-agiles/
• Agilven: http://groups.google.com/group/agilven y en casi todos los países de LatAm
• Grupos Agiles y Agilven en Linkedin ¡ y muchos otros !
• Koans, Katas, Code Retreats … ¡ Software Craftmanship !
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Pablo Lischinsky @pablolis
[email protected] http://about.me/pablolischinsky pablolischinsky.wordpress.com
Pablo Lischinsky -‐ Evolución Ágil C.A. 2014
Top Related