Ingeniería de Software II

Documentos relacionados
Ingeniería de Software I

Ingeniería de Software II Segundo Cuatrimestre de 2008

Ingeniería de Software II Primer Cuatrimestre de 2008

The Agile Manifesto. Que es el Manifiesto Ágil?

4.1.1_Reunión de Planificación de Sprint (Sprint Planning Meeting) 4.1.2_Objetivo del Sprint (Sprint Goal) 4.1.4_Revisión de Sprint (Sprint Review)

Manifiesto Ágil: Historia

SCRUM. Gestión ágil de proyectos

Scrum. Helder Marques

Roles y Responsabilidades en la gestión de proyectos Scrum

Programación Extrema. Ing. Sebastian Priolo

Aplicación de metodologías Ágiles en TI. Elsa Mangione, PMP, PMI-ACP, CSM II Reunión de Miembros Abierta. Mendoza, 2013.

Metodologías Ágiles: Scrum y técnicas de estimación ágil

Karen Giraldo Escobar Graciela Catalina Soto PROYECTO DE GRADO I

Desarrollo Ágil. Introducción a desarrollo ágil. Periodo: Inicio: Ago 14, 2012 Termino: Nov 27, 2012

Qué es scrum? scrumshortcuts.com

Gestión de Equipos de Desarrollo. Max Déboli Director de Desarrollo Lagash MVP Azure

SCRUM Metodología de trabajo ágil

La medición funcional de software con SCRUM

Qué es Scrum? Basado en el texto Explicando Scrum a mi abuela de Jorge Serrano - MVP Visual Developer - Visual Basic

Certified Scrum Developer (CSD), Módulo 3 y Track Completo

4 a 8 semanas. Equipos pequeños 5 a 9 miembros. Informal. Cara a cara. En cada entrega el cliente dará su aportación. Sólo documentación básica

Introducción a las Metodologías Ágiles. Introducción a Scrum. Roles Ceremonias Artefactos Métricas

Scrum. Juan Palacio Bañeres

PROYECTO METODOLOGÍA DE TRABAJO. Fecha Autor Versión Cambio. 14/11/2008 Vanesa Dell Acqua 1.0 Documento inicial.

Cómo las metodologías ágiles ayudan a los proyectos de Inteligencia de Negocios

Parametrización Scrum - Template Confluence

La Guía de Scrum. La Guía Definitiva de Scrum: Las Reglas del Juego. Octubre de Desarrollado y soportado por Ken Schwaber y Jeff Sutherland

Gestión de Proyectos con Metodologías Ágiles (Scrum)

Desarrollo Ágil con SCRUM. Itzcoalt Alvarez M. Joiz.Net

BLU Concept PROPUESTA PÚBLICA NACIONAL SCRUM Mexico First

PDSM: PROCESO DE DESARROLLO DE SOFTWARE MIXTO COMBINANDO RUP Y SCRUM. Mariani, María Florencia Okabe, Evangelina

Qué esperan aprender en esta clase?

Universidad ORT Uruguay

PROPUESTA DE PROYECTO DE DESARROLLO DE PÁGINA WEB PARA GESTIÓN DE PROYECTOS CON METODOLOGÍA SCRUM

Kanban vs. Scrum. Sesión 6b. Metodologías Ágiles de Desarrollo de Software Domingo Gallardo, DCCIA, Univ. Alicante

Prototipado Ágil. Mateu Batle Sastre

EXIN Agile Scrum Foundation

La Guía de Scrum. La Guía Definitiva de Scrum: Las Reglas del Juego. Julio de Desarrollado y soportado por Ken Schwaber y Jeff Sutherland

5.1 Historias de usuario

Desarrollo ágil en tiempos de crisis. Alejandro Torres Castañeda y Analía Baño Dynkowski Baufest

Ingeniería de Software. Procesos. Proyecto de Ingeniería. Metodologías. Metodologías. Metodologías. Metodologías de desarrollo

Paula Izaurralde. Especialista en Calidad en ARRIS Argentina. Ayudante en Metodologías Ágiles en el Desarrollo de Software

Diplomado en SCRUM Master Certified SMC. Basado en la edición 2013 del SBOK GUIDE

