Modelos de Procesos de Gestión y Desarrollo de Software

Preview:

Citation preview

Modelos de Procesos de Gestión y

Desarrollo de SoftwarePatricio Letelier Torresletelier@dsic.upv.es

agilismoatwork.blogspot.comwww.tuneupprocess.com

Departamento Sistemas Informáticos y Computación (DSIC)Universidad Politécnica de Valencia (UPV) - España

2

Introducción al Proceso de Software Modelos de Proceso y Metodologías

Metodologías Tradicionales: Rational Unified Process (RUP) Métodos Ágiles

Gestión Ágil de Requisitos Mejora Continua del Proceso Conclusiones Un Plan de Implantación de Prácticas Ágiles

Contenidos

Scrum + KanbanTeamwork Herramientas para Gestión Ágil Planificación y el Product Backlog Seguimiento

Una ojeada al agilismo Extreme Programming Lean Development Kanban Scrum

3

Introducción al Proceso de Software

5

Contexto

Plazo

Alcance

CostoCalidad

Productividad

6

Ámbitos de mejora en Ingeniería de Software

Herramientas(IDEs, CASE, …)

Proceso(Metodologías)

Notación(Lenguajes)

7

Calidad del Producto Software

ISO/IEC 9126

8

¿Cuánto esfuerzo se ha invertido en un cambio? ¿Cómo se ha distribuido dicho esfuerzo en actividades o agentes? ¿Cuánto re-trabajo se ha producido? ¿Quién, cuándo y qué se decidió respecto de un cambio?¿Qué eventos han afectado nuestro trabajo?

FAQs ¿podemos responderlas ?¿cuánto nos cuesta?

¿En qué tareas estoy participando y en qué estado están? ¿Qué trabajo es el que debería hacer en este momento? ¿Tengo pendiente alguna interacción/comunicación con otros participantes? ¿Cumpliremos con los plazos de entrega? ¿Quién podría encargarse de una nueva tarea?

¿Cuál es el criterio para considerar terminada una actividad?¿Qué cambios se realizan en el producto, tienen dependencias?¿Se está implementando exactamente lo pedido por el cliente? ¿Cuál es la funcionalidad actual del producto y cómo ha evolucionado?

Mejorar e

l

proce

so es

renta

ble,

hazlo!!

9

Modelos de referencia y estándaresCMMI, ISO 9000-3, SPICE, PMBOK

Metodologías TradicionalesRational Unified Process (RUP), Proceso UnificadoMétrica 3

Metodos ÁgilesSCRUMExtreme Programming (XP)…

Modelos y metodologías

10

CMMI: Capability Madurity Model

11

Tiempo de implantación de niveles CMMI

Jornadas Proceso Software

24-Noviembre-2010

Nivel 1 a 2 … 5 mesesNivel 2 a 3 … 19 mesesNivel 3 a 4 … 25 mesesNivel 3 a 5 … 23 meses

12

Adaptar la metodología al contexto

No existe una metodología de software universal. Las características de cada producto/proyecto/equipo exigen que el proceso sea configurable y adaptable.

13

Configuración de la metodología

Kanban

Scrum

XP

RUP

Ad-hoc Plan

DoCheck

Act

Otras metodologías

Ágiles

14

“Just Enough Process”

… Ni muy poco

… Ni mucho

Modelos de Proceso y Metodologías

16

Definiendo “nuestro” modelo de proceso

P

R

D

C

T

D

tiempo

Planificación

Requisitos

Arquitectura & Diseño

Codificación (Programación)

Testing

Despliegue (Deployment)

17

Proceso Secuencial

P R D C T D

tiempo

Mejor es solapar trabajo ¿no? …

18

Proceso en Cascada (Waterfall)

P

R

D

C

T

D

tiempo

19

Planificación y seguimiento usando Diagramas Gantt

Realismo (el cambio y el retrabajo existe!) Desarrollo incremental

+ “Divide y vencerás”

20

Proceso Incremental

P R D

C1 T1

D

tiempo

C2

C3

T2

T3

T

P R

D1 C1 T1

D

tiempo

C2

C3

T2

T3

TD2

D3

¿No es mejor hacer todo incremental ? …

21

… Proceso Incremental

P

R1 D1 C1 T1

D

tiempo

C2

C3

T2

T3

TD2

D3

R2

R3

Pero ¿cómo planificar sin antes saber lo que hay que hacer? …

22

Proceso Incremental con fase de exploración

P

R1 D1 C1 T1

D

tiempo

C2

C3

T2

T3

TD2

D3

R2

R3

R

Validación frecuente → Desarrollo Iterativo …

23

Proceso Iterativo e Incremental

P

R1D1

C1 T1

D

tiempo

R

Fin 1eraIteración

Fin 2daIteración

Fin 3raIteración(Entrega)

InicioConstrucción

D TC2 T2

TP TP

R2D2

C3 T3R3D3

C4 T4R4D4

C5 T5R5D5

C6 T6R6D6

R D C T = Unidad de Trabajo (Work Unit)

y con pruebas de regresión entre iteraciones? …

24

P

R1 D1 C1 T1

D

tiempo

R

Fin 1eraIteración

Fin 2daIteración

Fin 3raIteración(Entrega)

InicioConstrucción

D

TR2 D2 C2 T2

R3 D3 C3 T3T

R4 D4 C4 T4

P

R5 D5 C5 T5

R6 D6 C6 T6

P

T

Pero ¿cómo reflejamos el re

-trabajo

que se producirá debido a la

resolución de defectos? …

25

Modelos de Proceso y Metodologías

Aportan el carácter de disciplina a la Ingeniería de Software

Un modelo de proceso de software es una estrategia global respecto de cómo abordar un proyecto de desarrollo de software

Modelos de proceso de software:Codificar y corregir (code-and-fix)Desarrollo en cascadaDesarrollo evolutivoDesarrollo formal de sistemasDesarrollo basado en reutilizaciónDesarrollo incrementalDesarrollo en espiral

26

¿Qué es una Metodología?

Una metodología define Quién debe hacer Qué, Cuándo y Cómo debe hacerlo

27

… Modelos de Proceso y Metodologías

Las metodologías se basan en alguna combinación de modelos de proceso.

Desde la perspectiva de las técnicas utilizadas para las actividades de análisis, diseño e implementación las metodologías pueden ser clasificadas como: Metodologías Estructuradas o Metodologías Orientadas a Objetos.

Desde la perspectiva de las prácticas utilizadas las metodologías pueden ser clasificadas como: Metodologías Tradicionales o Metodologías Ágiles.

28

Metodologías Estructuradas

Los métodos estructurados comenzaron a desarrollar-se a fines de los 70’s con la Programación Estructurada, luego a mediados de los 70’s aparecieron técnicas para el Diseño primero y luego para el Análisis. Enfocados a implementaciones usando lenguajes de 3ra generación.

Ejemplos de metodologías estructuradas gubernamentales: MERISE (Francia), MÉTRICA 3 (España), SSADM (Reino Unido).

Ejemplos de métodos estructurados en el ámbito académico: Gane & Sarson, Ward & Mellor, Yourdon & DeMarco e Information Engineering.

29

Metodologías Orientadas a Objetos (OO)

Su historia va unida a la evolución de los lenguajes de programación orientada a objeto. En los 60’s SIMULA, en los 70’s Smalltalk-80, la primera versión de C++ por Bjarne Stroustrup en 1981 y actualmente Java, C# y otros. A fines de los 80’s comenzaron a consolidarse algunos métodos Orientadas a Objeto.

