Sei sulla pagina 1di 27

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 Cuando se solicita una
medición a un desarrollador
para entregar un programa
Dificuldad probado y brinda una
Impacto
Programar estimación de 12 horas, lo
una más probable es que esté en
Transacción
Pequeño! lo cierto
Probar una
Transacción Esto porque se trata de un
programa cuya dificultad de
estimación es menor o su
• de
Estimar la realización de una actividad impacto de error es pequeño.
12 horas

www.sgcampus.com.mx @sgcampus
1. La problemática de la
estimación
Un gran elemento como la suma de La solución para todos los
pequeñas partes
problemas de estimación es
descomponer un proyecto
en sus partes y hacer las
Dificultad estimaciones en estos
Impacto
mismos modelos
Fase 01 Fase 02 Fase 03 Fase 04 Grande!
Los escenarios en los que la
estimación del todo es
difícil y que el impacto de
los errores es demasiado
Estimar la entrega de un grande no serían un
producto final a lo largo de dos problema y todo el mundo
años
estaría feliz
www.sgcampus.com.mx @sgcampus
1. La problemática de la
estimación
El fallo en esta lógica Al inicio no sé sabe cuáles
son todos los programas
Alcance
Proceso de la Ingeniería de Requierimientos
preliminar
Hay trabajo que no es una
Evolución del desarrollo
función de esa cantidad de
Necesidades
de negocio programas
Decisiones y acuerdos sobre la solución

? ? El nivel de información

? disponible no permite usar la


lógica de la estimación de
? ? abajo hacia arriba como
No se pueden identificar cuáles son esas
• solución para los desafíos de
actividades de 12 horas durante las fases la estimación
iniciales del desarrollo

www.sgcampus.com.mx @sgcampus
1. La problemática de la
estimación
#NoEstimates ¿Por qué estimar si al final
del trabajo ya estoy seguro
de la información de interés?
De igual forma, no se
puede decidir sobre los
Al final, son apenas entre 15
cambios que deben ser
priorizados dentro del o 30 días en un ambiente
20% de las demandas donde se hace uso de
que consumen el 80% de enfoques ágiles de desarrollo
los recursos
Se puede esperar por ese
momento para “saber” en
• lugar de simplemente creer.

www.sgcampus.com.mx @sgcampus
1. La problemática de la
estimación