DES. Fundamento Institucional. Objetivos. Alcance

Juan Carlos Sanchez Galvis

Scrum. una descripción. Traducido y revisado por Xavier Quesada Allue, Alan Cyment y Martín Alaimo Marzo 2013

Ingeniería de Sistemas I

Desarrollo en Cascada (Waterfall) VS Desarrollo Agile-SCRUM. Por Jesus Demetrio Velázquez Camacho

Una meta un Equipo. #TalentoCVTeam #ExcelenciaTIC

Mejora Ágil de Procesos

SCRUM. Cómo aumentar la productividad en las mismas horas de trabajo. Serafín Vélez Barrera Universidad de Granada

Planificación en Team Foundation Server 2010

Agile, Scrum & extreme Progammig

Roles Scrum en Profundidad. ScrumMaster, Product Owner, Team

UNIVERSIDAD TECNOLOGICA DE HERMOSILLO SCRUM SPRINT #1. Ingenieria de Software I MAESTRO: BERNARDO PRADO DIAZ INTEGRANTES. Jorge Valdano.

Trabajo Práctico Integrador

Introducción a las Metodologías Ágiles. Nicolás Brailovsky March 7, 2009

Administración Ágil de. Juan Banda, MSc, CSP

El modelo Scrum. NST-0010 Rev. 0.1

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

XP- EXTREME PROGRAMMING

Entrenamos. CSD: Certified Scrum Developer Program

MEMORIA DE LAS ACTIVIDADES DESARROLLADAS PROYECTOS DE INNOVACIÓN EDUCATIVA CURSO 2014/2015

Introducción n a MSF. MSF v4.0 como framework

Principios y valores de la agilidad

La Autoridad de Certificación Global para Profesionales de Scrum y Ágil

FORMULACION DE CRITERIOS PARA LA SELECCION DE METODOLOGIAS DE DESARROLLO DE SOFTWARE LEONARDO FLOREZ MARIN FELIPE GRISALES TOBON


Desarrollo Ágil. Software Engineering: A Practitioner s Approach Roger S. Pressman, Ph.D. Tomás Balderas Contreras Ingeniería de Software I

Guía de preparación. Agile Scrum Master de EXIN

Ingeniería de Software

Formación en Scrum. Formación preparatoria para la certificación PSM I de Scrum.org. Fernando Sacasa v.febrero2014

Scrum Testing.

Qué es una Metodología Ágil?

Artículo dedicado a la Innovación y Mejores Prácticas en la Ingeniería de Negocios

PMI Agile Certification

Microsoft Dynamics Sure Step Fundamentos

Funcionalidades Software PROYECTOS GotelGest.Net Software para la gestión de Proyectos GotelGest.Net

Metodologías ágiles de Dirección de Proyectos. Alejandro Gabay, PMP, CSM Marzo 2012

SCRUM MASTER PRODUCT OWNER

Perspectivas y tendencias: Practicas actuales en Gestión de Portafolios, Programas y Proyectos La tercera encuesta mundial sobre Gestión de Proyectos

ACADEMIA AGIL PROFESSIONAL SCRUM DEVELOPER

Metodologías Iterativas de Desarrollo

Reporte inicial. Metodología

Responsive Web Design Diseño Web Adaptable

Tema 2. El Ciclo de Vida del Software (ISG1-ITIG)

Baires. Design - Test - Automate

PROPUESTA PÚBLICA NACIONAL SCRUM

SCRUM: Una revisión de la literatura

0. Introducción Antecedentes

Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre

CONTENIDO. ACERCA DE SWAT IT Quiénes somos y para qué trabajamos

Evaluación. del desempeño

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Desarrollo detallado de la fase de aprobación de un proyecto informático mediante el uso de metodologías ágiles.

Tema 3. Procesos ligeros de desarrollo de software.

Transcripción:

Ingeniería de Software II Segundo Cuatrimestre de 2011 Clase 2: Introducción a los métodos ágiles y Scrum Buenos Aires, 18 de Agosto de 2011