En 1995 aparece el Método Unificado, que posteriormente se reorienta para dar lugar al Unified Modeling Language (UML), la notación OO más popular en la actualidad.

Métodos OO con notaciones predecesoras de UML: OOAD (Booch), OOSE (Jacobson), Coad & Yourdon, Shaler & Mellor y OMT (Rumbaugh). Metodologías orientadas a objetos basadas en UML: Rational Unified Process (RUP), OPEN, MÉTRICA 3.

30

Elementos de una Metodología

ProcesoSW

Notación

HerramientasPersonas

ArtefactosRoles

Actividades

Metodologías Tradicionales Rational Unified Process (RUP)

32

Fases y actividades

33

Fases e Hitos (Milestones)

tiempo

Objetivos(Vision)

Arquitectura CapacidadOperacionalInicial

Releasedel Producto

Inception Elaboration Construction Transition

34

Release, Base Line, Generación

ciclo de desarrollo ciclo de evolución

generación(release final de un ciclo de desarrollo)

release(producto al final deuna iteración)

base line(release asociadaa un hito)

35

Elementos en RUP

Workflows (Disciplinas)

Workflows Primarios Business Modeling (Modado del Negocio) Requirements (Requisitos)Analysis & Design (Análisis y Diseño)Implementation (Implementación)Test (Pruebas)Deployment (Despliegue)

Workflows de ApoyoEnvironment (Entorno)Project Management (Gestión del Proyecto)Configuration & Change Management (Gestión de Configuración y Cambios)

36

... Elementos en RUP

Workflow (Disciplina), Workflow Detail, Roles, Actividades y Artefactos

Ejemplo Workflow Detail:Analyse the ProblemWorkflow: Requirements

Actividades

Roles Artefactos

37

Roles, Artefactos y Actividades de RUP

AnalystBusiness-Process Analyst Business DesignerBusiness-Model Reviewer Requirements ReviewerSystem AnalystUse-Case Specifier User-Interface Designer

DeveloperArchitectArchitecture Reviewer Capsule DesignerCode ReviewerDatabase Designer Design ReviewerDesignerImplementer Integrator

Testing professionalTest DesignerTester

Manager Change Control Manager Configuration ManagerDeployment ManagerProcess EngineerProject ManagerProject Reviewer

OtherCourse Developer Graphic ArtistStakeholderSystem AdministratorTechnical WriterTool Specialist

… ……

38

Características Esenciales de RUP

Proceso Dirigido por los Casos de

Uso

Proceso Iterativo e Incremental

Proceso Centrado en la

Arquitectura

39

Proceso dirigido por los Casos de Uso

RequisitosCapturar, definir y validar los casos de uso

Realizar los casos de uso

Verificar que se satisfacen los casos de uso

Análisis & Diseño

Implementación

Pruebas

Casos de Usointegran el

trabajo

40

... Proceso dirigido por los Casos de Uso

Caso de Uso Realización de Análisis Realización de Diseño

Caso de Prueba

X

«trace» «trace»

«trace»«trace»

Pruebas Funcionales

PruebasUnitarias

[The Unified Software Development Process. I. Jacobson, G. Booch and J. Rumbaugh. Addison-Wesley, 1999]

41

... Proceso dirigido por los Casos de Uso

42

Proceso Iterativo e Incremental

El ciclo de vida iterativo se basa en la evolución de prototipos ejecutables que se muestran a los usuarios y clientes

En el ciclo de vida iterativo a cada iteración se reproduce el ciclo de vida en cascada a menor escala

Los objetivos de una iteración se establecen en función de la evaluación de las iteraciones precedentes

43

... Proceso Iterativo e Incremental

Para cada Caso de Uso implementado en la iteración, sus actividades se encadenan en una mini-cascada

Análisis & Diseño Programación

Pruebas

44

… Proceso Iterativo e Incremental

EnfoqueCascada

EnfoqueIterativo eIncremental

45

... Proceso Iterativo e Incremental

Grado de Finalización de Artefactos

46

Proceso Centrado en la Arquitectura

Arquitectura de un sistema es la organización o estructura de sus partes más relevantes

Un arquitectura ejecutable es una implementación parcial del sistema, construida para demostrar algunas funciones y propiedades

RUP establece refinamientos sucesivos de una arquitectura ejecutable, construida como un prototipo evolutivo

Architecture

Inception Elaboration Construction Transition

47

“Cambia el chip”

48

Metodos Ágiles Una ojeada al agilismo

50

Ser Ágil => actuar según el Manifiesto Ágil (2001)

¿cuál es tu interpretación?

agilemanifesto.org

51

Nuestra más alta prioridad es satisfacer al cliente a través de entrega de software temprana y continua. Bienvenidos los cambios en los requisito, incluso tardíamente en el desarrollo, even late in development. Los procesos ágiles capturan el cambio para conseguir las ventajas competitivas del cliente. Entregar frecuentemente software funcionando, en períodos de un par de semanas a un par de meses, con preferencia de los períodos más cortos. Gente del negocio y desarrolladores deben trabajar juntos diariamente durante el proyecto. Construir proyectos en torno a individuos motivados. Darles el entorno y apoyo que necesiten, y confiar en ellos para conseguir hacer el trabajo. El método más eficiente y efectivo para transmitir información hacia y dentro de un equipo de desarrollo es la conversación cara-a-cara.

Software funcionando es la medida principal de avance. Los procesos ágiles promueven el desarrollo sostenible. Los promotores, desarrolladores, y usuarios deberían ser capaces de mantener una paz constante indefinida. La atención continua a la excelencia técnica y el buen diseño mejora la agilidad. Simplicidad—el arte de maximizar la cantidad de trabajo NO hecho – es esencial. La mejores arquitecturas, requisitos, y diseños emergen desde equipos auto-organizados. A intervalos regulares, el equipo reflexiona acerca de cómo llegar a ser más efectivo, entonces afina y ajusta su comportamiento según esto.

12 Principios del Manifiesto Ágil

52

Dificultades para implantar metodologías tradicionales. Procesos ceremoniosos, herramientas y notaciones de modelado sofisticadas (UML)El enfoque ágil es una solución a medida para un segmento importante de proyectos de desarrollo de software

“Aceptar el cambio” ...Pugna entre comunidades/gurúsBusiness

¿Por qué surgen las metodologías ágiles?

53

Costo de los Cambios en SW

Costodel

cambio

tiempo

Tradicional

Suposición MAs

54

Technical debt (deuda técnica)

Condiciones cambiantes e impedimentos

Estrategia individual y colectiva

La solución más ambiciosa siempre requiere algún sacrificio. Hay que optimizar el resultado (comportamiento ofrecido por el producto) en términos de los plazos y los recursos.

The Hard Choices Game

55

Tradicional v/s Ágil

56

Metodología Ágil Metodología TradicionalOrientada a proyectos pequeños. Corta duración (o entregas frecuentes), equipos pequeños (< 10 integrantes) y trabajando en el mismo sitio. Posibles problemas de escalabilidad en proyectos “grandes”

Aplicables a proyectos de cualquier tamaño, pero suelen ser especialmente efectivas/usadas en proyectos grandes y con equipos posiblemente dispersos. Posibles problemas de adaptabilidad a proyectos “pequeños”

Pocos Artefactos. El modelado es prescindible, modelos desechables.

Más Artefactos. El modelado es esencial, mantenimiento de modelos

Pocos Roles, más genéricos Más Roles, más específicos

Requiere una relación contractual que se adapte a cambios en Alcance, Recursos y/o Plazos

Suele tenerse un contrato cerrado en cuanto a Alcance, Recursos y Plazo.

