Este paso, ayuda a determinar un factor de ajuste que puede aumentar o disminuir el valor de los puntos de función en un +/- 35%. Las características evaluadas se refieren a requerimientos o restricciones no funcionales, como: comunicaciones de datos, actualización online, complejidad de procesamiento, facilidad de instalación, etc.
Si la calificación de estos factores ambientales es el mínimo, el valor de ajuste será 0.65. Por el contrario, si los factores ambientales son los más complicados, el valor de ajuste será 1.35.
Para obtener la evaluación más precisa y objetiva, se recomienda que para esta actividad el analista de puntos de función trabaje en conjunto con el equipo técnico.
Aplicación al caso
Debido a que no fue proporcionado el detalle de las características ambientales, y sólo se indicó que los requerimientos y restricciones no funcionales son como el “promedio”. Se asumirá un valor de ajuste igual a uno.
Cuando se calculan los puntos de función para realizar una estimación mediante el uso de una herramienta estadística, se alimentará únicamente los puntos de función no ajustados. Es decir, funcionalidad “pura” sin la influencia de características ambientales o de implementación. Esto es debido a que estas herramientas tienen ya sus propias variables ambientales y sus propios criterios de evaluación. Por ello, alimentar puntos de función ajustados redundaría el factor ambiental que ya es considerado en la estimación.
7. Determinar los Puntos de Función Ajustados
En este paso, se aplican fórmulas que en esencia consideran los puntos de función no ajustados y se multiplican por el factor de ajuste. Las fórmulas a ser aplicadas dependen del tipo de conteo (desarrollo, mantenimiento o aplicación). Para el caso de un nuevo desarrollo, la fórmula es la siguiente:
Puntos de Función Ajustados =
Puntos de Función no Ajustados x Valor de Ajuste
Aplicación al caso
Sumando las funciones de datos (12 puntos de función no ajustados) y las funciones transaccionales (23 puntos de función no ajustados), esta aplicación mide 35 puntos de función no ajustados, los cuales multiplicados por el factor de ajuste igual a 1, nos daría 35 puntos de función ajustados.
Uso de los Puntos de Función
Una vez que hemos obtenido el total de puntos de función, estamos ya en posibilidad de beneficiarnos de esta poderosa técnica. Algunos de los beneficios que obtenemos directamente son:
• Estimación de Proyectos: El dato de los puntos de función no ajustados, puede ser introducido en algún modelo de estimación estadístico, el cual sea calibrado con información histórica de proyectos ya terminados y también dimensionados en puntos de función. Los datos históricos de tamaño, esfuerzo, personal, fases y características ambientales, proveen las tendencias clave que pueden ser utilizadas para estimar proyectos similares. En nuestro caso la aplicación mide 35 puntos de función y el cliente quiere que terminemos el proyecto en 2 meses. Buscaremos en la BD historia de proyectos en tamaño y características similares, y con la ayuda de las herramientas estadísticas, identificaremos tendencias y evaluaremos las probabilidades de éxito en diferentes situaciones, como por ejemplo: ¿Cuál es la probabilidad de terminar el proyecto en 2 meses?, ¿Cuál es la cantidad adecuada de personas a ser asignadas al proyecto? ¿Cuál es la cantidad de esfuerzo requerido?, ¿Cuál sería el escenario con menor costo? y además, si con la información histórica se observara una muy baja probabilidad para terminar en 2 meses, ¿Cuántos puntos de función si podríamos comprometer para liberar en 2 meses?. Las herramientas de estimación paramétrica son excelentes para estudios de “¿Qué pasa sí…?” y en la generación de diferentes escenarios factibles. Siempre, el tener mayor información histórica de nuestros propios proyectos, será mejor para incrementar la exactitud de nuestros estimados.
• Control de Alcance: Una vez aprobado el alcance de 35 Puntos de Función, será ahora nuestra línea base de tamaño. Debido a que el proyecto se encuentra en fases tempranas, típicamente existirá un crecimiento de tamaño debido a un mayor entendimiento del negocio y/o aclaración de supuestos. En nuestro caso práctico, hicimos el supuesto de que la aplicación, no contemplaba funcionalidad para definir usuarios y perfiles de seguridad. Sin embargo, durante el desarrollo, dicho supuesto podría cambiar cuando el usuario decidiera que si quiere tal funcionalidad. Como en cualquier administración de cambios, abriríamos nuestro control de cambios al alcance y en la evaluación del impacto, incluiríamos el nuevo tamaño funcional para ver si dicho incremento de tamaño sobrepasa nuestros límites de capacidad. En caso de ser así, ejecutaríamos alguna acción de mitigación o contingencia. Por ejemplo, si derivado del análisis, la funcionalidad creciera hasta 50 puntos de función, ¿mantendríamos el mismo estimado de duración/esfuerzo/personal asociado a los 35 puntos de función?, ¿hasta donde podemos absorber? ¿Sí sólo crece 10 puntos de función, podemos manejar el crecimiento? En este punto, las opciones típicas para administrar el cambio, podrían ser:
- Priorizar junto con el usuario para acotar de nuevo a los 35 puntos de función y mover la funcionalidad con menor prioridad a otras fases.
- Incrementar el tamaño del equipo (si es aún factible).
- Incrementar la duración del proyecto.
• Control de producción: Los puntos funcionales nos permiten cuantificar cual es el tamaño del proyecto. Es decir, al final del proyecto de nuestro caso práctico esperamos que se entreguen 35 puntos de función. Ahora bien, durante el ciclo de vida, cada que es terminado un caso de uso, un diseño, un diagrama de clases, una codificación de un método o un caso de prueba, etc; nos vamos acercando a estos 35 puntos de función. Alguna herramienta para el control de producción tomará como entrada estos 35 puntos de función, y hará visible cuanto se ha construido y cuanto debería tenerse construido con base a información histórica, y así comparar si el ritmo de producción es similar a las tendencias esperadas. En caso de que el ritmo de producción fuera menor al esperado, acciones correctivas o de mitigación sería tomadas. Por ejemplo, quizas, el volumen de producto es menor debido a que los peer reviews, están siendo sólo de forma y no de fondo, y los defectos mayores están pasando directamente por el ciclo de vida, sin que sean tempranamente atendidos. Nuestra acción sería atender esta causa modificando el proceso de peer reviews para detectar estos defectos tempranamente e incrementar el volumen de producción.
• Construcción de base de datos histórica para benchmarks y proyectos de mejora continua: Cuando terminemos nuestro proyecto de 35 puntos de función, como parte de las actividades de cierre del proyecto obtendremos y registraremos métricas y lecciones aprendidas. Entre las métricas que deberán ser recopiladas están: el tamaño funcional, el esfuerzo (horas-hombre, meses-hombre), duración (días calendario, días hábiles), número de personas, cantidad de defectos, número de cambios, cantidad de líneas de código, cantidad de casos de uso, número de riesgos, número de issues, etc. Estos datos serán almacenados en nuestra base de datos de proyectos históricos con el propósito de ser analizados y utilizados para realizar benchmarks en la propia organización y contra el mercado, y derivado de ello, arrancar proyectos de mejora con el fin de reducir el costo de nuestros proyectos, incrementar nuestro desempeño y lograr mejores oportunidades de mercado. Estos proyectos de mejora, partirían de metas objetivas para disminuir el costo de nuestros proyectos mediante el incremento de productividad y calidad. Por ejemplo, si la información de la industria, nos indicara que la productividad típica de un proyecto es de 15 puntos de función por persona-mes, y en nuestros proyectos tenemos un promedio de 10 puntos de función por persona-mes, esto nos daría una meta clara de que por lo menos debemos incrementar la productividad en 5 puntos. De esta forma, los programas de mejora complementarán sus objetivos y no sólo estarán enfocados a lograr tal o cual certificación, o nivel de madurez. Los programas de mejora continua, deben tener objetivos claros y medibles para el negocio, y no sólo el objetivo de obtener un papel o reconocimiento. Adicionalmente, el ingreso de más información en nuestra base de datos de proyectos, incrementará la exactitud de nuestros estimados y nos dará mayor oportunidad y certeza para dar estimados agresivos pero factibles.
Potenciales usos del Proceso de Análisis de Puntos de Función
Obviamente, el objetivo principal del análisis de puntos de función es obtener los puntos de función para un sistema. Sin embargo, existen beneficios adicionales derivados de la aplicación del proceso. Como su nombre lo indica el Análisis de Puntos de Función, es también una técnica de análisis sistemática que aporta beneficios tangibles como:
• Rastreabilidad de componentes. Como pudo ser apreciado en nuestro caso práctico, al momento de realizar el conteo de Puntos de Función, se identifican componentes funcionales que tienen una granularidad definida, debido a que seguimos las reglas y definiciones del estándar del IFPUG. Estos componentes lógicos funcionales, pueden ser relacionados contra los componentes físicos (tablas, pantallas, clases, casos de prueba, etc), lo cual sienta las bases para la construcción de una matriz de rastreabilidad que sea utilizada para evaluar de manera completa y consistente el impacto de los cambios, y aumentar la productividad en los mantenimientos debido a curvas de aprendizaje menores. En nuestro caso, la función de datos: “Vehículo” está implementado en dos tablas: Tb_Vehículos y Tb_Accesorios_Vehículo. Por lo tanto cuando funcionalmente se identifique una modificación a la función de datos “Vehículo”, el equipo técnico sabrá que estados dos tablas podrían ser impactadas.
• Identificación de scope creep o inconsistencias en los requerimientos: Cuando se están contando los puntos de función e identificando las funciones de datos y transaccionales, el análisis es realizado de manera sistemática, por lo cual aparecen preguntas que deben ser resueltas por el equipo de análisis o el cliente. Por ejemplo, en nuestro caso práctico, al momento de contar las funciones transaccionales, vemos que tenemos la función de “Insertar Compra”, sin embargo, cabe pensar que pueda existir un “Actualizar Compra”, funcionalidad que no está incluida en los requerimientos, pero que podría presentarse y debe ser evaluado con el cliente si dicha funcionalidad será parte del sistema. Así mismo, el análisis de puntos de función ayuda a revisar los productos derivados de otras técnicas de análisis. En mi experiencia, ha sido muy útil para identificar defectos presentes en especificaciones de casos de uso.
Conclusión
La técnica de análisis de puntos de función es muy valiosa para nuestra industria, donde la carencia de métricas de productividad estándar reduce la madurez con la que nuestros clientes y nosotros mismos podemos evaluarnos. Una industria madura se fundamenta en métricas y no en percepción y buenos deseos. Por esto, como consumidores de productos de ingeniería de software debemos exigir y evaluar a nuestros proveedores con métricas de productividad y calidad, y como proveedores debemos empujar e incrementar nuestro desempeño orientados a la reducción de costos y aumento en la satisfacción. A fin de cuentas, el objetivo no es alcanzar un nivel de madurez o una certificación, ese es sólo el medio. El objetivo real es producir aplicaciones con oportunidad, mínimo costo y alta satisfacción para nuestros clientes y nuestros empleados, y en ese camino, los puntos de función tienen mucho que ofrecer.
Acerca del autor
Aquiles Santana Álvarez es Certified Function Points Specialist por parte del IFPUG y Project Manager Professional por parte del PMI. Ha sido responsable de la estimación de proyectos de software críticos para EDS de México y Latinoamérica. Ha impartido entrenamiento en la técnica de Puntos de Función y estimaciones a más de 300 personas en 6 países. Actualmente se desempeña como consultor en Project Management e Ingeniería de Software.
- Log in to post comments