miércoles, 16 de enero de 2013

La loca loca loca historia de las líneas de código. Episodio II. El retorno del backfiring.

backfiring


A la técnica de obtención de puntos función a partir de las líneas lógicas de código se la conoce como backfiring. Con la aparición de herramientas que miden las líneas de código de modo automático, son muchas las que obtienen a partir de éstas el valor en puntos función del software analizado y son muchos los que se sienten atraídos por el lado oscuro para obtener de un modo rápido el tamaño funcional ¿Es fiable esta técnica?

La verdad es que suena muy bien y usando la palabra inglesa queda, además, súper profesional: backfiring… backfiring… Pero no se trata más que de obtener las líneas de código y aplicarle un valor de transformación a punto función en función del lenguaje. 3.000 líneas en java son “x” puntos función, 3.000 líneas de cobol son “y” puntos función.

Si bien es un método rápido para obtener un tamaño de las aplicaciones instaladas, ya indicamos en un post anterior (La loca, loca, loca historia de las líneas de código) que las líneas de código no es una buena forma de conocer la cantidad de producto software desarrollado si nuestro propósito es hacer análisis de productividad o rendimiento económico. La desviación que presenta en sus resultados la hace totalmente desaconsejable. Por tanto, los puntos función derivados de esta técnica tampoco son aconsejables. Cualquiera que haya desarrollado software, sabe que un mismo proceso puede ser escrito por un programador “normalucho” en 3.000 líneas de código y por otro más eficiente en sólo 500. Además, hoy en día es muy común que las aplicaciones no estén desarrolladas en un único lenguaje, sino en una variedad de ellos (uno en capa de presentación, otro en la capa lógica, otro en la de base de datos, etc.).

La técnica de backfiring aplicada a proyectos de mantenimiento ofrece aún peores resultados que en el caso de aplicaciones completas instaladas. Si en el caso de aplicaciones completas, los resultados ofrecen una dispersión muy grande, para los proyectos de mantenimiento, no existe la más mínima correlación entre líneas añadidas y puntos función añadidos, o entre líneas modificadas y puntos función modificados. Se pueden añadir o eliminar líneas para modificar una funcionalidad.
Uno de las principales carencias de medir el software en líneas de código (o puntos función backfiring) es la dificultad de estimar el tamaño en LOC (líneas de código) que va a tener un desarrollo determinado. Y una de las principales oportunidades que ofrece una medida funcional es que es de fácil aplicación en tiempo de estimación, así como en la entrega del proyecto, por lo que podemos comparar ambas medidas (lo que preveíamos desarrollar y lo que finalmente se ha realizado) usando la misma métrica y analizar las desviaciones de modo que nos permita una mejora continua. 

Puestos a automatizar, existen herramientas en el mercado que obtienen puntos función a partir de un análisis de la arquitectura (tablas, procesos, interfaces, etc.), los llamados puntos función automatizados… pero ya hablaremos de ello en otro post.

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...