Introducción Agile Manifesto Manifiesto por el Desarrollo Ágil de Software Estamos descubriendo mejores maneras de desarrollar software tanto por nuestra propia experiencia como ayudando a terceros. A través de esta experiencia hemos aprendido a valorar: Individuos e interacciones sobre procesos y herramientas Software que funciona sobre documentación exhaustiva Colaboración con el cliente sobre negociación de contratos Responder ante el cambio sobre seguimiento de un plan Esto es, aunque los elementos a la derecha tienen valor, nosotros valoramos por encima de ellos los que están a la izquierda Kent Beck James Grenning Robert C. Martin Mike Beedle Jim Highsmith Steve Mellor Arie van Bennekum Andrew Hunt Ken Schwaber Alistair Cockburn Ron Jeffries Jeff Sutherland Ward Cunningham Jon Kern Dave Thomas Martin Fowler Brian Marick http://www.agilemanifesto.org (2001) 2

Qué características tienen los métodos ágiles? Subconjunto de métodos que adoptan el Modelo de Ciclo de Vida iterativo e incremental Los requerimientos evolucionan a través de la colaboración entre equipos multifuncionales Procesos disciplinados con alta visibilidad que promueven la inspección y adaptación frecuente Liderazgo que alienta el trabajo en equipo, la auto-organización y la responsabilidad Prácticas que permiten la entrega rápida de software de alta calidad Alineación del desarrollo con las necesidades de los clientes y los objetivos de la empresa 3

Más características Livianas Adaptativas en forma empírica Rápidas, pero nunca apuradas Centradas en el cliente Empujan las decisiones hacia los niveles más bajos Favorecen la confianza, la honestidad y el coraje Favorecen la auto-organización y la polifuncionalidad Prefieren el trabajo en equipos reducidos y el pairing Fomentan la proximidad física de los miembros del equipo y la comunicación cara a cara u online, en lugar de escribir documentación o emails 4

Otros conceptos Time boxing: Priorizar duración sobre alcance La reducción del alcance facilita mantener la calidad La limitación estricta del tiempo estimula a mantener el foco Se aplica a iteraciones, reuniones, tareas grupales o individuales Desarrollo incremental: El sistema va creciendo como consecuencia de la integración de nuevas funcionalidades Cada funcionalidad que se agrega está testeada en forma unitaria, y también se prueba integrada al resto de la aplicación Desarrollo iterativo: El proyecto se divide en iteraciones, que para el equipo son miniproyectos El resultado de cada iteración debe ser la aplicación andando con una porción de la funcionalidad requerida 5

Principios aplicables al desarrollo ágil DRY: Don t Repeat Yourself, no crear código, herramientas o infraestructura duplicadas aún a costa de algún esfuerzo adicional. KISS: Keep It Simple!, evitar la complejidad no esencial, aún a costa de algún esfuerzo adicional Do The Simplest Thing That Could Possibly Work: evitar la anticipación injustificada y las generalizaciones prematuras YAGNI: You Ain t Gonna Need It, idem DOGBITE: Do it, Or it s Gonna Bite you In The End, algunas cosas sí hay que hacerlas con anticipación (y suelen ser las menos atractivas). SOC: Separation of Concerns, evitar el solapamiento de funcionalidad entre las diversas características o módulos de un programa. Done-Done-Done: ser sincero sobre el estado Terminado de una tarea o unidad de entrega. Refactoring: debe facilitarse a través de la reducción de su costo. Shipping is a feature, and your product must have it 6

Anti-principios It Works on my PC: no es una excusa, debe funcionar en todos los ambientes. Antipattern: patrón organizacional, metodológico o de diseño, popular pero contraproducente BDUF: Big Design Up Front, tiende a oponerse a YAGNI y KISS Optimización prematura: sin tener métricas que la justifiquen Groupthink: situaciones que desalientan el disenso Bug Driven Development: los requerimientos se completan en forma de bugs 7

Scrum: Qué es? Qué es un scrum? Un scrum es un agrupamiento (formación fija) en Rugby. 8 integrantes de cada equipo, llamados delanteros, se enfrentan agrupados para tratar de obtener la pelota, que es introducida por uno de los equipos en el centro de la formación. Pero qué tiene que ver con la Ingeniería de Software? 8

