Estimación del esfuerzo y costos necesarios para el desarrollo de

www.sgcampus.com.mx
Carlos Eduardo Vázquez
Estimación del esfuerzo y costos
necesarios para el desarrollo de un
proyecto de software
@sgcampus
www.sgcampus.com.mx
@sgcampus
Objetivos
1. Despertar en el público la conciencia sobre la
problemática en la elaboración de estimaciones
en el desarrollo de software
2. Presentar el concepto de unidad de producto y
de cómo aplicarlo en la medición de software para
la planeación y monitoreo de la productividad en su
desarrollo
3. Introducir el método de COSMIC para la medición
del tamaño funcional y su papel en la generación de
unidades de producto a partir de los requerimientos
funcionales
www.sgcampus.com.mx
@sgcampus
1. La problemática de la
estimación
Estimar pequeños elementos es fácil
Dificuldad
Impacto
Programar
una
Transacción
Pequeño!
Probar una
Transacción
• de
Estimar la realización de una actividad
12 horas
www.sgcampus.com.mx
Cuando se solicita una
medición a un desarrollador
para entregar un programa
probado y brinda una
estimación de 12 horas, lo
más probable es que esté en
lo cierto
Esto porque se trata de un
programa cuya dificultad de
estimación es menor o su
impacto de error es pequeño.
@sgcampus
1. La problemática de la
estimación
Un gran elemento como la suma de
pequeñas partes
Dificultad
Fase 01
Fase 02
Fase 03
Fase 04
Impacto
Grande!
Estimar la entrega de un
producto final a lo largo de dos
años
www.sgcampus.com.mx
La solución para todos los
problemas de estimación es
descomponer un proyecto
en sus partes y hacer las
estimaciones en estos
mismos modelos
Los escenarios en los que la
estimación del todo es
difícil y que el impacto de
los errores es demasiado
grande no serían un
problema y todo el mundo
estaría feliz
@sgcampus
1. La problemática de la
estimación
El fallo en esta lógica
Alcance
preliminar
Al inicio no sé sabe cuáles
son todos los programas
Proceso de la Ingeniería de Requierimientos
Hay trabajo que no es una
función de esa cantidad de
programas
Evolución del desarrollo
Necesidades
de negocio
Decisiones y acuerdos sobre la solución
?
?
?
?
?
•
No se pueden identificar cuáles son esas
actividades de 12 horas durante las fases
iniciales del desarrollo
www.sgcampus.com.mx
El nivel de información
disponible no permite usar la
lógica de la estimación de
abajo hacia arriba como
solución para los desafíos de
la estimación
@sgcampus
1. La problemática de la
estimación
#NoEstimates
De igual forma, no se
puede decidir sobre los
cambios que deben ser
priorizados dentro del
20% de las demandas
que consumen el 80% de
los recursos
•
www.sgcampus.com.mx
¿Por qué estimar si al final
del trabajo ya estoy seguro
de la información de interés?
Al final, son apenas entre 15
o 30 días en un ambiente
donde se hace uso de
enfoques ágiles de desarrollo
Se puede esperar por ese
momento para “saber” en
lugar de simplemente creer.
@sgcampus
1. La problemática de la
estimación
CANTIDAD (#)
> 2.000
HH
18%
< 2.000
HH
82%
ESFUERZO (HH)
< 2.000
HH
39%
> 2.000
HH
61%
Las decisiones ejecutivas de inversión deben ser justificadas a quien
mantiene el gobierno de aquella organización
¿Cómo hacer esto con #NoEstimates?
www.sgcampus.com.mx
@sgcampus
2. Unidad de producto para
producción de software
La unidad de producto en la construcción civil
Presupuesto
disponible
Casa en el estilo Santa Fé
de Cadu
1m
1m
Costo unitario medio de
construcción por m2
www.sgcampus.com.mx
A partir de esto, tuve la oportunidad
de tomar varias decisiones:
• Es más caro (proporcionalmente)
construir un baño que un cuarto
• Cuando tuve que estimar el costo
únicamente del baño, ya tenía
elementos para realizar
estimaciones de abajo para
arriba…
• Los desembolsos ocurridos no
excedieron la estimación inicial
basada en la cantidad de metros
cuadrados y en la productividad
media
@sgcampus
2. Unidad de producto para
producción de software
Productividad
Casa construida
Apropiación directa
Arquitectos
de costos
Ingenieros
Maestro de obras
1m
Albañiles
Ayudantes
Impuestos y tasas
1m
Aprobaciones y registros
Diversos materiales
Apropiación
indirecta de costos
US$ 500,00/
m2
300 m2
Producto
Desembolso con
las inversiones
US$ 150.000,00
Costo
www.sgcampus.com.mx
@sgcampus
2. Unidad de producto para
producción de software
Unidad de Producto
?
?
¿Cuál sería la métrica que
cumple el papel de unidad de
producto para la planificación
y seguimiento del desempeño
para el desarrollo de
software?
Permite aproximar o medir el
tamaño del software a partir de sus
requerimientos
Apoya en la estimación del
esfuerzo del proyecto o en la
cuantificación del desempeño a
partir de la perspectiva del usuario
o dueño para fines del análisis de
productividad
Es independiente del desarrollo
técnico y decisiones de
implementación
Permite comparar la productividad
entre las diferentes técnicas y
tecnologías disponibles
www.sgcampus.com.mx
@sgcampus
2. Unidad de producto para
producción de software
Otras métricas permiten
cuantificar el
desempeño técnico de
productos y servicios a
partir de su
implementación
Análisis de eficiencia del diseño
Mejora en el rendimiento del diseño
Apoyo a la Ingeniería de Requerimientos
Dimensión del
diseño y calidad
Apoyo a la verificación y validación
www.sgcampus.com.mx
@sgcampus
2. Unidad de producto para
producción de software
Tipos de Requerimientos
No son Requerimientos Funcionales
Requerimientos Funcionales
las tecnologías de desarrollo,
mantenimiento, soporte y
ejecución como: herramientas de
programación y pruebas, sistemas
operativos, sistemas de gestión de
bases de datos, sistemas de
gestión de la interfaz gráfica con el
usuario, etc.
www.sgcampus.com.mx
equipos de destino, la
adhesión a las normas
y los lugares para la
operación
desempeño,
compatibilidad,
usabilidad,
confiabilidad,
seguridad,
mantenibilidad y
portabilidad
La
La calidad organización
Al
ambiente
la interoperabilidad,
privacidad y la
protección contra daños
incidentales o
accidentales
La
implementación
Cualquier otro tipo de requerimientos o de restricción de
orden general para el producto
Requerimientos que
están específicamente
asociados a una tarea o
servicio del usuario y
que describen lo que el
software debe hacer
independientemente de
cómo lo haga
Manipulación y
movimiento de datos
 Transferencia
 Transformación
 Almacenamiento
 Recuperación
@sgcampus
2. Unidad de producto para
producción de software
¿Dónde están los requerimientos funcionales?
artefatos con
decomposición funcional
de los requerimientos
artefatos con
definición de
requerimientos
Requerimientos Funcionales del Usuário
(‘RFU’) en los artefatos del software a ser
medido
programas
físicos
www.sgcampus.com.mx
Procedimentos y manuales
operacionales del software
artefatos del modelo
/análisis de datos
préimplementación
pósimplementación
artefatos de
almacenamiento
físico de datos
@sgcampus
2. Unidad de producto para
producción de software
La relación entre los requerimientos funcionales y no funcionales a lo
largo del desarrollo
Primera versión de los
Requerimientos
Versión posterior de los
Requerimientos
Requerimientos
Funcionales del
Usuario
Requerimientos
Funcionales del
Usuario
Puede ser medido
por COSMIC
Requerimientos no
Funcionales
‘Verdaderos’
RFN
Debería ser
registrado, puede
ser cuantificable
Artefactos de
Software
Evolución de la Línea del Tiempo del Proyecto
www.sgcampus.com.mx
@sgcampus
2. Unidad de producto para
producción de software
La relación entre los requerimientos funcionales y no funcionales a lo
largo del desarrollo
Inicialmente, RNF
RFU a ser desenvolvido ou
adquirido
RNF após requisitos iniciais
evoluírem em RFU
El tiempo de respueta
medio en horarios pico
no debe exceder X
segundos
 Proveer datos externos en
tiempo real
 Equipo apropriado
La disponibilidad debe
aumentar Y% en
relación a la media
anual pasada
 Habilitar el cambio rápido de
procesamiento para un
procesador alternativo sin
interrupción del servico
 Monitorar y reportar tiempo
medio de respuesta
www.sgcampus.com.mx
 Parte del software escrito en
lenguaje de bajo nivel
 Procesador alternativo
operando en ‘hot stand by’
@sgcampus
2. Unidad de producto para
producción de software
Derivación de unidad de producto de los requerimientos funcionales
 ISO/IEC 14143 define los principios de la medición del
tamaño funcional
 Implementados en métodos de medición del tamaño
funcional por:
–
–
–
–
–
COSMIC (ISO/IEC 19761:2011)
IFPUG APF (ISO/IEC 20926:2009)
UKSMA Mk II (ISO/IEC 20968:2002)
NESMA APF (ISO/IEC 24570:2005)
FISMA (ISO/IEC 29881:2010)
www.sgcampus.com.mx
@sgcampus
3. El método de medición de
tamaño funcional de COSMIC
 2a generación de métodos de medición del tamaño funcional
 Nivel de confiabilidad compatible con todos los tipos de
software
 Accesible al público y su documentación no tiene costo
 Tiene reconocimiento total de la ISO/IEC
 Proyecto es simple y posee una base conceptual compatible
con la Ingeniería de Software moderna:
–
Los métodos anteriores no siempre tienen una aplicación amplia
suficiente para atender las necesidades del mercado, o funcionan
apenas con acceso restringido
 Planificación y medición del desempeño tiene mayor exactitud
 Tiene la habilidad de capturar el tamaño a partir de múltiples
perspectivas
www.sgcampus.com.mx
@sgcampus
3. El método de medición de
tamaño funcional de COSMIC
Visión general del método de medición COSMIC
1
Es un valor de una
magnitud de
acuerdo con el
método de COSMIC
Independiente de
implementación
relacionada con los
artefactos del
software a ser
medido
Expresado en
unidades: Puntos de
Función COSMIC o
PFC
objetivos
Conjunto de:




4
www.sgcampus.com.mx
Requerimientos funcionales
del usuario en los artefactos
2 del software a ser medido
3
Modelos
Principios
Reglas
Procesos
Tamaño
Funcional parcial
del software
Describe lo que el software debe
hacer para los usuarios, quienes
son los destinatarios y remitentes
de los datos
Excluye requerimientos técnicos
o de calidad que expresan cómo
el software funciona
La función es relativa al proceso
de información que el software
debe ejecutar para sus usuarios
@sgcampus
3. El método de medición de
tamaño funcional de COSMIC
Las fases en la medición COSMIC
1
2
Objetivos
Requerimientos
funcionales del
Usuario en
artefatos del
software a ser
medido
6
Estrategia
de
medición
Definición de cada parte del
software a ser medido de la
medición exigida
Modelo de contexto
de software
5
8
9
Fase de
mapeo
3
7
Requerimientos 10
Funcionales del
Usuario en la
forma del
modelo general
de software
4
Modelo general de
software
Fase de
medición
11
www.sgcampus.com.mx
Tamaño
funcional del
software en
unidades de
PFC
@sgcampus
3. El método de medición de
tamaño funcional de COSMIC
Usuario funcional
aplicación
siendo
medida
Usuario
funcional
humano
Aplicación para
usuario funcional de la
aplicación siendo medida
Usuarios funcionales de una parte del software a ser medido identificados a partir de sus RFU,
como fuentes y/o destinos pretendidos para datos
En la visión lógica para una parte del software de aplicaciones de negocio, los RFU
acostumbran a describir sólo la funcionalidad requerida desde el punto de vista de usuarios
humanos y, tal vez, otras aplicaciones pares que envíen o reciban datos
Cualquier camada de software y dispositivos de hardware que soporten la interación de los
usuarios funcionales con la aplicación son facilitadores de las transferencias de datos y no
remitentes o destinatarios
www.sgcampus.com.mx
@sgcampus
3. El método de medición de
tamaño funcional de COSMIC
Frontera
frontera aplicación
siendo
medida
frontera
Aplicación par
Frontera definida como interfaz conceptual entre software y usuario funcional
Frontera no debe ser confundida con qualquier línea diseñada en un diagrama para delimitar o
alcance de una parte del software o camada
Frontera permite hacer distinción clara entre cualquier parte del software medido (dentro) y
cualquier parte del ambiente de los usuarios funcionales (fuera)
www.sgcampus.com.mx
@sgcampus
3. El método de medición de
tamaño funcional de COSMIC
entradas
salidas
aplicación
siendo
medida
grabaciones
Almacenamiento
persistente
exits
entries
aplicación par
entries
exits
lecturas
Movimientos
de datos
camada de aplicación
Movimientos de datos
Usuarios funcionales interactuan con el software a través de la frontera via dos tipos de
movimientos de datos (entries y exits)
Software también intercambia datos con el dispositivo de almacenamiento persistente via
dos tipos de movimientos de datos (reads y writes)
El dispositivo de almacenamiento no es considerado como un usuario del software y, por
tanto, está dentro de la frontera del software
www.sgcampus.com.mx
@sgcampus
3. El método de medición de
tamaño funcional de COSMIC
Ejemplo de Movimientos de datos
items
de
cliente producto pedido pedido
objetos de interés
usuario
funcional
processo
funcional
pedido
item del pedido
cliente
producto
pedido
item del pedido
confirmación del pedido
www.sgcampus.com.mx
@sgcampus
3. El método de medición de
tamaño funcional de COSMIC
Medición Vs Aproximación del tamaño
1 PFCG1 = 1,5 PFCG2 ± 25% 1 PFCG2 = 1,33 PFCG3 ± 15%
pedidos de vacaciones
incluir, alterar,
excluir, apreciar...
especificación
completa
100 PFCG1
150 PFCG2
200 PFCG3
Editar y gerenciar
Estimar/Aproximar
propuesta
Medir
requerimientos
proyecto
construcción
implementación
1. Evaluar el desempeño por la relación entre la cantidad de horas invertidas y la
cantidad de puntos función COSMIC medidos
2. Re-evaluar los indicadores de productividad para que pasen a incluir el desempeño
de los proyectos que terminan
3. Re-evaluar la cantidad de puntos función COSMIC que corresponden en promedio a
los procesos y a los conceptos de negocio
@sgcampus
www.sgcampus.com.mx
3. El método de medición de
tamaño funcional de COSMIC
Benchmarking
Esfuerzo estimado por otros métodos:
1000 HH
Aproximación del Tamaño:
150 CFP
07 HH/CFP o menos
de 8% de probabilidad
www.sgcampus.com.mx
@sgcampus
3. El método de medición de
tamaño funcional de COSMIC
Conócete a ti mismo
www.sgcampus.com.mx
@sgcampus
Conclusión
De algo que estoy seguro es sobre la diferencia de las
respuestas para la siguiente pregunta:
"¿Por qué me pides 5.000 HH para el proyecto
y no 2.000 HH?”
 Porque yo lo sé
 Porque sólo hay un 2% de probabilidad de entregar el
proyecto de este tamaño con 2.000 HH de acuerdo a
nuestros datos históricos. No hay un proyecto de la base
de datos internacional de evaluación comparativa que
indique esto como algo posible
www.sgcampus.com.mx
@sgcampus