CANTIDAD (#) ESFUERZO (HH)

> 2.000
HH
18% < 2.000
HH > 2.000
39% HH
< 2.000 61%
HH
82%

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
A partir de esto, tuve la oportunidad
de tomar varias decisiones:
Casa en el estilo Santa Fé
de Cadu
• Es más caro (proporcionalmente)
Presupuesto construir un baño que un cuarto
disponible • Cuando tuve que estimar el costo
únicamente del baño, ya tenía
elementos para realizar
estimaciones de abajo para
arriba…
1m • Los desembolsos ocurridos no
excedieron la estimación inicial
basada en la cantidad de metros
1m
cuadrados y en la productividad
media
Costo unitario medio de
construcción por m2
www.sgcampus.com.mx @sgcampus
2. Unidad de producto para
producción de software
Productividad
Casa construida

Arquitectos Apropiación directa 300 m2


de costos
Ingenieros
Maestro de obras 1m
Albañiles
Producto
Ayudantes
Impuestos y tasas 1m
Aprobaciones y registros
Diversos materiales
US$ 500,00/ Desembolso con
Apropiación m2
indirecta de costos las inversiones

US$ 150.000,00

Costo
www.sgcampus.com.mx @sgcampus
2. Unidad de producto para
producción de software
Unidad de Producto
? 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
¿Cuál sería la métrica que o dueño para fines del análisis de
cumple el papel de unidad de productividad
producto para la planificación
y seguimiento del desempeño Es independiente del desarrollo
para el desarrollo de técnico y decisiones de
software? 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


Dimensión del
Apoyo a la Ingeniería de Requerimientos 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

Cualquier otro tipo de requerimientos o de restricción de Requerimientos que


orden general para el producto están específicamente
asociados a una tarea o

La
La calidad organización
ambiente
Al

la interoperabilidad, equipos de destino, la


adhesión a las normas
servicio del usuario y
privacidad y la
protección contra daños y los lugares para la que describen lo que el
incidentales o operación software debe hacer
accidentales independientemente de
cómo lo haga
La
implementación

las tecnologías de desarrollo, desempeño,


mantenimiento, soporte y compatibilidad, Manipulación y
ejecución como: herramientas de usabilidad, movimiento de datos
programación y pruebas, sistemas confiabilidad,  Transferencia
operativos, sistemas de gestión de seguridad,  Transformación
bases de datos, sistemas de mantenibilidad y  Almacenamiento
gestión de la interfaz gráfica con el portabilidad
usuario, etc.  Recuperación

www.sgcampus.com.mx @sgcampus
2. Unidad de producto para
producción de software
¿Dónde están los requerimientos funcionales?

artefatos con artefatos con artefatos del modelo


definición de decomposición funcional /análisis de datos
requerimientos de los requerimientos

pré-
Requerimientos Funcionales del Usuário
implementación
(‘RFU’) en los artefatos del software a ser
medido
pós-
implementación

artefatos de
programas Procedimentos y manuales
almacenamiento
físicos operacionales del software
físico de datos

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

Primera versión de los Versión posterior de los


Requerimientos Requerimientos

Requerimientos Requerimientos
Puede ser medido
Funcionales del Funcionales del
por COSMIC
Usuario Usuario
Artefactos de
Software

Requerimientos no ‘Verdaderos’ Debería ser


Funcionales RFN registrado, puede
ser cuantificable

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 RNF após requisitos iniciais


adquirido evoluírem em RFU

El tiempo de respueta  Proveer datos externos en  Equipo apropriado


medio en horarios pico tiempo real  Parte del software escrito en
no debe exceder X  Monitorar y reportar tiempo lenguaje de bajo nivel
segundos medio de respuesta
La disponibilidad debe  Habilitar el cambio rápido de  Procesador alternativo
aumentar Y% en procesamiento para un operando en ‘hot stand by’
relación a la media procesador alternativo sin
anual pasada interrupción del servico

www.sgcampus.com.mx @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

Es un valor de una 1 Requerimientos funcionales


magnitud de objetivos del usuario en los artefactos
acuerdo con el 2 del software a ser medido
método de COSMIC
Describe lo que el software debe
Conjunto de: 3 hacer para los usuarios, quienes
Independiente de
implementación son los destinatarios y remitentes
relacionada con los  Modelos de los datos
artefactos del  Principios
software a ser  Reglas Excluye requerimientos técnicos
medido  Procesos o de calidad que expresan cómo
el software funciona
Expresado en
unidades: Puntos de La función es relativa al proceso
Tamaño
Función COSMIC o de información que el software
4 Funcional parcial debe ejecutar para sus usuarios
PFC
del software

www.sgcampus.com.mx @sgcampus
3. El método de medición de
tamaño funcional de COSMIC
Las fases en la medición COSMIC

6
Estrategia Definición de cada parte del 3
1 Objetivos de software a ser medido de la
medición medición exigida
7

5
Requerimientos Modelo de contexto Requerimientos 10
2 funcionales del 9
de software Funcionales del
Usuario en Fase de Usuario en la
artefatos del forma del
software a ser
mapeo
modelo general
medido
de software

Modelo general de
4
software Tamaño
8 funcional del
Fase de
software en
medición unidades de
11 PFC

www.sgcampus.com.mx @sgcampus
3. El método de medición de
tamaño funcional de COSMIC
Usuario funcional

aplicación
siendo Aplicación para
medida
Usuario
funcional usuario funcional de la
humano 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 frontera


siendo Aplicación par
medida

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
Movimientos de datos

camada de aplicación
entradas aplicación exits entries
siendo aplicación par
medida
salidas entries exits
grabaciones lecturas
Almacenamiento Movimientos
persistente 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

objetos de interés items


usuario de
funcional processo cliente producto pedido pedido
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%

Editar y gerenciar incluir, alterar, especificación


pedidos de vacaciones excluir, apreciar... completa
100 PFCG1 150 PFCG2 200 PFCG3

Estimar/Aproximar Medir

propuesta 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
www.sgcampus.com.mx @sgcampus
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

Potrebbero piacerti anche