Estimación esfuerzo desarrollo ágil
para el desarrollo ágil de software
27 de mayo, 2014
Introducción
•
El proceso de estimación de esfuerzo del software en todo proyecto no sólo es esencial
sino también un componente crítico.
•
La estimación de costo del software ha sido una importante pero difícil tarea desde los
inicios de la era de la computación.
•
Aunque se hanintroducido distintas técnicas de estimación de esfuerzo, las que han sido
efectivas en el desarrollo tradicional de software, parecen no resultar efectivamente con
las nuevas metodologías de desarrollo (ágil). Es necesario contar con un método de
estimación adecuado.
•
El desarrollo ágil hace énfasis en buena comunicación entre desarrolladores, entrega
rápida de software y el cambio en lorequerido como la clave en esta metodología.
Técnicas de estimación de costos
Técnicas basadas
en modelos
•
•
•
•
•
•
COCOMO
SLIM
RCA
PRICE-S
SEER-SEM
ESTIMACS
Clasificación de
modelos existentes
•
•
•
•
Regresión
Orientado al aprendizaje
Aproximación experta
Método Bayesiano compuesto
Técnicas de estimación de costos
Modelos de
regresión
Modelo orientadoal
aprendizaje
• Datos de proyectos finalizados. se debe contar con gran cantidad y variedad de datos
• Desarrollo de ecuaciones de regresión: relación entre variables
• Variables: Tamaño, factores ajuste esfuerzo, factores escala.
• Auto-entrenamiento con experiencias previas. Intenta automatizar el proceso
• Refinando con más datos de proyectos en el tiempo
• Costo, duración yesfuerzo utilizando factores de tamaño y funcionalidades deseadas
Aproximación
experta
• Usado cuando no se cuenta con datos empíricos
• Proceso útil y de bajo costo
• Experiencias anteriores acumuladas en equipos de expertos
• Percepción e intuición
Aproximación
combinada
Bayesiana
• Combinación de aproximación experta y modelo de regresión
• Proceso semi-formal de estimación
• Asumeque no siempre se cuenta con todos los datos históricos
• Juicio experto se utiliza para manejar ausencia de datos
• COCOMO II
Desarrollo ágil de Software
Basado en desarrollo iterativo incremental
Autogestión, equipos interfuncionales
Planeamiento adaptativo, Desarrollo y entrega evolutiva, rápida y flexible
respuesta al cambio
Manifiesto 2001: Scrum, Cristal Clear, ExtremeProgramming, Adaptive Software
D., Feature Driven D. Dynamic Systems D.
Características del proceso ágil de software
Modular
Iterativo
Limitado en tiempo
Parsimonia
Adaptativo
•Metodología Scrum:
Se asigna trabajo a todo el equipo, no a un individuo
• Énfasis en el trabajo colaborativo
Negación en cuantificación del trabajo en términos de tiempo
• Socava laauto-organización, la clave del éxito de la metodología.
Incremental
Miembros del equipo utilizan esfuerzo y grado de dificultad para estimar su trabajo
Convergente
• No el jefe de proyecto
Orientado a las
personas
Se cuenta con una escala unificada de medición para el equipo.
Colaborativo
• Todo el equipo entiende y usa esta escala adoptada.
* Las escalas pueden ser de lo que el equipoestime conveniente: Tamaños numéricos, Tamaños de camisetas, secuencia
Fibonacci, razas de perro, etc.
Estimación de esfuerzo en desarrollo ágil de software
En el planeamiento del Sprint
• Se estima el esfuerzo de las historias del backlog
• Product Owner puede priorizar las historias en el backlog
• Entregas futuras se basan en la velocidad del equipo
El Product Owner necesita unaevaluación honesta
• No se involucra en el proceso de estimación para evitar presionar a reducir estimaciones
• Cada miembro muestra su estimación al mismo tiempo, comparan y conversan sus resultados. Mano de Póker.
• Se deben realizar varias rondas de estimaciones para llegar a un acuerdo de equipo.
• Cada vez que se comienza un ciclo de iteración se realiza la estimación.
Historias
del...
Regístrate para leer el documento completo.