Cliente es parte del equipo de desarrollo (además in-situ)

El cliente interactúa con el equipo de desarrollo mediante reuniones programadas

La arquitectura se va definiendo y mejorando a lo largo del proyecto

Se promueve que la arquitectura se defina tempranamente en el proyecto

Énfasis en los aspectos humanos: el individuo y el trabajo en equipo

Énfasis en la definición del proceso: roles, actividades y artefactos

Se esperan cambios durante el proyecto Se espera que no ocurran cambios de gran impacto durante el proyecto

Características Ágiles v/s Tradicionales

57

State of Agile Development (Survey 2010) 1 de 3

http://www.versionone.com/pdf/2010_State_of_Agile_Development_Survey_Results.pdf

58

State of Agile Development (Survey 2010) 2 de 3

http://www.versionone.com/pdf/2010_State_of_Agile_Development_Survey_Results.pdf

59

Los protagonistas

Kanban

Lean Development

Scrum

Extreme Programming

60

¿De qué estamos hablando?

Métodos Ágiles Extreme Programming

62

Historia de XP

Creado por Kent Beck para la plantilla del proyecto C3 en Chrysler

Kent Beck fue contratado para dirigir el proyectoDurante el proceso nació una nueva metodología: eXtreme Programming (XP)C3 concluyó exitosamente en 1997

63

Plantilla sugerida por Mike CohnComo <tipo de usuario>, quiero <algún objetivo> para así <alguna razón>.Ejemplo: “Como usuario del procesador de textos, quiero seleccionar una palabra y especificar que sea itálica, para así poder añadir énfasis a mi escritura”

William Wake, características deseables de una HU INVEST: Independent, Negotiable, Valuable, Estimable, Small, Testable

Ron Jeffries propone “Card, Conversation, Confirmation”Card—La tarjeta de historia es sólo un título (su nombre) Conversation—Los desarrolladores deben preguntar para aclararla. Los representantes del negocio deben preguntar para confirmar que han sido comprendidos. Confirmation—¿Cómo se puede saber si se ha cumplido la historia? Expresar ejemplos concretos y transformar dichos ejemplos en pruebas de aceptación

Ítem ≈ Historia de Usuario

64

Usuario: Autor Nombre: Enviar artículo

Importancia: Muy Alta Urgencia: Media

Riesgo: Medio Esfuerzo Estimado: 4

Descripción: Se introducen los datos del artículo (título, fichero adjunto, resumen, tópicos) y de los autores (nombre, e-mail, afiliación). Uno de los autores debe indicarse como autor de contacto. El sistema confirma la correcta recepción del artículo enviando un e-mail al autor de contacto con un userid y password para que el autor pueda posteriormente acceder al artículo.

Historia de Usuario

65

Boceto de IU para Historia de Usuario

66

Prácticas, Roles y Artefactos de XP

Juego de la planificaciónEntregas pequeñas/frecuentesMetáforaDiseño simple PruebasRefactoringProgramación en parejasPropiedad colectivaIntegración continuaSemana de 40 horasCliente in situEstándares de programación

Stand-up MeetingRoles

ClienteManager (Big Boss)CoachProgramadorTester (Pruebas de Aceptación)Tracker

Historias de UsuarioTareas de ProgramaciónPruebas de AceptaciónPlan de la Release

67

Fase de Exploración

Historias de Usuario

Prioridad RiesgoEsfuerzo (puntos)

Spikes (Prototipos)

DefinirHistorias de Usuario

ElaborarSpikes

Estimar Esfuerzo y Riesgo

Identificar Escenarios/Pruebas de Aceptación

?

68

Fase de Planificación de la Entrega

Historias de Usuario

PrimeraIteración

SegundaIteración

ÚltimaIteración

N-ésimaIteración

Historiasfuera de laentrega

Velocidad de Proyecto (VP)puntos/semana

Entrega<= 3 meses

2 a 3semanas

69

Fase de ConstrucciónTrabajo durante una iteración

Pruebas deAceptación

Programaciónen Parejas

Tareas de Historias dela iteración

Historias de laIteración

Versión delProducto

DiseñoRefactoringProgramaciónPruebas UnitariasIntegraciónPruebas de IntegraciónPruebas de Aceptación

Validacióncontinua porel cliente

70

Esquema de proyecto XP

Métodos Ágiles Lean Development

72

Impulso Lean Manufactoring al Agilismo

Desarrollo Ágil de Software

Scrum

Sistemas de Producción

Toyota Production System

JIT KaizenPull Systems Kanban

Poka-yoke

Lean Manufactoring…

Extreme Programming

Manifiesto Ágil

Otros métodos ágiles

¡Cuidado con las extrapolaciones en el contexto de producción de software!

73

7 Mudas (Wastes) – Lean Manufacturing

Sobre-producción

Producir mucho o con demasiada

antelación Transporte Cualquier

transporte no esencial es desperdicio

Inventario Cualquier

cantidad por encima del

mínimo necesario

Esperas Por una

pieza , documento, etc.,

Tiempo sin actividad del

personal.

Sobre-proceso Trabajo o

servicio adicional no percibido por

el cliente

Retrabajo Cualquier

repetición de trabajo

Movimientos Cualquier

movimiento que no añada valor

74

Auto- discipl

inaShitsuk

e

ClasificarSeiri

OrdenSeiton

Limpieza

Seiso

Estanda-

rización

Seiketsu

Método 5S – Lean Manufacturing

Métodos Ágiles Kanban

76

Kanban elemental

To Do Doing Done

A B

C

DE

F

G

Toyota Production System

Just-In-TimeLean Manufacturing

Eliminar el “waste”

Pull Systems

Kaizen

77

Kanban elemental

To Do Doing Done

A

B

C

D E

F

G

Flujo

78

Kanban elemental

To Do Doing Done

A

B

C

D EF

G

H

Flujo

79

Kanban elemental

To Do Doing Done

A

B

C

D E

F

G

H

I

Flujo

80

Kanban elemental

To Do Doing Done

A

B

C

D

E

F

G

H

I

J

Flujo

81

Kanban elemental

To Do Doing Done

A

B

C

D

E

F

G

H

I

J

Flujo

82

Kanban elemental

To Do Doing Done

A

B

C

D

E

F G

GH

I

J

K

L

Visibilidad del estado del trabajoConseguir un flujo de producción “Pull”Limitar el WIP (Work in Progress)

83

Ilustrando el concepto WIP

MAGDALENA

PATRICIO

ALEJANDRO

FERNANDO

CATALINA

84

Un Kanban manual (de pared) es un excelente medio para motivar al equipo durante la introducción del agilismo pero a medio y largo plazo no es una forma de trabajo sostenible, debería ser soportado por una herramienta