SCRUM Gráfico del proceso ScrumMaster Team Product Backlog Grooming Sprint 1 to 4 weeks Daily Scrum Meeting and Artifacts Update Review Sprint Backlog Product Owner Product Backlog Sprint Planning meeting Team decides how much to commit to do in a Sprint Sprint tasks No changes in duration or goal Potentially shippable Product Increment Retrospective Meeting 9

SCRUM - Historia 10

SCRUM - En qué proyectos es recomendable utilizarlo? Product impact Loss due to defects Personnel Junior % Senior % 40 30 15 20 Requirements change % per month 20 10 0 25 30 35 Agile Team size Number of staff 300 100 30 10 3 Traditiona l Team dispersion Time, distance culture Team stability Corporate culture Entrepreneurial spirit Fuente: Right-Sizing Agile Development, webinar by Steve McConnell 11

Scrum - Roles 12

SCRUM - Roles Product Owner (PO) Representa los intereses del cliente y comunica una visión del producto Es el responsable de maximizar el Retorno de Inversión, priorizando los requerimientos con mayor valor para el negocio Es el responsable de escribir los requerimientos como user stories Resume el input de los usuarios y el resto de los stakeholders en una vista única de los requerimientos del sistema, con prioridades definidas Responde las consultas del equipo sobre los requerimientos Acepta o rechaza el trabajo hecho por el equipo Team Pilares fundamentales: Comunicación y Cooperación 7 +/- 2 miembros, full time, elenco estable Feature teams incluye todos los skills necesarios para entregar el producto terminado: desarrolladores, diseñadores, testers, etc. Auto-organizado y auto-administrado Estima y define los alcances y límites de cada iteración Son los Pigs, y el resto son chickens Puede haber varios equipos 13

SCRUM Roles (cont.) ScrumMaster (SM) Facilitador del equipo Ayuda al equipo a aprender y usar Scrum y producir valor para el negocio Remueve impedimentos y protege al team de interferencias externas No es el manager del team ni es un PM no asigna tareas Responsable de arrancar y mantener funcionando el proceso Scrum Puede ser full-time o part-time, según las necesidades del equipo Puede no tener formación de sistemas No puede ser el Product Owner 14

SCRUM Producto y Product Backlog Producto En Scrum, un Team desarrolla un producto definido por un Product Owner, usando un proceso adaptativo supervisado y asistido por el Scrum Master Product Backlog Es una lista priorizada de todas las características que el Team debe darle al producto Debe expresar los requerimientos funcionales y no funcionales Puede incluir los defectos a corregir Es conveniente que incluya las características internas, no visibles al usuario (arquitectura, escalabilidad, uso de herramientas de desarrollo, etc). Cada item tiene un valor para el negocio estimado por el PO y un esfuerzo estimado por el Team Los valores y los esfuerzos suelen estar limitados (serie de Fibonacci). La priorización natural es en orden decreciente de relación valor/esfuerzo Pueden agregarse o quitarse ítems, o cambiar las estimaciones o la prioridad en cualquier momento No hay un formato definido para los items suelen ser User Stories Siempre hay un sólo Product Backlog 15

SCRUM - Ejemplo de Product Backlog de Carrito de Compras ID Item Prio Value Effort Status 1 As a buyer, I want to place a book in a shopping cart - Details 2 As a buyer, I want to remove a book from the shopping cart - Details 1 7 5 Done 2 5 2 Done 5 Improve transaction performance - Details 3 4 13 In Sprint 7 Investigate solutions for speeding up credit card validation 4 4 20 In Sprint 6 Upgrade all servers to Apache 2.2.3 5 2 13 Ready 8 Diagnose and fix order processing script errors (JIRA SC-234) 3 As a shopper, I want to create and save a wish list - Details 4 As a shopper, I want to add items to my wish list - Details 6 3 3 Ready 7 2 40 Not Ready 8 2 20 Not Ready 16

