aplicacion de una metodologia de desarrollo de software usando cmmi y scrum
DESCRIPTION
Metodologias agiles con cmmiTRANSCRIPT
Vladimir Caballa Torres
APLICACIÓN DE UNA METODOLOGIA DE DESARROLLO DE SOFTWARE USANDO CMMI-DEV Y
SCRUM
CASO: CROSLAND LOGISTICA S.A.C
Tesis de Ingeniería
Lima, Junio 2012
Vladimir Caballa Torres
APLICACIÓN DE UNA METODOLOGIA DE DESARROLLO DE SOFTWARE USANDO CMMI-DEV Y
SCRUM
CASO: CROSLAND LOGISTICA S.A.C
Orientador: Percy de la Cruz Velez de Villa
UNMSM – LIMA
JUNIO, 2012
“Tesis presentada a la Universidad Nacional
Mayor de San Marcos, Lima, Perú, para obtener
el Título de Ingeniero de Sistemas”
© Vladimir Caballa Torres, 2012.
Todos los derechos reservados.
Este trabajo está dedicado a toda mi familia
en especial a mi madre que todo me lo dio.
AGRADECIMIENTOS
Al profesor Percy de la Cruz Velez de Villa por su orientación y dedicación para que este trabajo cumpla con los objetivos trazados.
A todas aquellas personas que indirectamente me ayudaron para culminar este trabajo y que muchas veces constituyen un invalorable apoyo.
Y por encima de todo doy gracias a Dios.
APLICACIÓN DE UNA METODOLOGIA DE DESARROLLO DE SOFTWARE USANDO CMMI-DEV Y
SCRUM
CASO: CROSLAND LOGISTICA S.A.C
RESUMEN
El presente trabajo pretende brindar una solución al realizar los proyectos de software y
mantenimiento de estos basado en CMMI-DEV y Scrum. El modelo CMMI-DEV y el método de
desarrollo ágil Scrum son vistos como contradictorios u opuestos pero vamos a dar prueba que
juntos pueden trabajar muy bien y complementarse uno al otro. Para poder aplicar esta
metodología primero tenemos que evaluar el nivel de madurez que tiene actualmente la empresa
Crosland Logística S.A.C. para tal motivo tenemos que evaluarla a través del SCAMPI, Standard
CMMI Appraisal Method for Process Improvement, a partir de los resultados obtenidos nosotros
nos centraremos en las áreas de procesos que no cumplan con el nivel de madurez 2,que es el
nivel definido, para poder plantear las mejoras. Dichas mejoras se basaran sobre CMMI,
Capability Maturity Model Integration, que son una colección de las mejores prácticas que
ayuda a las organizaciones a mejorar sus procesos. El desarrollo de desarrollo de software se
realizara con Scrum y todos los artefactos que este involucra. El resultado mejorará
dramáticamente el rendimiento de tecnología de información de la empresa Crosland Logística.
Palabras Clave: CMMI, Scrum, SCAMPI
APLICACIÓN DE UNA METODOLOGIA DE DESARROLLO DE SOFTWARE USANDO CMMI-DEV Y
SCRUM
CASO: CROSLAND LOGISTICA S.A.C
Abstract
ÍNDICE
CÁPITULO 1: INTRODUCCIÓN.................................................................................................................. 11
1.1. ANTECEDENTES................................................................................................................................ 121.2. DEFINICIÓN DEL PROBLEMA............................................................................................................ 121.3. OBJETIVOS....................................................................................................................................... 121.3.1. OBJETIVO PRINCIPAL................................................................................................................... 121.3.2. OBJETIVOS ESPECÍFICOS.............................................................................................................. 121.4. JUSTIFICACIÓN................................................................................................................................. 131.5. PROPUESTA...................................................................................................................................... 131.6. ALCANCE......................................................................................................................................... 131.7. ORGANIZACIÓN DE LA TESINA......................................................................................................... 14
CAPÍTULO 2: MARCO TEÓRICO................................................................................................................ 15
2.1. SCRUM............................................................................................................................................. 152.1.1. Transparencia.......................................................................................................................................152.1.2. Inspección..............................................................................................................................................152.1.3. Adaptación.............................................................................................................................................15
2.2. CMMI-DEV.................................................................................................................................... 162.3. SCAMPI.......................................................................................................................................... 16
CAPÍTULO 3: ESTADO DEL ARTE............................................................................................................. 18
3.1. TAXONOMÍA..................................................................................................................................... 183.2. CMMI-DEV.................................................................................................................................... 18
3.2.1. Descripción Del Modelo CMMI-DEV.................................................................................................193.2.1.1. Aspectos claves......................................................................................................................................193.2.1.2. Implementación.....................................................................................................................................223.2.2. Áreas de Proceso del Nivel de Madurez 2...........................................................................................233.2.2.1. Gestión De Requerimientos (REQM)..................................................................................................233.2.2.2. Planificación De Proyecto (PP)............................................................................................................233.2.2.3. Monitorización Y Control De Proyecto (PMC)..................................................................................243.2.2.4. Gestión De Configuración (CM)..........................................................................................................253.2.2.5. Medición Y Análisis (MA)....................................................................................................................253.2.2.6. Aseguramiento De La Calidad De Proceso Y Producto (PPQA).....................................................26
3.3. SCRUM............................................................................................................................................. 273.3.1. Roles de Scrum......................................................................................................................................283.3.1.1. El ScrumMaster....................................................................................................................................283.3.1.2. El Propietario del Producto (Product Owner)...................................................................................293.3.1.3. El Equipo...............................................................................................................................................293.3.2. Bloques de Tiempo................................................................................................................................303.3.2.1. Reunión de Planificación de la Entrega..............................................................................................313.3.2.2. El Sprint.................................................................................................................................................32
3.3.2.3. Reunión de Planificación del Sprint....................................................................................................333.3.2.4. Revisión del Sprint................................................................................................................................353.3.2.5. Retrospectiva del Sprint.......................................................................................................................363.3.2.6. Scrum Diario.........................................................................................................................................363.3.3. Artefactos de Scrum.............................................................................................................................373.3.3.2. Sprint Backlog y Sprint Burndown.....................................................................................................393.3.3.3. Hecho......................................................................................................................................................40
CAPÍTULO 4: APORTE TEÓRICO............................................................................................................... 42
CAPÍTULO 5: APORTE PRÁCTICO............................................................................................................ 43
CAPÍTULO 6: IMPLEMENTACIÓN............................................................................................................. 43
CAPÍTULO 7: CONCLUSIONES Y TRABAJOS FUTUROS........................................................................43
8. REFERENCIAS BIBLIOGRÁFICAS.....................................................................................................44
Índice de Figuras
Figura 1 Crecimiento del Grupo Crosland[Crosland 10]...........................................................................11Figura 2 Áreas de proceso del nivel 2 [SEI 10].........................................................................................21Figura 3 Medologia de Scrum [Schwaber, Sutherland 11].......................................................................31
Capítulo 1: Introducción UNMSM
CÁPITULO 1: INTRODUCCIÓN
Desde hace ya unos años se ha notado, en nuestro país, un crecimiento sostenido en la economía
nacional, donde el sector de venta de vehículos ha ido incrementando. Eso ha llevado al Grupo
Crosland tener un crecimiento promedio de casi 30% por un periodo de 10 años como se ve en la
Figura 1. Desde el 2000 la demanda de las motos ha venido incrementándose gradualmente,
habiendo aumentado en gran medida los últimos 5 años.
El Grupo Crosland dedicado a la importación, ensamblado, venta por mayor y por menor de
motos ha sufrido grandes cambios en cómo administrar el negocio y por siguiente el área de
sistemas que da soporte a las áreas críticas del negocio ha tenido que gestionar la creciente
información.
Es por esta razón que se ha hecho indispensable aplicar una metodología de desarrollo de
software usando CMMI-DEV y Scrum, que nos permitirá gestionar los cambios realizados en el
sistema, canalizar los requisitos de los usuarios y llevar un manejo óptimo de los procesos que
tiene el área de sistemas.
1 2 3 4 5 6 7 8 9 100
10,000,000
20,000,000
30,000,000
40,000,000
50,000,000
60,000,000
Total Grupo Crosland
Total Grupo
Figura 1 Crecimiento del Grupo Crosland[Crosland 10]
11
Capítulo 1: Introducción UNMSM
1.1. Antecedentes
Como se señala anteriormente, hace un tiempo se ha registrado un favorable escenario en la
venta de vehículos en el Perú, lo que ha provocado un crecimiento en los sistemas de
información y el crecimiento del grupo; dicho crecimiento ha generado que cada vez sea más
complejo su sistema actual, SAMI(Sistema Administrativo Modular Integrado), entonces al no
poseer un sistema formal de control de gestión de cambio, una canalización de los
requerimientos de los usuarios, una planificación de proyecto, se hace indispensable aplicar las
buenas prácticas para mejorar las áreas de procesos de la empresa y el uso del método de
desarrollo Scrum para complementarlo en la gestión de los proyectos de software y el
mantenimiento de los sistemas ya desarrollados hasta ahora.
1.2. Definición del Problema
El grupo Crosland no cuenta con una gestión de proyectos de software adecuada que permita
un buen desempeño del área de tecnología de información, la gestión de requerimientos no se
realiza adecuadamente lo que provoca que el analista-desarrollador no comprenda lo que
realmente quiere el usuario del sistema, la planificación de proyecto no está definida lo da
lugar a una falta de monitorización y control del proyecto y por ultimo todo eso repercute en
la calidad del producto resultante.
1.3. Objetivos
1.3.1. Objetivo Principal
El objetivo principal de la tesis es “Aplicación de una Metodología de Desarrollo de Software
usando CMMI-DEV y Scrum”. Caso:Crosland Logistica S.A.C.
1.3.2. Objetivos Específicos
Medir el nivel de madurez de la empresa Crosland Logistica S.A.C y evaluar las áreas
de proceso.
Mejorar las áreas de proceso que presentan debilidades.
Dar un enfoque a la cultura de equipo para que el proyecto de resultados.
Usar una metodología de desarrollo ágil que permita complementar el modelo que se
propone, CMMI-DEV, permitiendo una adecuada gestión de los proyectos a partir de
los artefactos que propone Scrum.
12
Capítulo 1: Introducción UNMSM
Gestionar los requerimientos de los productos y de los componentes del producto.
Planificar el proyecto para que nos permita: establecer estimaciones de tiempo,
desarrollar un plan de proyecto y tener un compromiso con el plan.
Monitorizar y controlar el proyecto que permita comprender el progreso del proyecto.
Asegurar la calidad del producto y del proceso que proporcione una visión objetiva al
personal y la gerencia.
1.4. Justificación
Los procesos de gestión de los sistemas de software serán mejorados y medidos lo que
brindara al jefe de área, y por consiguiente a la gerencia, índices que permitan evaluar el
desempeño del área de TI. El software desarrollado con la metodología será de calidad y
también será entregada a tiempo. Con el desarrollo de la tesis nosotros vamos dar al Grupo
Crosland no solo la calidad del software sino que también lo vamos a hacer de manera
planificada. Con lo cual vamos a dar un cambio drástico a lo que es hoy la realidad actual.
1.5. Propuesta
Implementar una metodología desarrollo de software que permita al área de TI de la Empresa
Crosland Logística S.A.C. una planificación de los proyectos que realiza. Esto ayudaría a
sacar adelante, sin contratiempos, cumpliendo con los requisitos planteados inicialmente,
dentro de los tiempos requeridos y con una calidad aceptable, los proyectos que se llevaran a
cabo en esta área.
1.6. Alcance
La tesis se va a aplicar a la empresa Crosland Logística, que da soporte a todo el Grupo
Crosland la cual trabaja a nivel nacional, específicamente al área de TI. Se realizaran las
mejoras de seis de los siete procesos planteados por CMMI-DEV para el nivel de madurez 2.
Para la misma área aplicaremos también el Scrum como método de desarrollo agil.
13
Capítulo 1: Introducción UNMSM
1.7. Organización de la Tesina
La tesis está organizada en siete capítulos, los cuales se mencionan a continuación:
En el capítulo 2, se realiza el estudio del marco teórico de la tesis, enfatizando la literatura
sobre CMMI-DEV y Scrum, dando conceptos que se requieren para dar entendimiento a la
tesis
En el capítulo 3, se realiza el estudio del estado del arte y la taxonomía a la que pertenece la
tesis.
En el capítulo 4, vamos a ver el aporte teórico, el Benchmarking, el por qué hemos elegido
CMMI-DEV y Scrum como base para la tesis.
14
Capítulo 2: Marco Teórico UNMSM
CAPÍTULO 2: MARCO TEÓRICO
Para comprender algunos de los términos usados en la tesis, tenemos que presentar algunas definiciones. Esto permitirá al lector un mejor entendimiento de lo que tratamos en el presente documento.
2.1. Scrum
Scrum, que se basa en la teoría del control empírico del proceso, emplea un enfoque iterativo e
incremental para optimizar la previsibilidad y controlar los riesgos.
Scrum no es un proceso o una técnica para desarrollar o crear productos, sino que es un marco en
el que se pueden emplear diversos procesos y técnicas. El papel de Scrum es hacer aflorar la
eficacia relativa de las prácticas de desarrollo empleadas por usted, para que pueda mejorarlas, a
la vez que proporciona un marco dentro del cual se pueden desarrollar productos complejos.
Existen tres pilares que sostienen toda implementación del control empírico de procesos.
2.1.1. Transparencia
La transparencia garantiza que los aspectos del proceso que afectan al resultado, son visibles
para aquellos que administran dicho resultado. Estos aspectos no sólo deben ser transparentes,
sino también conocidos. Es decir, cuando alguien que inspecciona un proceso cree que algo está
hecho, esto debe ser equivalente a su definición de "hecho".
2.1.2. Inspección
Se deben inspeccionar con la frecuencia suficiente los diversos aspectos del proceso para que
puedan detectarse variaciones inaceptables en el mismo. La frecuencia de inspección debe tener
en cuenta que todos los procesos se cambian por el propio acto de inspección. El dilema se
presenta cuando la frecuencia de inspección requerida excede la tolerancia del proceso a ser
inspeccionado. Afortunadamente, esto parece no aplicar al desarrollo de software.otro factor es
la habilidad y la diligencia de la gente que inspecciona los resultados del trabajo.
2.1.3. Adaptación
15
Capítulo 2: Marco Teórico UNMSM
Si el inspector determina, a través de la inspección, que uno o más aspectos del proceso están
fuera de los límites aceptables, y que el producto resultante será inaceptable, debe ajustar el
proceso o el material procesado. El ajuste debe realizarse lo más rápidamente posible para
minimizar una desviación mayor.
Hay tres puntos para la inspección y la adaptación en Scrum. La reunión diaria de Scrum se
utiliza para inspeccionar el avance hacia la meta de Sprint, y para hacer las adaptaciones que
optimicen el valor de la jornada de trabajo del día siguiente. Además, la Revisión de Sprint y las
Reuniones de Planificación se utilizan para inspeccionar el progreso hacia el Objetivo (la
liberación de una versión) y para hacer las adaptaciones que optimicen el valor del siguiente
Sprint. Por último, la Retrospectiva de Sprint se utiliza para revisar el Sprint pasado y determinar
qué adaptaciones harán el siguiente Sprint más productivo, satisfactorio y agradable. El
contenido de Scrum se compone de un conjunto de Equipos Scrum y sus roles asociados; así
como de Bloques de Tiempo, Artefactos, y Reglas [Schwaber, Sutherland 11].
2.2. CMMI-DEVCMMI para el desarrollo es un modelo de referencia que cubre las actividades para el desarrollo de productos y servicios. Organizaciones de muchas industrias, incluyendo la aeroespacial, la banca, hardware, software, la defensa, la fabricación de automóviles, y de las telecomunicaciones, hacen uso de CMMI para el Desarrollo.
CMMI para el Desarrollo contiene las prácticas que abarcan la gestión de proyectos, gestión de procesos, ingeniería de sistemas, ingeniería de hardware, ingeniería de software, y otros procesos de apoyo utilizados en el desarrollo y mantenimiento. Use su juicio profesional y el sentido común para interpretar el modelo para una organización. Es decir, aunque las áreas de proceso que se describen en este modelo representan conductas consideradas las mejores prácticas para la mayoría de los usuarios, las áreas de proceso y las prácticas deben ser interpretadas con un conocimiento en profundidad del modelo CMMI-DEV, con las limitaciones de la organización y su entorno empresarial.[SEI 10]
2.3. SCAMPIEl Estándar CMMI Appraisal Method for Process Improvement (SCAMPI) está diseñado para proporcionar clasificaciones de calidad de referencia en relación con los modelos de Capability Maturity Model Integration (CMMI). Es aplicable a una gran variedad de modos de uso de evaluación, incluyendo tanto la mejora del proceso interno y determinaciones externas de capacidad. SCAMPI cumple todos los requisitos de evaluación para CMMI (ARC), los requisitos
16
Capítulo 2: Marco Teórico UNMSM
para una clase un método de evaluación y apoya el desarrollo de ISO / IEC 15504 evaluaciones [SEI 12].
SCAMPI permite al patrocinador:
• Profundizar en la capacidad de ingeniería de una organización mediante la identificación de las fortalezas y debilidades de sus procesos actuales
• Relacionar estas fortalezas y debilidades del modelo CMMI
• Dar prioridad a los planes de mejora
• Centrarse en las mejoras (corregir las debilidades que generan riesgos) que resulten más beneficiosas para la organización, dado su nivel actual de madurez de la organización o las capacidades de proceso
• Derivar clasificaciones de capacidad a nivel, así como un índice de nivel de madurez
• Identificar los riesgos de desarrollo / adquisición con respecto a las determinaciones de la capacidad / madurez
.
17
Capítulo 3: Estado del Arte UNMSM
CAPÍTULO 3: ESTADO DEL ARTE
Las metodologías usadas actualmente en el desarrollo de software nos dan un entendimiento de
las mejores prácticas recopiladas a través de la práctica, formas y entornos de trabajo, que las
empresas pueden aplicar en la gestión de proyectos de software para crear mejores productos .
3.1. TaxonomíaLa taxonomía de la tesis está enmarcada en el Programa 5: Ingeniería de Software en la línea: P5.2 Proceso de Desarrollo de Software, de acuerdo Facultad de Ingeniería de Sistemas e Informática.
3.2. CMMI-DEV
Durante las últimas décadas, el desarrollo de software y de sistemas que integran otras
tecnologías, evidenció la necesidad de un marco en el cual ordenar y sistematizar los procesos de
desarrollo y gestión de los proyectos. Durante más de dos décadas el Departamento de Defensa
de EEUU financió numerosos estudios y apoyó la formación del SEI (Software Engineering
Institute, Carnagie Mellow University) para desarrollar modelos con ese objetivo. El modelo
CMM (Capability Maturity Model) para el software fue concebido con esta intensión y fue
adoptado por la industria convirtiéndose en el estándar más utilizado. Buena parte de su
expansión fue la adopción del mismo por parte de las “software factories” de la India, polo de
desarrollo de un crecimiento enorme en los últimos diez años. Con la aplicación del modelo
CMM y la experiencia acumulada se detectó la necesidad de contar con un modelo más
abarcativo que incluyera el concepto más amplio de sistema. Así surgió el modelo CMMI
(Capability Maturity Model Integration) [Paulk,Curtis 91].
El modelo CMM ha servido como marco de referencia para la implementación de mejoras de
procesos en organizaciones en muchas partes del mundo y se han gastado miles de millones de
dólares en estas implementaciones. Sin embargo, no todos los resultados han sido alentadores.
Algunos informes indican que la cantidad de fracasos es muy alta en la implementación de estos
procesos, llegando al 70 % de las intervenciones. Varias investigaciones han mostrado que buena
18
Capítulo 3: Estado del Arte UNMSM
parte de este porcentaje se debe a que el modelo no contempla los aspectos sociales de las
organizaciones que intentan llevar a cabo un proceso de mejoras [Ngwenyama, Nielsen 03].
La conclusión de estos trabajos es que resulta necesario complementar este modelo con otros que
contengan los aspectos mencionados. Los analistas coinciden en afirmar que el paradigma del
modelo se basa en una visión racional y mecanicista de las organizaciones. El modelo CMM
tiene como objetivo el logro de procesos óptimos repetibles en el desarrollo de software. Esto
implica un cambio en la forma de pensar y trabajar en el trabajo diario de los desarrolladores. Por
esta razón es necesario incorporar en estos procesos aspectos de la cultura de la organización
donde se implementará, basados en la idea de que “la cultura de una organización determina lo
que se podrá y no se podrá realizar cuando se plantean cambios” [Quinn,McGrant 85].
3.2.1. Descripción Del Modelo CMMI-DEV
3.2.1.1. Aspectos claves
Los aspectos claves del modelo son, por un lado, la clasificación de las organizaciones en
maduras e inmaduras y, luego, la prescripción del camino a seguir por una organización
inmadura para evolucionar y convertirse en una organización madura.
El modelo entiende por organización inmadura aquella que lleva adelante sus proyectos sin una
definición previa de los procesos a seguir. Estos proyectos frecuentemente sobrepasan sus
presupuestos y tiempos de terminación debido a que son iniciados con estimaciones poco
realistas, sin una planificación adecuada, y son llevados adelante sin ningún tipo de gestión. En
general estos proyectos no terminan o terminan con una disminución importante en la calidad
esperada del producto.
Por organizaciones maduras el modelo entiende a aquellas que desarrollan sus proyectos en
forma planeada. El logro de los objetivos del proyecto son asignados al cumplimiento de las
reglas preestablecidas. Los presupuestos asignados y el tiempo previsto son los necesarios
porque se parte de estimaciones metódicas y basadas en datos de proyectos previos, con roles y
responsabilidades bien definidos.
19
Capítulo 3: Estado del Arte UNMSM
Para que una organización se convierta en madura debe evolucionar con el tiempo alcanzando
sucesivos niveles de madurez.
El modelo CMM identifica los siguientes niveles de madurez:
Nivel de Madurez 1 - Inicial – Ausencia total de procesos definidos.
Nivel de Madurez 2 - Gestionado – Procesos de administración establecidos para lograr el
seguimiento de los costos, tareas y funcionalidad. La disciplina está dada por la repetición en
proyectos con aplicaciones similares.
Nivel de Madurez 3 - Definido – Además de las definiciones del nivel anterior, son
incorporadas actividades de administración de ingeniería en forma documentada, estandarizada e
integradas en una familia de procesos normalizados de la organización. Los proyectos utilizan
una versión adaptada de esas normas para su desarrollo.
Nivel de Madurez 4 - Administrado – Se llevan adelante los proyectos en forma controlada
con métricas que permiten mediciones confiables de los procesos y productos.
Nivel de Madurez 5 - Optimizado – Incluye la mejora continua de procesos a partir de la
comparación y análisis de mediciones sucesivas de los proyectos.
20
Capítulo 3: Estado del Arte UNMSM
Figura 2 Áreas de proceso del nivel 2 [SEI 10]
El modelo CMMI incorpora al modelo por niveles de madurez de las organizaciones una vista de
niveles de capacidad por área de procesos. La misma está orientada a incluir los casos en los
cuales las organizaciones necesitan una capacidad diferenciada por área de proceso debido a los
objetivos de sus negocios. Además, este modelo enfatiza a lo largo de sus definiciones la
relación de cada una de sus áreas de proceso con los objetivos de negocio mencionados.
Estos niveles de capacidad son caracterizados genéricamente de la siguiente manera:
Nivel de Capacidad 0 – Incompleto: Área de proceso sin objetivos.
Nivel de Capacidad 1 – Ejecutada: Objetivos específicos del área de proceso son satisfechos.
Nivel de Capacidad 2 – Administrada: Área de proceso institucionalizada a partir de una política organizacional de uso de los procesos.
Nivel de Capacidad 3 – Definida: Área de proceso institucionalizada a partir de un proceso definido.
21
Capítulo 3: Estado del Arte UNMSM
Nivel de Capacidad 4 – Cuantitativamente Administrada: Área de proceso institucionalizada a partir de una política organizacional de la administración cuantitativa de procesos.
Nivel de Capacidad 5 – Optimizada: Área de proceso institucionalizada a partir de la optimización de sus procesos.
En el modelo CMMI las áreas de proceso son clasificadas en las siguientes categorías:
1. Process Management
2. Project Management
3. Engineering
4. Support
3.2.1.2. Implementación La implementación de un proceso de mejoras según el modelo CMMI está compuesto de las siguientes fases:
Inicio, en esta fase se relevan los procesos, tareas, actividades y activos con que cuenta la organización, así como las políticas generadas por la conducción de la organización. El método que CMMI propone para la realización de este relevamiento es SCAMPI (Standard CMMI Assessment Method for Process Improvement). Consiste de un conjunto estructurado de actividades tales como entrevistas, revisión de documentos, presentaciones y análisis de respuestas a cuestionarios. El resultado de esto es la obtención de las fortalezas y debilidades, sobre las cuales se elaborará el Plan de Mejoras. El objetivo de esta fase es determinar las fortalezas, debilidades y oportunidades de mejora de la organización. Todo esto conducido por los objetivos de negocio de la organización.
Diseño, basados en las debilidades y fortalezas encontradas en el SCAMPI se elabora el Process Improvement Plan (PI Plan) y los Action Plan (PAs).
Piloto, de acuerdo a los objetivos planteados en cada PATs (Process Action Team) y al producto resultante de su trabajo (proceso, tarea, actividad, estándares), se capacita a los miembros del grupo del proyecto piloto y se prueba las prácticas correspondientes.
Implementación, en esta fase se extiende al resto de la organización las prácticas llevadas adelante en todos y cada uno de los proyectos piloto.
3.2.2. Áreas de Proceso del Nivel de Madurez 2
22
Capítulo 3: Estado del Arte UNMSM
3.2.2.1. Gestión De Requerimientos (REQM)
El propósito de Gestión de Requerimientos (REQM = Requirements Management) es gestionar
requerimientos de los productos y componentes de producto del proyecto y asegurar
alineamiento entre dichos requerimientos y los planes y productos de trabajo del proyecto. Los
objetivos son:
Los requerimientos se gestionan y las inconsistencias con planes y productos de trabajo
se identifican.
Desarrollar un entendimiento con quienes proporcionan requerimientos acerca del
significado de los requerimientos.
Obtener compromiso con los requerimientos de los participantes del proyecto.
Gestionar cambios a los requerimientos conforme ellos evolucionan durante el proyecto.
Mantener trazabilidad bidireccional entre los requerimientos y productos de trabajo.
Asegurar que los planes y productos de trabajo del proyecto permanecen alineados con
los requerimientos.
3.2.2.2. Planificación De Proyecto (PP)
El propósito de Planificación de proyecto (PP = Project Planning) es establecer y mantener
planes que definan las actividades del proyecto. Sus objetivos son:
Establecer y mantener estimaciones de parámetros de planificación de proyecto.
Establecer una estructura de división del trabajo (EDT) de alto nivel para estimar el
alcance del proyecto.
Establecer y mantener estimaciones de atributos de productos de trabajo y tareas.
Definir las fases del ciclo de vida del proyecto sobre las cuales delimitar el esfuerzo de
planificación.
Estimar el esfuerzo y costo del proyecto para los productos de trabajo y tareas con base
en una justificación de estimación.
23
Capítulo 3: Estado del Arte UNMSM
Establecer y mantener un plan de proyecto como la base para gestionar el proyecto.
Establecer y mantener el presupuesto y cronograma del proyecto.
Identificar y analizar riesgos del proyecto.
Planificar la gestión de datos del proyecto.
Planificar los recursos para ejecutar el proyecto.
Planificar los conocimientos y habilidades necesarias para ejecutar el proyecto.
Planificar la involucración de las partes interesadas identificadas.
Establecer y mantener el plan completo del proyecto.
Establecer y mantener los compromisos con el plan de proyecto.
Revisar todos los planes que afectan el proyecto para comprender los compromisos del
proyecto.
Adaptar el plan de proyecto para conciliar recursos disponibles y estimados.
Obtener compromiso con las partes interesadas relevantes responsables de ejecutar y
apoyar la ejecución del plan.
3.2.2.3. Monitorización Y Control De Proyecto (PMC)
El propósito de Monitorización y Control de Proyecto (PMC = Project Monitoring and Control)
es proporcionar un entendimiento del avance del proyecto de modo que se puedan tomar
acciones correctivas apropiadas cuando el desempeño del proyecto se desvía significativamente
del plan. Sus objetivos son:
El desempeño y avance real del proyecto se monitoriza versus el plan del proyecto.
Monitorizar valores reales de parámetros de planificación de proyecto versus el plan de
proyecto.
Monitorizar compromisos versus aquellos identificados en el plan de proyecto.
Monitorizar riesgos versus aquellos identificados en el plan de proyecto.
Monitorizar la gestión de datos del proyecto versus el plan de proyecto.
Monitorizar la involucración de las partes interesadas versus el plan de proyecto.
Revisar periódicamente el avance del proyecto, desempeño y problemas.
Revisar los logros del proyecto y resultados en hitos seleccionados del proyecto.
Las acciones correctivas se gestionan hasta su cierre cuando el desempeño o resultados
del proyecto se desvían significativamente del plan.
24
Capítulo 3: Estado del Arte UNMSM
Recolectar y analizar problemas y determinar acciones correctivas para resolverlos.
Tomar acción correctiva sobre problemas identificados.
Gestionar acciones correctivas hasta su cierre.
3.2.2.4. Gestión De Configuración (CM)
El propósito de Gestión de Configuración (CM = Configuration Management) es establecer y
mantener la integridad de productos de trabajo usando identificación de configuración, control de
configuración, contabilizar el estado de la configuración y auditorias de configuración.
Se establecen líneas base de entregables identificados de proceso.
Identificar elementos de configuración, componentes y productos de trabajo relacionados
a ser colocados bajo gestión de configuración.
Establecer y mantener un sistema de gestión de configuración y un sistema de gestión de
cambios para controlar productos de trabajo.
Crear ó liberar líneas base para uso interno y para entregar al cliente.
Realizar seguimiento y control a los cambios a los productos de trabajo bajo gestión de
configuración.
Realizar seguimiento a solicitudes de cambio de los elementos de configuración.
Controlar cambios a los elementos de configuración.
Establecer y mantener la integridad de las líneas base.
Establecer y mantener registros que describen los elementos de configuración.
Realizar auditorias de configuración para mantener la integridad de las líneas base de
configuración.
3.2.2.5. Medición Y Análisis (MA)
El propósito de Medición y Análisis (MA = Measurement and Analysis) es desarrollar y sostener
una capacidad de medición usada para apoyar las necesidades de información para gestión. Sus
objetivos son:
Los objetivos y actividades de medición están alineadas con las necesidades y objetivos
identificados de información.
25
Capítulo 3: Estado del Arte UNMSM
Establecer y mantener objetivos de medición derivados de las necesidades y objetivos
identificados de información.
Especificar mediciones para resolver objetivos de medición.
Especificar cómo los datos de medición se obtienen y almacenan.
Especificar cómo los datos de medición se analizan y comunican.
Proporcionar los resultados de medición, que resuelven las necesidades y objetivos
identificados de medición.
Obtener datos de medición especificados.
Analizar e interpretar datos de medición.
Gestionar y almacenar datos de medición, especificaciones de medición y resultados de
análisis.
Comunicar los resultados de medición y las actividades de análisis a todas las partes
interesadas relevantes.
3.2.2.6. Aseguramiento De La Calidad De Proceso Y Producto (PPQA)
El propósito del Aseguramiento de la Calidad de Proceso y Producto (PPQA = Process and
Product Quality Assurance) es proporcionar al equipo y administración visibilidad objetiva de
los procesos y productos de trabajo asociados. Sus objetivos son:
Evaluar objetivamente adherencia del proceso ejecutado y productos de trabajo asociados
con las descripciones de proceso, estándares y procedimientos aplicables.
Evaluar objetivamente procesos ejecutados seleccionados versus descripciones de
proceso, estándares y procedimientos aplicables.
Evaluar objetivamente productos de trabajo seleccionados versus descripciones de
proceso, estándares y procedimientos aplicables.
A los problemas de no conformidad se les hace seguimiento objetivamente y se
comunican y se asegura su solución.
26
Capítulo 3: Estado del Arte UNMSM
Comunicar problemas de calidad y asegurar la solución de problemas de no conformidad
con el equipo y gerentes.
Establecer y mantener registros de actividades de aseguramiento de la calidad.
3.3. Scrum
El marco de Scrum se compone de un conjunto de Equipos Scrum y sus roles asociados; así
como de Bloques de Tiempo, Artefactos, y Reglas.
Los Equipos Scrum están diseñados para optimizar la flexibilidad y la productividad, para lo
cual, son auto-gestionados, multifuncionales, y trabajan en iteraciones. Cada Equipo Scrum tiene
tres roles:
1) El ScrumMaster, que es responsable de asegurar que el proceso es comprendido y seguido
2) El Propietario del Producto (Product Owner), que es responsable de maximizar el valor
del trabajo realizado por el Equipo Scrum,
3) El Equipo, que hace el trabajo. El equipo está formado por desarrolladores con todos los
conocimientos necesarios para convertir los requerimientos del Propietario del Producto en un
incremento potencialmente utilizable del producto al final del Sprint. [Schwaber, Sutherland 11]
Scrum emplea bloques de tiempo para crear regularidad. Los elementos de Scrum basados en
bloques de tiempo son: la Reunión de Planificación de la Entrega, la Reunión de Planificación
del Sprint, el Sprint, el Scrum Diario, la Revisión del Sprint, y la Retrospectiva del Sprint. El
corazón de Scrum es un Sprint, que es una iteración de un mes de duración o menos. La duración
de cada Sprint se mantiene constante a lo largo de todo el esfuerzo de desarrollo. Todos los
Sprints utilizan el mismo marco de referencia de Scrum, y proporcionan un incremento de
funcionalidad potencialmente utilizable al producto final. Cada Sprint se inicia inmediatamente
después del anterior.
Scrum emplea cuatro Artefactos principales. El Product Backlog es una lista priorizada de todo
lo que podría ser necesario en el producto. El Sprint Backlog es una lista de tareas para convertir
el Product Backlog correspondiente a un Sprint, en un incremento del producto potencialmente
entregable. Un Burndown es una medida del backlog restante a través del tiempo. Un Burndown
27
Capítulo 3: Estado del Arte UNMSM
de Versión mide el Product Backlog restante durante el tiempo correspondiente a una liberación
de una versión. Un Sprint Burndown mide los elementos restantes del Sprint Backlog en el
transcurso de un Sprint.
Las Reglas sirven de unión para los bloques de tiempo, los roles y los artefactos de Scrum, y se
describen en el cuerpo de este documento. Por ejemplo, una regla de Scrum es que sólo los
miembros del equipo - la gente comprometida a convertir el Product Backlog en un incremento -
pueden hablar durante un Scrum Diario. En las secciones de "Consejos" que encontrará en este
documento se describen formas de aplicar Scrum que no son reglas, sino más bien sugerencias.
3.3.1. Roles de Scrum
El Equipo Scrum consiste en el ScrumMaster, el Propietario del Producto, y el Equipo. A los miembros del equipo Scrum se les llama "cerdos". El Propietario del Producto es el "cerdo" del Product Backlog. El equipo es el "cerdo" del trabajo del Sprint. El ScrumMaster es el "cerdo" del proceso de Scrum. Todo el resto de personas involucradas son "gallinas". Las "gallinas" no pueden decir a los "cerdos" cómo hacer su trabajo. El símil de las "gallinas" y los "cerdos" viene de la siguiente historia:
"Están juntos una gallina y un cerdo, cuando la gallina dice:" ¡Vamos a abrir un restaurante! " El cerdo se lo piensa y dice, "¿Cómo llamaremos al restaurante?" La gallina, dice, "¡Huevos con Jamón!" El cerdo dice: "No, gracias, yo estaría comprometido, pero tú solamente estarías involucrada"
3.3.1.1. El ScrumMaster
El ScrumMaster es responsable de asegurar que el equipo Scrum se adhiere a los valores,
prácticas y normas Scrum. El ScrumMaster ayuda a que el Equipo Scrum y la organización
adopten Scrum. El ScrumMaster enseña al Equipo Scrum mediante entrenamiento y liderándolo
para que sea más productivo y a construya productos de mayor calidad. El ScrumMaster ayuda a
que el Equipo Scrum comprenda y utilice la auto-gestión y a ser multidisciplinar. El
ScrumMaster también debe ayudar al Equipo Scrum a entregar lo mejor de sí mismo, en un
entorno de organización que posiblemente aún no esté optimizado para el desarrollo de
productos complejos. Cuando el ScrumMaster ayuda a realizar estos cambios, esto recibe el
nombre de "eliminar impedimentos." El papel del ScrumMaster es el de servidor y líder del
equipo de Scrum. Sin embargo, el ScrumMaster no gestiona al Equipo Scrum; el equipo Scrum
es auto-gestionado.
28
Capítulo 3: Estado del Arte UNMSM
3.3.1.2. El Propietario del Producto (Product Owner)
El Propietario del Producto es la única persona responsable de gestionar el Product Backlog y
asegurar el valor del trabajo que el equipo lleva a cabo. Mantiene el Product Backlog y asegura
la visibilidad del mismo para todos. Todo el mundo sabe qué elementos tienen la máxima
prioridad, por lo que todo el mundo sabe en qué se va a trabajar.
El Propietario del Producto es una persona, no un comité. Pueden existir comités que le
aconsejen o le influencien, pero aquellos que quieran cambiar la prioridad de un elemento
tendrán que convencerle. Las empresas que adoptan Scrum, pueden encontrarse con el hecho de
que Scrum influye en sus métodos para establecer las prioridades y los requisitos a través del
tiempo.
Para que el Propietario del Producto tenga éxito, todos en la organización deben respetar sus
decisiones. Nadie está autorizado a obligar al Equipo a trabajar bajo un conjunto diferente de
prioridades, y a los Equipos no se les permite prestar atención a nadie que diga lo contrario. Las
decisiones del Propietario del Producto se hacen visibles en el contenido y la priorización del
Product Backlog. Esta visibilidad requiere que el Propietario del Producto dé lo mejor de sí
mismo, y hace que Propietario del Producto sea un rol exigente además de gratificante.
3.3.1.3. El Equipo
Los Equipos de desarrolladores convierten el Product Backlog en incrementos de funcionalidad
potencialmente entregables en cada Sprint. Los Equipos también son multifuncionales; los
miembros del equipo deben tener todas las habilidades necesarias para crear un incremento de
trabajo. Los miembros del Equipo a menudo tienen habilidades especializadas, como la
programación, el control de calidad, el análisis de negocio, la arquitectura, el diseño de la
interfaz de usuario o el diseño de bases de datos. Sin embargo, las habilidades que el miembro
del Equipo comparte - es decir, la habilidad de tratar con un requisito y convertirlo en un
producto utilizable - tienden a ser más importantes que aquellas que no comparte. Las personas
que se niegan a escribir código, ya que son arquitectos o diseñadores, no se ajustan bien a los
Equipos. Todo el mundo interviene, incluso si eso requiere aprender nuevas habilidades o
recordar las antiguas. No hay títulos en los Equipos, y no hay excepciones a esta regla. Los
29
Capítulo 3: Estado del Arte UNMSM
equipos tampoco contienen sub-Equipos dedicados a áreas particulares, como pruebas o análisis
de negocio.
Los Equipos también se auto-organizan. Nadie - ni siquiera el ScrumMaster - dice al Equipo
cómo convertir el Product Backlog en incrementos de funcionalidad entregable. El Equipo busca
por su cuenta la mejor forma de hacerlo. Cada miembro del equipo aplica su experiencia a todos
los problemas. La sinergia resultante mejora la eficiencia global de todo el Equipo, y la eficacia.
El tamaño óptimo para un equipo es de siete personas, más o menos dos. Cuando hay menos de
cinco miembros en el Equipo, hay menos interacción y como resultado hay menos aumento de la
productividad. Es más, el Equipo puede encontrar limitaciones de habilidad en ciertos momentos
del Sprint y no poder entregar una porción entregable del producto. Si hay más de nueve
miembros, el problema simplemente es que se necesita demasiada coordinación. Los equipos
grandes generan demasiada complejidad como para que pueda ser gestionada por un proceso
empírico. Sin embargo, nos hemos encontrado con algunos Equipos exitosos que han superado
los límites superior e inferior de este rango de tamaño. Los roles del Propietario del Producto y
del ScrumMaster no se computan en este rango a menos que sean también cerdos, que trabajen
en las tareas del Sprint Backlog.
La composición del Equipo puede cambiar al final de un Sprint. Cada vez que se cambian los
miembros del Equipo, la productividad obtenida de la auto-organización se ve disminuida. Por
esta razón se debe tener cuidado al cambiar la composición del equipo.
3.3.2. Bloques de Tiempo
Los Bloques de Tiempo en Scrum son la Reunión de Planificación de la Entrega, el Sprint, la
Reunión de Planificación del Sprint, la Revisión del Sprint, la Retrospectiva del Sprint, y el
Scrum Diario.
30
Capítulo 3: Estado del Arte UNMSM
Figura 3 Medologia de Scrum [Schwaber, Sutherland 11]
3.3.2.1. Reunión de Planificación de la Entrega
El propósito de la planificación de la entrega es establecer un plan y unas metas que los Equipos
Scrum y el resto de las organizaciones puedan entender y comunicar. La planificación de la
entrega responde a las preguntas: "¿Cómo podemos convertir la visión en un producto ganador,
de la mejor manera posible? ¿Cómo podemos alcanzar o mejorar la satisfacción del cliente
deseada y el Retorno de la Inversión?”. El plan de entrega establece el objetivo de la entrega, el
Product Backlog de mayor prioridad, los principales riesgos, y las características generales y la
funcionalidad que va a contener la entrega. También establece una fecha probable de entrega, y
el coste, que debería mantenerse si no cambia nada. La organización puede inspeccionar el
avance y hacer cambios a este plan de entrega en cada Sprint.
La planificación de entrega es completamente opcional. Si los Equipos Scrum empiezan a
trabajar sin esta reunión, la ausencia de los artefactos generados en ella se revelará en la forma de
31
Capítulo 3: Estado del Arte UNMSM
impedimentos que hay que resolver. El trabajo necesario para resolver cada impedimento se
convertirá en un elemento del Product Backlog.
Los productos se construyen utilizando Scrum de forma iterativa, de modo que cada Sprint crea
un incremento del producto, empezando por lo más valioso y de mayor riesgo. Más y más
Sprints van generando incrementos adicionales del producto. Cada incremento es una parte
potencialmente entregable de todo el producto. Cuando se han creado los suficientes incrementos
de valor para el producto, de utilidad para sus inversores, la versión del producto es entregada.
La mayoría de las organizaciones ya tienen un proceso de planificación de entregas, y en la
mayoría de estos procesos, la mayor parte de la planificación se realiza al comienzo del proceso,
y no se modifica a lo largo del tiempo. En la planificación de la entrega en Scrum, se definen un
objetivo general y los resultados probables. Esta planificación de entrega por lo general no
requiere más de un 15-20% del tiempo consumido por una organización para construir un plan
de entrega tradicional. Sin embargo, durante el trabajo en una entrega con Scrum, se realizará
planificación sobre la marcha en cada Revisión del Sprint y Reunión de Planificación del Sprint,
así como diariamente en cada reunión diaria de Scrum. En total, los esfuerzos de planificación de
una entrega de Scrum probablemente consumen muy poco esfuerzo más que los de la
planificación de entrega tradicional.
La planificación de una entrega requiere estimar y priorizar los elementos del Product Backlog
para dicha entrega. Hay muchas técnicas para hacer esta estimación y priorización, que se
encuentran fuera del ámbito de Scrum, pero que son útiles cuando se utilizan en combinación
con Scrum.
3.3.2.2. El Sprint
Un Sprint es una iteración. Los Sprints están limitados en bloques de tiempo. Durante el Sprint,
el ScrumMaster asegura que no se realizan cambios que afecten al Objetivo del Sprint. Tanto la
composición del Equipo como los objetivos de calidad se mantienen constantes durante todo el
Sprint. Los Sprints se componen de: la Reunión de Planificación de Sprint, el trabajo de
desarrollo, la Revisión del Sprint, y la Retrospectiva del Sprint. Los Sprints ocurren uno tras
otro, sin tiempo entre ellos.
32
Capítulo 3: Estado del Arte UNMSM
Un proyecto se utiliza para lograr un resultado; en desarrollo de software, se utiliza para crear un
producto o sistema. Cada proyecto consiste en una definición de lo que se va a construir, un plan
para construirlo, el trabajo realizado de acuerdo con el plan, y el producto resultante. Cada
proyecto tiene un horizonte, es decir, el plazo para el que el plan es bueno.
Si el horizonte es demasiado lejano, la definición puede haber cambiado, pueden haber
intervenido demasiadas variables, el riesgo puede ser demasiado grande, etc. Scrum es un marco
para un proyecto cuyo horizonte no es superior a un mes, y en el cual hay suficiente complejidad
para que un horizonte más largo sea demasiado arriesgado. La previsibilidad del proyecto tiene
que ser controlada por lo menos cada mes, y el riesgo de que el proyecto pueda descontrolarse o
volverse impredecible, debe contenerse por lo menos cada mes.
Un Sprint puede ser cancelado antes de que el bloque de tiempo del Sprint se haya terminado.
Sólo el Propietario del Producto tiene la autoridad para cancelar el Sprint, aunque puede hacerlo
bajo la influencia de los interesados, del Equipo, o del ScrumMaster. ¿Bajo qué tipo de
circunstancias puede un Sprint ser cancelado? La gerencia puede necesitar cancelar un Sprint si
el objetivo del Sprint se queda obsoleto. Esto podría ocurrir si la empresa cambia de dirección, o
si cambia el mercado o las condiciones de la tecnología. En general, un Sprint debe ser cancelado
si dadas las circunstancias ya no tiene sentido. Sin embargo, debido a la corta duración de los
Sprints, rara vez tiene sentido hacer esta cancelación.
Cuando un Sprint se cancela, cualquier elemento del Product Backlog que haya sido completado
y "hecho", es revisado. Estos elementos son aceptados si representan un incremento
potencialmente entregable. Si no es así, el elemento se vuelve a colocar en el Product Backlog
con sus estimaciones iniciales. Cualquier trabajo realizado en él se asume como perdido. La
cancelación de un Sprint consume recursos, ya que todo el mundo tiene que reagruparse en otra
Reunión de Planificación de Sprint para iniciar otro Sprint. Las cancelaciones de Sprints son a
menudo traumáticas para el equipo, y muy poco frecuentes.
3.3.2.3. Reunión de Planificación del Sprint
Durante Reunión de Planificación del Sprint la iteración es planificada. La reunión se restringe a
un bloque de tiempo de ocho horas para un Sprint de un mes. Para Sprints más cortos, se debería
33
Capítulo 3: Estado del Arte UNMSM
reservar para esta reunión un tiempo proporcionalmente menor, aproximadamente el 5% de la
longitud total del Sprint (por ejemplo, para un Sprint de dos semanas sería una Reunión de
Planificación de cuatro horas). La Reunión de Planificación del Sprint y consta de dos partes. La
primera parte, un bloque de cuatro horas, es cuando se decide lo que se hará durante el Sprint. La
segunda parte (otro bloque de cuatro horas para un Sprint de un mes), es cuando el equipo
determina cómo se va a convertir esta funcionalidad en un incremento del producto durante el
Sprint.
Hay dos partes en la Reunión de Planificación del Sprint: la parte del "¿Qué?" y la parte del
"¿Cómo?". Algunos Equipos Scrum combinan las dos. En la primera parte, el Equipo Scrum
aborda la cuestión del "¿Qué?". El Propietario del Producto presenta al equipo la parte más
prioritaria del Product Backlog. Trabajan juntos para determinar qué funciones se van a
desarrollar durante el próximo Sprint. La información de entrada para esta reunión es el Product
Backlog, el último incremento del producto, la capacidad del Equipo y el rendimiento anterior
del Equipo. La cantidad de Backlog que el Equipo selecciona es una decisión del Equipo. Sólo el
Equipo puede evaluar lo que puede lograr en el próximo Sprint.
Una vez seleccionado el Product Backlog, se define un Objetivo para el Sprint. El Objetivo del
Sprint es una meta que se alcanzará mediante la implementación del Product Backlog. Es una
declaración que sirve de orientación al equipo acerca de por qué se está construyendo el
incremento. El Objetivo del Sprint es un subconjunto del objetivo de la entrega.
La razón para tener un Objetivo del Sprint es dar al equipo un margen de maniobra respecto a la
funcionalidad. Por ejemplo, el Objetivo para un Sprint podría ser: "Automatizar la funcionalidad
de modificación de la cuenta del cliente mediante de un middleware de transacciones seguras y
recuperables." A medida que el Equipo trabaja, mantiene este objetivo en mente. A fin de
satisfacer el objetivo, implementa la funcionalidad y la tecnología. Si el trabajo resulta ser más
duro de lo que el equipo había previsto, entonces, el equipo colabora con el Propietario del
Producto y sólo implementa parcialmente la funcionalidad.
En la segunda parte de la Reunión de Planificación del Sprint, el equipo aborda la cuestión del
"¿Cómo?". Durante la segunda mitad de la Reunión de Planificación del Sprint (bloque de cuatro
horas para un Sprint de un mes), el Equipo debe determinar cómo convertirá en un incremento, el
34
Capítulo 3: Estado del Arte UNMSM
Product Backlog (el "Qué") seleccionado durante la reunión de planificación de Sprint. El
Equipo por lo general comienza por el diseño del trabajo. Mientras diseñan, identifican tareas.
Estas tareas son las porciones detalladas del trabajo necesario para convertir el Product Backlog
en software que funciona. Las Tareas se deben descomponer para que se puedan completar en
menos de un día. Esta lista de tareas se llama Sprint Backlog. El Equipo se organiza para asignar
y realizar el trabajo contenido en el Sprint Backlog, ya sea durante la Reunión de Planificación
del Sprint, o sobre la marcha durante el Sprint.
El Propietario del Producto está presente en la segunda parte de la Reunión de Planificación del
Sprint para aclarar el Product Backlog y ayudar a llegar a posibles acuerdos. Si el Equipo
determina que tiene demasiado trabajo, o demasiado poco, puede renegociar el Product Backlog
con el Propietario del Producto. El Equipo también puede invitar a otras personas a estar
presentes, con el fin de proporcionar asesoramiento técnico o de dominio. En esta reunión, un
Equipo nuevo a menudo se da cuenta de que, o bien se hundirá, o saldrá a flote como un equipo,
no individualmente. El Equipo se da cuenta de que debe apoyarse en sí mismo. Al aceptar esto,
comienza a auto-organizarse para llegar a tener las características y el comportamiento de un
verdadero equipo.
3.3.2.4. Revisión del Sprint
Al final del Sprint, se lleva a cabo una reunión de Revisión de Sprint. Esta es una reunión
restringida a un bloque de tiempo de cuatro horas para un Sprint de un mes. Para Sprints de
menor duración, hay que asignar proporcionalmente menos tiempo de la longitud total para esta
reunión (por ejemplo, para dos semanas, la Revisión del Sprint sería de dos horas); esta reunión
no debe consumir más de 5% del total del Sprint. Durante la Revisión de Sprint, el Equipo
Scrum y las partes interesadas debaten sobre lo que se acaba de hacer. En base a eso, y a los
cambios en el Product Backlog que se hayan hecho durante el Sprint, colaboran para determinar
las próximas cosas que se podrían hacer. Se trata de una reunión informal, en la que la
presentación de la funcionalidad está destinada a fomentar la colaboración para determinar qué
hacer a continuación.
La reunión incluye por lo menos lo siguiente: El Propietario del Producto identifica lo que se ha
hecho y lo que no se ha hecho. El Equipo analiza lo que salió bien durante el Sprint y cuáles son
35
Capítulo 3: Estado del Arte UNMSM
los problemas que encontró, y cómo resolvió estos problemas. El Equipo entonces muestra el
trabajo que ha sido completado y responde preguntas. El Propietario del Producto a
continuación, analiza el Product Backlog en su estado actual. Proyecta las fechas probables de
finalización con distintos supuestos de velocidad. Todo el grupo colabora entonces sobre lo que
ha visto y lo que esto significa en cuanto a qué hacer a continuación. La Revisión de Sprint
ofrece una valiosa aportación a la siguiente Reunión de Planificación de Sprint.
3.3.2.5. Retrospectiva del Sprint
Después de la Revisión del Sprint, y antes de la próxima Reunión de Planificación de Sprint, el
Equipo Scrum mantiene una reunión Retrospectiva del Sprint. Es una reunión restringida a un
bloque de tiempo de tres horas para Sprints de un mes (asignar tiempo proporcionalmente menor
para Sprints de longitud menor). En esta reunión, el ScrumMaster alienta al Equipo Scrum a
revisar, en el marco de proceso y prácticas de Scrum, su proceso de desarrollo, para que sea más
eficaz y agradable para el próximo Sprint. Muchos libros documentan técnicas que son útiles
para su uso en las Retrospectivas.
El propósito de la Retrospectiva es inspeccionar cómo fue el último Sprint en lo que respecta a
las personas, relaciones, procesos y herramientas. La inspección debería identificar y priorizar
los principales elementos que hayan ido bien y aquellos elementos que si se hiciesen de forma
diferente, podrían producir mejoras. Entre estos elementos se incluyen la composición del equipo
Scrum, la organización de las reuniones, las herramientas, la definición de "hecho", los métodos
de comunicación, y los procesos para convertir los elementos del Product Backlog en algo
"hecho". Al final de la Retrospectiva del Sprint, el Equipo Scrum debería haber identificado
acciones concretas de mejora que se implementarán en el próximo Sprint. Estos cambios se
convierten en la adaptación derivada de la inspección empírica.
3.3.2.6. Scrum Diario
Cada Equipo se reúne todos los días 15 minutos en una reunión de inspección y adaptación
llamada Scrum Diario. El Scrum Diario se lleva a cabo a la misma hora y en el mismo lugar a lo
largo de todos los Sprints. Durante la reunión, cada miembro del equipo, explica:
1. Lo que ha conseguido hacer desde la última reunión;
36
Capítulo 3: Estado del Arte UNMSM
2. Lo que va a hacer hasta la próxima reunión, y
3. Qué obstáculos tiene en su camino.
Los Scrums Diarios mejoran las comunicaciones, eliminan otras reuniones, identifican y
eliminan los impedimentos al desarrollo, destacan y promueven la rápida toma de decisiones y
mejoran el nivel de conocimiento de los proyectos.
El ScrumMaster se asegura de que el Equipo mantiene la reunión. El Equipo es responsable de
conducir el Scrum Diario. El ScrumMaster enseña al Equipo a mantener el Scrum Diario breve,
mediante la aplicación de las reglas, y asegurándose de que la gente es breve. El ScrumMaster
también hace cumplir la regla de que a las gallinas no se les permite hablar ni de ninguna manera
interferir en el Scrum Diario.
El Scrum Diario no es una reunión de seguimiento del estado del proyecto. No es para
cualquiera, sino sólo para la gente que trabaja en transformar los elementos del Product Backlog
en un incremento (el Equipo). El Equipo se ha comprometido a un Objetivo del Sprint, y a los
correspondientes elementos del Product Backlog. El Scrum Diario (con las tres preguntas)
constituye una inspección de los progresos hacia ese Objetivo del Sprint. Por lo general se
mantienen reuniones subsiguientes, para adecuar el trabajo futuro en el Sprint. La intención es
optimizar la probabilidad de que el equipo logre su Objetivo. Ésta es una reunión clave de
revisión y adaptación en el proceso empírico de Scrum.
3.3.3. Artefactos de Scrum
Los Artefactos de Scrum incluyen: el Product Backlog, el Burndown de entrega, el Sprint
Backlog, y el Sprint Burndown.
3.3.3.1. Product Backlog y Burndown de Entrega
Los requisitos para el producto, que el/los Equipo/s está/n elaborando, están listados en el
Product Backlog. El Propietario del Producto es responsable del Product Backlog, de su
contenido, disponibilidad y priorización. El Product Backlog nunca está completo. La primera
versión para el desarrollo, tan sólo establece los requisitos inicialmente conocidos, y que son
entendidos mejor. El Product Backlog evoluciona a medida que el producto y el entorno en el
37
Capítulo 3: Estado del Arte UNMSM
que se utilizará evoluciona. El Product Backlog es dinámico, ya que cambia constantemente para
identificar qué necesita el producto para ser adecuado, competitivo y útil. Mientras existe un
producto, el Product Backlog también existe.
El Product Backlog representa todo lo necesario para desarrollar y lanzar un producto exitoso. Se
trata de una lista de todas las características, funciones, tecnologías, mejoras y correcciones de
errores que constituyen los cambios que se harán al producto para futuras versiones. Los
elementos del Product Backlog deben tener los siguientes atributos: una descripción, una
prioridad, y una estimación. La prioridad está guiada por el riesgo, el valor y la necesidad. Hay
muchas técnicas para evaluar estos atributos.
El Product Backlog está ordenado por prioridad. La parte más prioritaria del Product Backlog
determina las actividades de desarrollo que se llevarán a cabo de forma inmediata. Cuanto mayor
sea la prioridad, el elemento es más urgente, es sobre el que más se ha pensado, y es el que
atesora mayor consenso en cuanto a su valor. La parte más prioritaria del Product Backlog está
más clara, y tiene información más detallada que el Product Backlog de menor prioridad. Recibe
mejores estimaciones, basadas en la mayor claridad y el mayor detalle. Cuanto menor sea la
prioridad, menor es el detalle, hasta el punto de que puede hacerse difícil distinguir claramente
un elemento de baja prioridad.
A medida que se utiliza un producto, que aumenta su valor, y que el mercado proporciona
retroalimentación, el Product Backlog se va revelando como una lista más amplia y exhaustiva.
Los requisitos nunca dejan de cambiar. El Product Backlog es un documento vivo. Los cambios
en los requisitos de negocio, las condiciones del mercado, la tecnología, y el personal, causan
cambios en el Product Backlog. Para minimizar la repetición del trabajo, sólo se deben detallar
los elementos de más alta prioridad. Los elementos del Product Backlog que ocuparán a los
Equipos en los próximos Sprints tienen un alto nivel de detalle, habiendo sido descompuestos
para que cualquier elemento pueda completarse dentro de la duración del Sprint.
A menudo, varios equipos Scrum trabajan juntos en el mismo producto. En ese caso, se utiliza un
solo Product Backlog para describir el trabajo futuro en el producto. Se utiliza entonces un
atributo del Product Backlog que agrupa a los elementos. La agrupación puede hacerse por
38
Capítulo 3: Estado del Arte UNMSM
conjunto de características, por tecnología o por arquitectura, y es utilizada a menudo por el
Equipo Scrum como una forma de organizar el trabajo.
El gráfico de Burndown de la Entrega registra la suma del esfuerzo restante estimado del Product
Backlog a lo largo del tiempo. El esfuerzo se estima en cualquier unidad de trabajo que el Equipo
Scrum, y la organización, hayan decidido. La unidad de tiempo que se utiliza generalmente es el
Sprint.
Durante la Planificación de la Entrega se calculan inicialmente las estimaciones de los elementos
del Product Backlog y, también posteriormente, a medida que los elementos son creados.
Durante la preparación del Product Backlog las estimaciones son examinadas y revisadas. Sin
embargo, pueden ser actualizadas en cualquier momento. El equipo es responsable de todas las
estimaciones.
El Propietario del Producto puede influir en el Equipo, ayudando a comprender y optar por
soluciones de compromiso, pero la estimación final la hace el Equipo. El Propietario del
Producto mantiene publicados el Product Backlog y la gráfica de Burndown de Entrega
actualizados en todo momento. Se puede trazar una línea de tendencia en la gráfica, basándose
en el cambio en el trabajo restante.
3.3.3.2. Sprint Backlog y Sprint Burndown
El Sprint Backlog se compone de las tareas que el Equipo realiza para convertir los elementos
del Product Backlog en un incremento "hecho". Muchas de ellas se desarrollan durante la
Reunión de Planificación del Sprint. Constituyen todo el trabajo que el equipo identifica como
necesario para cumplir con el Objetivo del Sprint. Los elementos del Sprint Backlog deben
descomponerse. La descomposición debe ser suficiente para que los cambios en curso puedan ser
entendidos en el Scrum Diario. El tamaño normal para un elemento del Sprint Backlog en el que
se está trabajando es de un día o menos.
El equipo modifica el Sprint Backlog a lo largo de todo el Sprint, así como la parte de Sprint
Backlog adicional que surja durante el Sprint. A medida que se van concretando tareas
individuales, se puede descubrir que se necesitan más o menos tareas, o que una determinada
tarea llevará más o menos tiempo de lo previsto. A medida que es necesario nuevo trabajo, el
39
Capítulo 3: Estado del Arte UNMSM
Equipo lo añade al Sprint Backlog. A medida que se va trabajando o se terminan tareas, se
actualizan las horas de trabajo estimado restante para cada tarea. Cuando alguna tarea se revela
como innecesaria, es eliminada. Sólo el Equipo puede cambiar su Sprint Backlog durante un
Sprint. Sólo el Equipo puede cambiar el contenido, o las estimaciones. El Sprint Backlog es una
instantánea muy visible y en tiempo real del trabajo que el equipo tiene previsto realizar durante
el Sprint, y pertenece exclusivamente al Equipo.
3.3.3.3. Hecho
Scrum requiere que los Equipos construyan un incremento de la funcionalidad del producto en
cada Sprint. Este incremento debe ser potencialmente entregable, ya que el Propietario del
Producto puede decidir liberar la funcionalidad de forma inmediata. Para ello, el incremento
debe constituir una porción completa del producto. Debe estar "hecho". Cada incremento debería
ser aditivo a todos los incrementos anteriores, y debería ser probado exhaustivamente, de modo
que se asegure que todos los incrementos funcionan en conjunto.
Durante el desarrollo del producto, asegurar que una determinada funcionalidad está completada,
podría llevar a alguien a asumir que ha sido al menos codificada limpiamente, refactorizada,
sometida a pruebas unitarias, construida y sometida a pruebas de aceptación. Alguien distinto
podría asumir tan solo que el código ha sido construido. Si alguien no conoce cuál es la
definición de “hecho”, los otros dos pilares del control empírico de procesos no funcionan.
Cuando alguien describe algo como hecho, todo el mundo debe entender qué significa hecho.
Hecho define lo que el equipo quiere decir, cuando se compromete a “hacer” un elemento del
Product Backlog en un Sprint. Algunos productos no contienen documentación, por lo que la
definición de “hecho” no incluye a la documentación. Un incremento totalmente “hecho” incluye
todo el análisis, diseño, refactorización, programación, documentación y pruebas para el
incremento, y para todos los elementos del Product Backlog correspondientes al incremento. Las
pruebas incluyen testeo unitario, de sistema, de usuario y de regresión, así como pruebas no
funcionales como pruebas de rendimiento, de estabilidad, de seguridad y de integración. Hecho
incluye cualquier internacionalización. Algunos Equipos no son capaces en un principio de
incluir todo lo requerido para la implementación en su definición de hecho. Esto debe quedar
40
Capítulo 3: Estado del Arte UNMSM
muy claro para el Propietario del Producto. Este trabajo restante deberá ser hecho antes de que el
producto pueda ser implementado y utilizado.
41
Capítulo 4: Aporte Teórico UNMSM
CAPÍTULO 4: APORTE TEÓRICO
42
Capítulo 5: Aporte Práctico UNMSM
CAPÍTULO 5: APORTE PRÁCTICO
CAPÍTULO 6: IMPLEMENTACIÓN
CAPÍTULO 7: CONCLUSIONES Y TRABAJOS FUTUROS
43
8. REFERENCIAS BIBLIOGRÁFICAS
Libros
[Ngwenyama,Nielsen 03]. Ojelanki Ngwenyama and Peter Axel Nielsen, “Competing Values in Software Process Improvement: An Assumption Analysis of CMM From an Organizational Culture Perspective”, 2003, Richmond-USA.
[Quinn, McGrant 85] R. E. Quinn and M. R. McGrath, “The transformation of organizational
cultures: A competing values perspective,” CA: Sage, Newbury Park, 1985,
[Paulk, Curtis 91] M.C.Paulk, B. Curtis, “Capability Maturity Model for Software”, Software Engineering Institute, 1991, Carnegie Mellon-EEUU.
[Schwaber, Sutherland 11] Ken Schwaber and Jeff Sutherland, Scrum Guide,2012,USA
[SEI 10] Software Engineering Institute, CMMI for Development, SEI Administrative Agent,
2010, USA
URL
[SEI 12] Software Engineering Institute, Standard CMMI Appraisal Method for Process Improvement (SCAMPI), Version 1.1: Method Definition Document, http://www.sei.cmu.edu/library/abstracts/reports/01hb001.cfm, consultado el 20 abril del2012.
Documentos
[Crosland 10] Área de finanzas, Estados financieros, 2012, Lima, Perú
44