Ejemplos de Kanban (decenas de ejemplos en http://vimeo.com/16918299)

85

Kanban por niveles

Puede resultar difícil la gestión de un Kanban en sólo un nivel (el de requisitos), mucho más complicado será gestionar y sincronizar Kanban en diferentes niveles de abstacción (en este caso Características y Tareas)

86

Métodos Ágiles Scrum

88

Introducción a Scrum

Creado por Ken Schwaber and Jeff Sutherland, presentado en 1995 en OOPSLA

Documento “oficial“: Scrum Guide, Julio 2011, scrum.org

Scrum es un “framework”

PrincipiosTransparenciaInspecciónAdaptación

89

Prácticas, Roles y Artefactos de Scrum

ReunionesSprint Planning MeetingDaily ScrumSprint Review MeetingSprint Retrospective

Release Planning Meeting

Equipo self-organizing y cross-functional

RolesScrum MasterProduct OwnerDevelopment Team

(3-9 miembros)

Product BacklogSprint BacklogItem (del Backlog)Unidad (del Sprint Backlog)

(Sprint/Release) Burndown

90

Scrum “Core” (Scrum Guide, julio 2010)

“Units” (de menos de un día de trabajo)

A

BC

D

E

F

G

Product Backlog(lista ordenada)

Sprint Backlog

H

I

No más de 4 semanas

A1A3 A4

A2 A5

G1 G2

F1F2

F3F4

Daily Scrum15 min.

SprintReview Meeting

4 hrs.Sprint

RetrospectiveMeeting

3 hrs.

SprintPlanningMeeting

8 hrs.

Ítems seleccionadosdesde el

Product Backlog

Sprint Goal

Sprint “DONE”

Time-box

Capacidad!

91

Software Factory «Ideal»

Product Backlog

“grooming”continuo

Implementaciónen el sprint

Sprinti-2 Sprinti-1 Sprinti

Introducir nuevos ítems

Definir ítems

Dividir ítemsque lo requieran

Estimar ítems

Ordenar ítems

Implementar ítems

Testear ítems

Introducir nuevas ítems

Definir ítems

Dividir ítemsque lo requieran

Estimar ítems

Ordenar ítems

Implementar ítems

Testear ítems

Introducir nuevas ítems

Definir ítems

Dividir ítemsque lo requieran

Estimar ítems

Ordenar ítems

Implementar ítems

Testear ítems

Tiempo

Métodos Ágiles Scrum + Kanban

93

Scrum + Kanban elemental

To Do Doing Done

A

B

C

D

E

F

G

ProductBacklog

Sprint

H

I

J

No más de 4 semanas

Sprint PlanningMeeting

94

Actividades esenciales asociadas a un ítem

TD P

Definición. Especificación del cambio de comporta-miento en el sistema (desde la perspectiva del usuario)

Programación. Implementación del cambio de comportamiento en el producto

Testeo de Aceptación. Aplicación de Pruebas de Aceptación para verificar la correcta implementación del cambio

Ítem de cambio constatable externamente en el producto:

Nuevo RequisitoMejora en un requisito existenteCorrección de un Fallo.

Las actividades esenciales que debe realizar el equipo con estos ítems son: Definición (D), Programación (P) y Testeo de Aceptación (T).

95

Scrumban = Kanban + Scrum con actividades específicas

A

BF

G

To Do Doing

Implementar

To Do Doing

TestearDone

Sprint Backlog

CEF

G

To Do Doing

Definir

I

Done

D

H

J

Todas los ítems que están en actividades asociadas a la

preparación antes de ponerlos en un Sprint.

La columna Done es una lista ordenada, en ella los ítem

estarían ya estimados

SprintPlanningMeeting

Las actividades (columnas principales) dependen del contexto del proyecto. Son actividades realizadas para cada ítem cuando está en el

Product Backlog y luego durante el Sprint

Product Backlog

96

97

Scumban manual (de pared)

98

Debilidades de un Scrumban manual 1 de 21. Un Scrumban manual tiene los inconvenientes obvios asociados

a su mantenimiento en una pared y con post-it, especialmente si el volumen de ítems es alto.

2. Obstáculo si el equipo está distribuido o tiene que desplazarse de su puesto de trabajo para ver el Scrumban.

3. Un post-it ofrece un espacio demasiado limitado para gestionar la información asociada a un ítem.

4. El desarrollador encargado de un ítem no lo debería coger desde el Scrumban para llevárselo a su puesto de trabajo pues el resto del equipo no visualizaría dicho ítem.

5. En caso de trabajar con varios productos a la vez, se tendría que mantener un Scrumban por cada producto.

99

Debilidades de un Scrumban manual 1 de 26. ¿Qué se hace con los ítems de sprints pasados?, por defecto se

desecharían todos los post-it una vez terminado el sprint.7. Normalmente la finalización de un sprint se solapará al menos

para algunos miembros del equipo con el trabajo del siguiente sprint. Esta situación obligaría a tener un Scrumban son dos sprints, uno para la versión actual y otro para la siguiente.

8. El Scrumban de pared no soporta adecuadamente actividades en paralelo o actividades alternativas.

9. Al detectar re-trabajo sólo se puede dar vuelta atrás moviendo el item a la actividad donde se debe hacer el re-trabajo. No es sencillo representar que re-tabajo se está haciendo pero sin mover hacia atrás el ítem. En el caso de adelantar trabajo de una actividad sucede algo similar.

100

Debilidades de un Scrumban manual 1 de 210. Cada producto, tipo de ítem o incluso ítem podrían requerir

unas actividades específicas. Un Scrumban de pared establece un tratamiento igual para todos los ítems.

11. No es sencillo llevar la contabilización de estimaciones, esfuerzo restante, y ello a nivel de precisión de actividades.

12. Todo el registro asociado a los fallos y defectos detectados, o respecto al histórico asociado al ítem no suele considerarse.

13. Reordenamiento de los ítems en el Product Backlog14. Difícil de representar el trabajo de varios equipos actuando en

el mismo producto (Scrum de Scrums)15. Incluir unidades (tareas) asociadas a ítems (como post-it

adicionales) aumenta los problemas de gestión del Kanban.

Métodos Ágiles Teamwork

102

Cross-Functional ySelf-Organizing Team

103

Cross-Functional Team - Definición “Cross-Functional Teams have all competencies needed to accomplish the work without depending on others not part of the team”. [The Scrum Guide, 2011]

“A team consisting of representatives from the various functions involved in product development, usually including members from all key functions required to deliver a successful product. … The team is empowered by the departments to represent each function’s perspective in the development process.” [PDMA Handbook of New Product Development (2nd ed.)]

“A self-managing team that has all the necessary skills to create a done increment”. [The Enterprise and Scrum. Ken Schwaber, Microsoft Press, 2007]

Traducciones comunes de cross-functional: multidisciplinario, interdisciplinar, interfuncional o transversal.

Pero … ¿Cómo se interpreta y se pone en práctica?

104

Roles Ágiles y Tradicionales

Scrum MasterProduct OwnerDevelopment Team

Roles en Scrum

Cliente

Coach Programador

Roles en XP

Jefe deproyecto

Tester(Pruebas de Aceptación)

Analista ProgramadorCliente

Roles en metodologías más tradicionales (p.e. RUP)

Tester(Pruebas de Aceptación)

Muchos más

unos pocos más

…Manager

105

Una analogía un tanto molesta

Separación entre comprometidos e involucrados

letelier@dsic.upv.es

106

Roles de Scrum

Scrum Master

Product Owner

DevelopmentTeam

Roles Scrum

El Product Owner (PO) es responsable de gestionar el Product Backlog, lo cual incluye:

Expresar claramente los items del Product BacklogOrdenar los items del Product Backlog para conseguir objetivos y misión del productoAsegurar el valor del trabajo que realiza el Development TeamAsegurar que el Product Backlog es visible, transparente, y claro para todos, y mostrar en qué es lo que trabajará próximamente el Scrum Team Asegurar que el Development Team entiende los items en el Product Backlog

El PO debe hacer respetar sus decisiones en la organización y proteger al Development Team de las solicitudes o influencias de los stakeholders

Scrum Guide, julio 2010

107

Scrum Master

Product Owner

DevelopmentTeam

Roles Scrum

El Scrum Master (SM) es responsable de asegurar que Scrum es entendido y aplicado. El SM es un sirviente-líder para el Scrum Team.

Servicios del Scrum Master para el Product Owner:

Enseñar técnicas para la gestión efectiva del Product BacklogAyudar a comunicar claramente la visión, objetivos e ítems del Product Backlog al Development TeamEnseñar al Scrum Team a crear claros y concisos ítems del Product BacklogAyudar a comprender la planificación a largo plazo en un ambiente empíricoAyudar a comprender y aplicar agilidadApoyar durante el sprint y las reuniones según se le requiera o sea necesario

Roles de Scrum – Scrum Master 1de 2

Scrum Guide, julio 2010

108

Scrum Master

Product Owner

DevelopmentTeam

Roles Scrum

Servicios del Scrum Master Service para el Development Team

Entrenar en self-organization y cross-functionalityEnseñar y dirigirle hacia la creación de productos de alto valorEliminar los impedimentos para su avance en el trabajoApoyar en sprint y reuniones cuando se le pida o lo considere necesarioEntrenar para enfrentar ambientes organizacionales en los cuales Scrum aún no ha sido completamente adoptado y entendido

Servicios del Scrum Master para la OrganizationLiderar y entrenar la adopción de Scrum en la organizaciónPlanificar implementaciones de Scrum dentro de la organizaciónAyudar a los empleados y usuarios a comprender e implantar Scrum y el desarrollo empírico de productosProvocar cambios que aumenten la productividad del Scrum TeamTrabajar con otros Scrum Masters para incrementar la efectividad de la aplicación de Scrum en la organización

Roles de Scrum – Scrum Master 2 de 2

Scrum Guide, julio 2010

109

Scrum Master

Product Owner

DevelopmentTeam

Roles Scrum

El Development Team tiene las siguientes caraterísticas:

Es self-organizing. Nadie (ni siquiera el Scrum Master) le dice como convertir el Product Backlog en un incrementos de funcionalidad potencialmente entregableEs cross-functional, tiene como equipo todas las habilidades necesarias para crear un incremento del productoNo tiene títulos más que el de Developer, independiente del trabajo que esté realizando la persona, no hay excepciones a esta reglaLos miembros pueden tener habilidades y áreas de especialización pero ellas cuentan para el Development Team como un todo No contienen sub-teams dedicados a dominios particulares como testeo o análisis de negocioTiene entre 3 y 9 miembros (obviamente sin contar el PO y SM)

Roles de Scrum – Development Team

Scrum Guide, julio 2010

110

Desde roles Tradicionales hacia roles Ágiles

Scrum Master

Product Owner

DevelopmentTeam

Roles Scrum

Jefe deproyecto

Tester(Pruebas de Aceptación)

Analista

Programador

Cliente

Roles Tradicionales

111

Entonces …. ¿qué es un Cross-Functional Team?

NO implica que todos los miembros:

Sean expertos en todas las actividadesRealicen siempre las mismas actividadesRealicen juntos todas las actividades de cada ítemRealicen cada uno una actividad de cada ítemRealicen actividades diferentes en cada ítem…

El rol de un miembro es respecto de cada ítem en la que participa, NO tiene por qué ser el mismo rol para todos ellos.

El interés por tener en un equipo personas con roles fijos específicos dependerá del grado de especialización disponible/deseado y del número de miembros del equipo

Otras ActividadesDefinición

Programación Testeo

112

T

D

P

T

D

P

T

D

P

T

D

P

Sólo 1 miembro para un ítem 2 miembros para un ítem

2 miembros para un ítem 3 miembros para un ítem

“Desarrollador” “Analista/Programador” “Tester”

“Tester”

“Analista/Tester”“Programador” “Programador”

“Analista”

Dependiendo del tamaño del equipo de desarrollo:

Algunas Alternativas Actividades-Roles para abordar un mismo ítem

Scrum en lugar de utilizar roles específicos tiene sólo Development Team como rol genérico desempeñado por todos los desarrolladores

113

Ítem8

En un mismo Sprint cada ítem podría tener una estrategia diferente en cuanto a roles-agentes

T

D

P

Carlos María

Ítem1

T

D

P

Carlos María

Ítem2

T

D

P

Ítem4

MaríaCarlos

T

D

PMaría

Carlos

Ítem3

Ítem5

T

D

P

María

Carlos

Javier

Ítem6

T

D

P

JavierMaríaCarlos

T

D

P

María

Marta

Javier

T

D

PMabel

Ítem7

Ítem9

T

D

P

Todo el “Team”

Carlos

Mabel

Mabel

Marta

114

¿Qué es un Self-organizing Team?Los miembros del equipo:

Acuerdan el reparto del trabajo, en conjunto y/o cada miembro se auto-asigna trabajo en la medida que se quede disponible. Proactividad.

Acuerdan cómo realizar el trabajo. Toman las decisiones técnicas necesarias.

Comparten un rol genérico, p.e. “Desarrollador”. No existe el rol Jefe, o si existe es más bien un “facilitador”, el cual no interviene en la asignación de trabajo ni en cómo debe hacerse el trabajo.

115

¿Manager … Líder …Facilitador?

116

Comentarios finales respecto de rolesLos roles son sólo una facilidad para asociar ciertas

actividades. Lo importante no son los roles en sí mismos sino las actividades que se deben realizar y quién se ocupará de ellas en cada ítem.Scrum promueve romper con la especialización extrema, es decir, evitar que cada miembro realice sólo una actividad, pero esto no implica que no deban existir expertos en ciertas actividades.Cada miembro puede realizar diferentes actividades en diferentes ítems. Pueden haber diversas combinaciones en una misma iteración. No existe una combinación apropiada para todas las situaciones de Producto/Cliente/Equipo/Ítem …Buscar su punto de equilibrio entre los extremos: “cada miembro un rol” y la “no necesidad de roles en el equipo”. ¿Todos los miembros realizan todas las actividades con la misma motivación, eficacia y eficiencia?

117

Gemba – Lugar de trabajo

Métodos Ágiles Herramientas para Gestión Ágil

119

http://www.versionone.com/pdf/2010_State_of_Agile_Development_Survey_Results.pdf

Herramientas usadas en proyectos ágiles

121

Proceso Iterativo e Incremental con Scrum

tiempo

P Sprint Planning Meeting R7

R8

R9

R10

R11

R12

P

C5 T5R5D5

C6 T6R6D6 TP

Lista ordenada de próximas WUs (en constante cambio). Requisitos definidos en gran parte antes de que a WU se incluya en una iteración

Product Backlog

R Sprint Review Meeting

P

PreparaciónProduct Backlog

R1D1

C1 T1

TC2 T2

R2D2 R

ImplementaciónSprint

PreparaciónProduct Backlog

C3 T3R3D3

C4 T4R4D4 T R

PreparaciónProduct Backlog

ImplementaciónSprint

122

Kanban + Scrum usando WFs

Cada ítem sigue su WF

Los WF deberían ser configurables en cuanto a actividades, roles y encadenamiento de actividades.

Un producto puede tener asociados varios WFs disponibles para utilizar con sus WUs

123

124

Ejemplo workflow simple “estilo tradicional”

125

… un workflow más complejo

126

Kanban de TUNE-UP

Actividades en lasque puede estar una

WU.Corresponde a la

síntesisDe todo el trabajo en

el que participa el agente, según los

WFs de cada una de las WUs.

Filtro agente

Filtro producto y versión

Estado de las WUs en cada

actividad

Diversas formas de acceder al

detalle de la WU en el WUM (Work Unit Manager)

127

TUNE-UP Kanban

TUNE-UP Kanban y Gestor de WUs (Ítems)

TUNE-UP Work Unit Manager

Agentesresponsables

Tracking dela WU

Definición del cambiomediante pruebas de

aceptación

Actividades en lasque puede estar una WU

(es configurable)

Filtro agenteFiltro producto y versión

128

www.tuneupprocess.com

Métodos Ágiles Planificación y el Product Backlog

130

Planificación Iterativa e Incremental usando Diagrama Gantt

Extrapolar esto a decenas de ítems en cada versión!!

Extrapolar esto a ítems con WFs diferentes y más complejos!!

131

Producto - Ítems de trabajo

Arquitectura en capas

Sprint visto por Cliente (ítems correspondientes

a características externas del producto)

Sprint visto por equipo de desarrollo

(incluye ítems detrabajo en capas internas)

Producto en desarrollo o

mantenimiento

132

Esfuerzo estimado versus Capacidad

Sprint

Product Backlog

Esfuerzo

estimado

Capacidad

del equipo

133

Planificación Ágil – Sprints y Releases

P

tiempo

SprintX

P P

Sprintx+1 Sprintx+2

P Sprint Planning Meeting

Product Backlog

R Sprint Review Meeting

R R R

Release

134

Gestión de Fallos

WUx

tiempoFin

SprintInicioSprint

WUy

T

WUw

Fallo detectado y resuelto en

versión

Fallo para resolver en

versión futura

Fallo detectado yresuelto en la misma WU

Fallo detectadoen pruebas regresión

WUn

Fallo detectado en versión

previa

WUz

135

“The Product Backlog is an ordered list of everything that might be needed in the product and is the single source of requirements for any changes to be made to the product.”[Scrum Guide July 2011].

“The Product Backlog lists all features, functions, requirements, enhancements, and fixes that constitute the changes to be made to the product in future releases. Product Backlog items have the attributes of a description, order, and estimate.” [Scrum Guide July 2011].

La clave: el Product Backlog

136

Alternativas para estimación

Ítem Units (Tareas)Ítems (p.e. Historias de Usuario)

(adaptado de una presentación de Henrik Kniberg)

1. No estimarlas

2. Estimarlas usando tallas de camiseta1. No dividir HU en tareas

2. No estimarlas, sólo contarlas

3. Estimar las tareas en horas o días (ideales)

12h8h4h

S M LS ML

3. Estimar las HU usando Puntos

1p2p

5p

4. Estimar las HU en horas o días (ideales)

10h 30h 45h

137

Planning Poker

2

5

3

8

2

?

Utiliza Puntos como medida de esfuerzo. Es una medida de tamaño relativa.Se corresponde con una velocidad de proyecto también expresada en Puntos.No útil para seguimiento (¿cuántos puntos restan de trabajo en una ítem?)

138

Más información en: http://bit.ly/tNeyn7

Métodos Ágiles Seguimiento

140

Planificación y seguimiento de proyectos

Introducción

Alcance

Costo Tiempo

Seguimiento ¿lo conseguiremos?

141

¿Qué indicadores utilizar para realizar el seguimiento?

utilizar

Esfuerzo restante

Esfuerzo abordable

Estimar el esfuerzoComputar el avance

Conocer disponibilidad futuraConocer productividad

Introducción

Velocidad de proyecto (VP)o Capacidad del equipo

142

Seguimiento del proyecto cuando se usa un enfoque ágil

Proceso iterativo e incremental con entregas frecuentes

Se esperan cambiosComplicidad del cliente (involucrado y negociador)

Introducción

…¿Podría “relajarse” el seguimiento del proyecto?

Depende , Sí, si existen las condiciones de flexibilidad y negociación ideales para el enfoque ágil. Sin embargo, siempre el seguimiento es útil para detectar oportunamente desviaciones significativas y también para obtener información necesaria para una retrospectiva

Seguimiento muy continuo (día a día, en cada Stand Up Meeting / Daily Scrum)

143

Gráficas Burndown protagonistas en Scrum para el seguimiento de las sprints y releases, pero …

“Por lo visto” son muy poco usadas en la práctica. Posibles razones:

Disciplina individual de estimación y registro de avanceEsfuerzo para recolección y síntesis de los datosDificultades para su interpretación

Gráficas Burndown 1 de 4

144

Visualización del estado del Sprint

145

Seguimiento Ágil - Gráficas Burndown

La gráfica Burndown ilustra el Esfuerzo Restante, para el seguimiento éste debe contrastarse con el Esfuerzo Abordable en el período restante del Sprint.

Para recolectar la información necesaria para el seguimiento diario es importante conectar dicha recolección con el trabajo diario de los participantes

146

Gráficas Burndown 3 de 4

147

Gráficas Burndown 4 de 4

Soporte para gráficas Burndown en herramientas comerciales

148

Interpretación de las Gráficas Burndown

Eventos que invalidan la lectura del Esfuerzo Restante

Actividad con estimación sobrepasadaActividad sin estimación

Eventos que provocan una variación del Esfuerzo Restante Ajuste en Estimación - Incremento/Decremento Introducción de estimación faltante Trabajo añadido a iteración (WU nueva o ya existente) Trabajo desestimado, cambiado de iteración o eliminado Trabajo terminado Trabajo asignado/desasignado a/de un agente Corrección del Esfuerzo Invertido

149

Gestión Ágil de Requisitos

151

TDRE: Test-Driven Requirements Engineering

Requisitos

Análisis

Diseño deArquitectur

a

Diseño deMódulos

Programación

Pruebas Unitarias

Pruebas de Integración

Pruebas de Sistema

Pruebas de Aceptación

Especificación y Diseño de Pruebas

Aplicación de Pruebas

152

Desarrollo Test-Driven (TDD)

VersióniVersióni+1

Nuevo requisitoMejoraCorrección de defecto

Cambio en comportamiento

Expresados en términos de Pruebas de Aceptación

Unidades deTrabajo (Wus)

153

Pero …

Plantillas de Casos de Uso Bocetos de IU

Descripción narrativa

Diagramas de Secuencia

Casos de Uso

Especificación de requisitos típica

154

Plantillas de Casos de Uso

Bocetos de IU

Descripción narrativa (muy breve) + atributos

Diagramas de Secuencia

Modelo de Requisitos

… bueno, ¡de acuerdo!, podrían

utilizarse Casos de Uso y otros diagramas de UML

Escenarios → PAs

Propuesta de TUNE-UP: TDRE (Test-Driven Requirements Engineering)

155

Ejemplo de especificación de requisitos Enviar artículo

Usuario: Autor Prioridad: Alta Esfuerzo: Medio Riesgo: Medio Tipo: Nuevo Requisito

Descripción: Se introducen los datos del artículo (título, fichero adjunto, resumen, tópicos) y de los autores (nombre, e-mail, afiliación). Uno de los autores debe indicarse como autor de contacto. El sistema confirma la correcta recepción del artículo enviando un e-mail al autor de contacto con un userid y password para que el autor pueda posteriormente acceder al artículo.

ATEST 1.1: Obligatorio Título, al menos un tópico asociado, al menos un autor y fichero adjunto.

ATEST 1.2: Título de artículo no repetido con autores coincidentes

ATEST 1.3: Primer autor marcado por defecto como contacto

ATEST 1.4: Autores no repetidos en un mismo artículo

ATEST 1.5: Tamaño del artículo no superior a 5 Mb

ATEST 1.6: Envío exitoso con email de confirmación

156

Definición de Pruebas de Aceptación (PAs)

“Una PA tiene como propósito demostrar al cliente

el cumplimiento de un requisito del software”

Precisando más, una PA:

Describe un escenario, compuesto por una situación del sistema

(condición de ejecución) una secuencia de pasos de uso y el

resultado alcanzado, todo ello desde la perspectiva del usuario

Puede estar asociada a requisitos funcionales o no funcionales

Un requisito tendrá una o más PAs asociadas

Las PAs cubren desde escenarios típicos/frecuentes hasta los más

excepcionales

157

Ejemplo: Requisito ReintegroPruebas de Aceptación (= Escenarios)

Reintegro normalIntento de reintegro con saldo insuficienteFalta de ciertos tipos de billetesCancelación de operaciónAviso de no entrega de reciboFuera de servicio por falta de billetesExcedido tiempo comunicación con bancoExcedido tiempo inactividad usuarioCajero en mantenimiento…

Identificación de Pruebas de Aceptación

158

Definición de Pruebas de Aceptación

Estructura de una PANombreCondición

------

Pasos------

Resultado esperado------

Ejemplo de PA «Intento de reintegro con saldo insuficiente»Condición

Cliente con saldo positivoAcceder a ventana de reintegro

PasosIntroducir cantidad mayor que el saldo

Resultado esperadoMensaje «saldo insuficiente»Se ofrece nueva introducción

159

Ejemplo: WU «Adaptación a nueva normativa». Es una mejora que afectará entre otros requisitos ya implementados al requisito Reintegro

Impacto en requisito Reintegro (en sus Pruebas de Aceptación)Reintegro normalConfiguración monetaria del paísIntento de reintegro con saldo insuficienteSaldo insuficiente con cliente premiumFaltan de ciertos tipos de billetesCancelación de operaciónAviso de no entrega de reciboConfirmación si cantidad de reintegro es altaFuera de servicio por falta de billetesExcedido tiempo comunicación con bancoExcedido tiempo inactividad usuarioCajero en mantenimiento…

Mantenimiento del software basado en PAs

161

Gestión del producto SW

Reintegro

WU «adaptación a

nueva normativa»

Requisitos afectados por la WU

Estructura de requisitos

del producto

162

Proceso de Desarrollo dirigido por PAs

Definen WUsen términos

de PAs

Escribe código para satisfacer

las PAs

Diseña instanciacio

nes y aplica las

PAs

Cambios en la estructura de requisitos y/o

en PAs

WUs

Demo

163

TDRE es rentable, la especificación de requisitos como PAs ofrece las siguiente ventajas:

Facilita la especificación y validación de los requisitosApoya la estimación del esfuerzo de desarrolloSon un instrumento adecuado para Negociar con el clienteSu ordenamiento facilita el trabajo de programadores y testersContribuyen a una mejor especificación de los requisitos. Respecto del estándar IEEE 830, se mejora en cuanto a verificabilidad, mantenibilidad, no ambigüedad, trazabilidad, etc.

TDRE se enmarca en la gestión integral del producto, no sólo en su desarrollo inicial sino también en su posterior mantenimiento

Comentarios finales respecto de TDRE

Mejora Continua del Proceso

165

Mejora continua

Retrospectivas

Plan

DoCheck

Act

Sprint

166

Adaptar la metodología al producto y refinarla

Kanban

Scrum

XP

RUP

Ad-hoc Plan

Do

Check

Act

Otras metodologías

Ágiles

167

El Know How está contenido en los WFs

168

Cada WU puede necesitar un tratamiento específico dependiendo de por ejemplo:

Su tipo: Nuevo requisito, mejora en requisitos existente, corrección de fallo, etc.Actividades específicas, por ejemplo: traducción, pruebas de rendimiento, validaciones adicionales, automatización de pruebas, etc.Cliente solicitante del cambioEl productoEl equipo de desarrollo y su estrategia de organización…

Decisiones respecto de los WFs

169

Decisiones extremas: “Un WF para todas las WUs” v/s “Un WF para cada WU”“WFs con muchas actividades” v/s “WFs ajustados a cada WU”“Pocos WFs” v/s “Muchos WFs”

Decisión recomendada:Comenzar con muy pocos WFs y que sean lo más sencillo posibleCentrar la mejora continua del proceso en la mejora de los WFs (añadiendo, modificando o eliminando actividades y sus relaciones, o incluso añadiendo o eliminando WFs)

Decisiones respecto de los WFs

170

Escalando el agilismo

Equipos pequeños < 10 miembros

Scrum de ScrumsUn mismo proyecto

con varios equipos

Conclusiones

172

Expectivas tras el Agilismo

Alcance

Costo Tiempo

Expectativas “Realistas”Satisfacción del cliente. Involucrar al Cliente. Mejora en la gestión de prioridades“Adelgazar” el proceso. Eliminar el “Waste”. Lean DevelopmentDetectar oportunamente situaciones que afectan negativamente al proyectoEstablecer un ritmo de trabajo sostenible-realistaMantener al equipo motivado y comprometido

173

Desarrollo “Tradicional” de Software

Desarrollo Ágil de Software

Agilismo más allá del ámbito del software

Gestión Ágil de Proyectos

PMBOK

Gestión “Tradicional” de Proyectos

?

Técnicas y Herramientas“Tradicionales”

Generalización a otros

ámbitos de proyecto

Metodologías, Técnicas y

Herramientas “Ágiles”

Manifiesto Ágil

SWBOKRUP

UMLCMMI PMO

174

PMOs (Portafolio management Office,Program Management Office, o

Project Management Office)

Agilismo a diferentes niveles

Equipo de trabajo (trabajando en un producto/proyect

o)

Aplicación deprácticas ágiles

175

¿To be or not to be Ágil?

“There is an elephant in the room”

176

…¿To be or not to be Ágil?

Agile's Teenage Crisis? Philippe Kruchten . Enumeración de los “elefantes”. infoq.com/articles/agile-teenage-crisis

“ScrumButs “= práctica no aplicada / excusa / alternativa. scrum.org/scrumbut

¿Necesitamos una evaluación de procesos ágiles ?(¿nivel de madurez?) … espero que no .

Post-Agilismo …

177

Sinergia de Prácticas (en Extreme Programming)

Extreme Programming: Kent Beck

Mientras más prácticas se apliquen y en mayor profundidad mejor es el resultado

178

“By early 2009, there were more than 60,000 CSMs. More organizations were using Agile processes than waterfall processes, and of those employing Agile 84% were using Scrum. However, less than 50% of those using Scrum were developing in incremental iterations, which are the heartbeat of Scrum. Martin Fowler wrote in his blog that he was encountering many instances of "Flaccid Scrum“(martinfowler.com/bliki/FlaccidScrum.html). Teams were using Scrum vocabulary but weren’t able to create a potentially shippable increment of functionality within a single Sprint.” [Ken Schwaber, Scrum.org]

“Flaccid Scrum”

180

Su nombre aquí

181

En 1997 Bertran Meyer escribió una sátira acerca de UML en una edición especial de la revista American Programmer. El artículo se titula “UML: The positive spin”. En ella se presenta una carta ficticia de un alumno que solicitaba a su profesor que le subiera la nota que había obtenido por su trabajo donde hacía una evaluación de UML.

Después de recorrer en forma sarcástica todas las posibles contribuciones de UML respecto de lo ya existente (descartando cada una de ellas), finaliza la carta con esta reflexión:

“My long search had not been in vain. It had led me to a full appreciation of the UML, this admirable self-feeding machine, devoted from A to Z to the creation of a new market, free of any of the difficulties associated with the unpleasant business of software development: UML books! UML courses! Courses on the books! Books on the courses! Books on the books! Introductory courses to prepare for the advanced courses! Courses for those who teach the courses! Revisions! UML journals! Conferences! Workshops! Tutorials! Standards! Committees! T-shirts! The more you think about the possibilities, the more dazzling they look. And for any reader brave or bored enough to read the documents to the end, the grand scheme is all there, laid out in the final paragraph.”

¿Una historia que se repite?

182

State of Agile Development (Survey 2011) 3 de 3

Otras también importantes • Carencia de cliente in-

situ• Contrato poco flexible• Equipo numeroso y/o

disperso• Entorno de trabajo

inapropiado

State of Agile Survey, 2011, http://bit.ly/z32882

183

Mayoritariamente se está promoviendo la “revolución”, con un discurso radical representado por frases tales como: “eres o no ágil”, “sigues o no Scrum”, “eres o no un Scrum Master”, etc.Cada equipo tiene su propia realidad de desarrollo de software (metodología, equipo en sí mismo, productos, clientes, entorno de trabajo, etc.).Es prácticamente imposible llegar a ser 100% ágil. Primero porque no existe una definición rigurosa de ello (ni la necesitamos ) y segundo porque probablemente el contexto del equipo se lo impediráLas prácticas establecidas por Scrum, XP, u otros enfoques constituyen puntos de referencia en cuanto a mejora. No hay que obsesionarse con aplicar todo y menos de inmediato.

Lectura recomendada: http://bit.ly/v0AGmC

¿Revolución o evolución hacia el agilismo?

184

Características NO consideradas ágilesCaracterísticas consideradas ágiles• Modelo de proceso en

cascada• Planificación y seguimiento

con Diagramas Gantt• Entregas NO frecuentes• Gestión de Requisitos

clásica• Jefe autoritario• Muchos roles• Asociación fija de roles-

agentes• Contrato y plan no flexibles• Relación más distante con

cliente• Énfasis en modelado y

especificación• …

• Modelo de proceso iterativo e incremental

• Planificación por iteraciones• Entregas frecuentes (alrededor de un

mes)• Seguimiento continuo (Sprint Burndown)• Gestión del Product Backlog (trabajo

pendiente)• Especificación ágil de Requisitos y

Pruebas de Aceptación• Jefe facilitador, líder. Equipo auto-

organizado• Roles genéricos• No se asignan roles específicos a los

agentes• Disciplina de reuniones frecuentes• Contrato y plan flexibles (tolerancia al

cambio)• Cliente in-situ• Espacio de trabajo

abiertos/colaborativos• Énfasis en pruebas (automatizadas)• Refactorización (mejora continua de

arquitectura)• Integración continua• Estándares de programación• Programación en parejas• Propiedad colectiva• …

¿cómo evolucionar?

Evolución hacia el agilismo

185

Determina tu punto de partida

Características NO ágiles

Características ágiles

Establece un punto de partida “realista” para iniciar tu evolución hacia el agilismo

Requisito mínimo: tu punto de partida debe considerar un proceso iterativo e incremental con entregas frecuentes.

186

Conjugar: Metodología + Herramienta + Contextualización (cliente, equipo, dominio de aplicación, proyecto, tecnología, etc.)

“Un sistema complejo que funciona es la evolución de uno más simple que funcionaba” … ir paso a paso en la mejora del proceso.

“El mantenimiento existe”. “Todo producto exitoso requerirá mantenimiento”. Gestionar el producto

Reflexiones adicionales

187

Mejorar la productividad del equipo a partir de la mejora en la productividad de sus miembros → Disciplina y hábitos individuales de trabajo

… Reflexiones adicionales

188

Configuración metodológica para un producto

Kanban

Scrum

XP

RUP

Ad-hoc Plan

Do

Check

Act

Otras metodologías

Ágiles

189

¿Qué es TUNE-UP?

Adquirir conocimientos, definir metodología, seleccionar

herramienta, e integrar todo

Formación y consultoría,metodología y herramienta

configurables

Un Plan de Implantación de Prácticas Ágiles

191

FASE 0: Formación Básica en Agilismo (opcional en caso de ya tenerla)Medio: Aprox. 2 sesiones de 3 horas cada unaActividades

Formación básica que incluye:Introducción al Agilismo Kanban y ScrumPlanificación y seguimiento ágil

ResultadoEl equipo adquiere los conocimientos básicos de Agilismo

Plan de implantación

192

FASE 1: Definición del objetivo metodológico y configuración Medio: aprox. 6 reunionesDuración: aprox. 3 semanasActividades

Seleccionar el producto y el equipo de desarrolloEstablecer el objetivo metodológico (conjunto de prácticas ágiles que se aplicarán) que se alcanzará al final de la implantación, dependiente de la situación de partida y las características del contexto (equipo, producto, cliente, entorno de trabajo, etc.)Instalación de TUNE-UP en servidor y configuración inicial asociada al contexto de implantación

Resultado: Entorno preparado para la implantación

… Plan de implantación

193

FASE 2: Formación y puesta en marchaMedio: Seminario organizado en 4 sesiones de 3 horas cada una. Además, 2 o 3 reuniones. (*)Duración: aprox. 4 semanasActividades

Formación del equipo en metodología y herramienta TUNE-UPConsultoría para la puesta en marcha de la primera iteración. Preparación en TUNE-UP del Product Backlog, estructura inicial del producto y de ítems incluidos en el primer Sprint.

Resultado: Puesta en marcha

(*) En caso de aplicar algunas prácticas posterior al inicio de la Fase 3, su correspondiente formación se distribuiría para que siempre se realice justo antes de comenzar a aplicar cada práctica. Esto permitirá aprovechar oportunamente la formación correspondiente a cada práctica y reducir en lo posible la concentración de conocimientos que deben trasmitirse al equipo al comienzo de la implantación.

… Plan de implantación

194

FASE 3: Asistencia y seguimientoMedio: aprox. 12 reuniones (una cada semana)Duración: aprox. 12 semanas (la idea es aplicar la metodología en al menos 3 Sprints de desarrollo)Actividades

Reuniones de seguimiento del desarrollo, incluyendo la planificación y revisión de cada Sprint.Reuniones de evaluación de la metodología de desarrollo al final de cada Sprint (reuniones de retrospectiva).Asistencia respecto del uso de la herramienta y dudas metodológicas.

Resultado: El equipo alcanza el objetivo metodológico establecido.

… Plan de implantación

195

FASE 4: Evaluación y próximos pasosMedio: aprox. 2 reunionesDuración: aprox. 2 semana (una semana solapada con la Fase 3)Actividades

Reuniones para evaluación de la implantación metodológica y futura mejora del proceso

Resultado: Evaluación y recomendaciones para aplicación de otras prácticas ágiles

… Plan de implantación

196

FASE 0: Formación Básica en Agilismo (6 horas)FASE 1: Diagnóstico y configuración (aprox. 3

semanas)FASE 2: Formación y puesta en marcha (aprox. 4

semanas)FASE 3: Asistencia y seguimiento (aprox. 12 semanas)FASE 4: Evaluación y próximos pasos (aprox. 2

semanas)

Tiempo (cronológico) de la implantación: aprox. 20 semanas

Incluye:Aprox. 23 reuniones de aprox. 2 hrs. cada unaFormación básica en Agilismo , 2 sesiones de 3 hrs. Seminario de formación por videoconferencia, de 4 sesiones de 3 hrs. Horas de asistencia respecto del uso de la herramienta y dudas metodológicas

Resumen del plan

¡Gracias por vuestra atención!Patricio Letelier Torresletelier@dsic.upv.es

agilismoatwork.blogspot.comwww.tuneupprocess.com

Departamento Sistemas Informáticos y Computación (DSIC)Universidad Politécnica de Valencia (UPV) - España

Recommended