SCRUM User stories Formato: As a [user role] I want to [goal] so that [benefit] Por ejemplo: Como comprador, quiero agregar libros al carrito de compras para elegir los libros que voy a comprar Especifican qué hay que hacer, evitando especificar cómo hacerlo Pueden agregarse detalles (breves) Pueden tener attachments que definan el contexto Conviene que incluyan los criterios de aceptación Pueden estar en una herramienta, en Google Docs o en tarjetas Se completa la info en una conversación Escribir buenas stories suele ser lo más difícil al arrancar un proyecto con Scrum Beneficios: ayuda a pensar desde la perspectiva del usuario Modelo INVEST Independent tan independiente de otras stories como sea posible Negotiable demasiados detalles inhiben la comunicación Team-PO-cliente Valuable deben tener valor para el usuario y/o para quien paga el desarrollo Estimable legibles para el Team y no demasiado grandes Small menos de 3 semanas-hombre Testable los criterios de aceptación deben ser tan objetivos como sea posible 17

SCRUM User story en papel #1 - As a buyer, I want to place a book in a shopping cart so I can choose the books that I will buy Acceptance criteria: 1. User can select a book from the catalog 2. User can search the catalog by author or title. 3. If the book is already in the shopping cart, its quantity is increased. 4. If the book is not already in the shopping cart, it is added with a quantity of one. 5. After the operation, the shopping cart is displayed. Effort: 5 Value: 7 18

SCRUM Inicio de un proyecto Antes de comenzar Conseguir el apoyo del sponsor para usar Scrum Capacitar en Scrum a todos los involucrados (PO, Team, cliente final, etc). Planificación: Definir la duración inicial de los sprints (1 a 4 semanas) El PO debe definir la visión inicial del producto El PO debe crear el Product Backlog inicial y priorizar los ítems iniciales (al menos como para dos sprints) Los ítems para los dos próximos sprints deben cumplir con INVEST Los ítems menos prioritarios pueden ser sólo un título (epic) El Team debe estimar los ítems más prioritarios La estimación suele hacerse en forma relativa, en story points Definición de los releases previstos y la funcionalidad que se espera entregar en cada uno Evaluación de riesgos 19

SCRUM En un Sprint Qué es un sprint? Timeboxed iteration: no se extiende por ningún motivo, aunque no se haya terminado el trabajo prometido ni cumplido el objetivo El team decide cuáles ítems del PB entran en un sprint en función de la estimación Conviene que el sprint tenga un objetivo, como implementación básica de débitos automáticos El Scrum Master protege al equipo de interferencias durante el sprint Se pueden agregar o cambiar stories sólo con el acuerdo del team Al final del Sprint el team revisa los resultados con los stakeholders y hace una demo El resultado debería ser un incremento de funcionalidad potencialmente desplegable, integrado y testeado Luego el team inspecciona el proceso y lo adapta si es necesario 20

SCRUM Planificación del Sprint 21

SCRUM Reunión Diaria 22

SCRUM Demo de un sprint (sprint review) 23

Scrum - Retrospectiva 24

SCRUM Pizarra low-tech 25

Reportes En Scrum Velocity = cantidad de story points que un equipo hace para un producto en un mes Product Burndown chart Da una indicación de que tan rápido el equipo está terminando los requerimientos del product backlog en cada sprint Story o task burndown chart Da una indicación de que tan rápido el equipo está terminando stories o bajando horas en un sprint. Muestran comportamientos disfuncionales 26

SCRUM Pizarra (cont.) Contenido Las tareas suelen agruparse en columnas Not Yet Started, In Progress, Completed y un sector Blocked El Sprint Burndown Chart es muy útil para saber cómo va el sprint Actualización Conviene que la actualización sea inmediata, al tomar una tarea o al terminarla Si un miembro del equipo trabaja en forma remota, debe pedirle a alguien que esté en la oficina que actualice la pizarra Cada tarea lleva su estimación de horas restantes, que debe ser actualizada antes o durante el Daily Al final del día también deben actualizarse las horas restantes para poder actualizar el Burndown Chart Las horas restantes de una tarea pueden crecer Si surge una tarea inesperada se agrega a la pizarra, con su estimación si es posible Nadie debe trabajar en tareas que no estén en la pizarra Las tareas que se bloquean se pasan al sector Blocked con un Post-It rojo que explica el motivo del bloqueo 27

Más información 28

Más información 29

Aún más información 30

Recursos on-line 31