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
© Copyright 2024