Puntos de Función como herramienta para la Valoración de Software

Anuncio
 Puntos de Función como herramienta para
la Valoración de Software
Guilherme Simões, Curtis Graham y Carlos Vazquez
Fatto Consultoría y Sistemas (www.fattocs.com)
[email protected], [email protected]
Atribuir un valor monetario a una
aplicación de software puede ser un proceso
complejo. A continuación, se describen algunas
razones para hacerlo:
• Gestión de activos de TI:
o Contabilizar el software como parte
de los activos de la organización.
o Vender la aplicación a otra empresa.
o Confirmar la valoración hecha por
un tercero.
o Identificar cuáles componentes del
software son los más valiosos.
• Apoyo en la toma de decisiones de
Proyectos de TI:
o Analizar si vale la pena desarrollar
un software o si es mejor comprarlo.
o Ayudar en la evaluación y toma de
decisiones con respecto a costo y
plazo.
o Gestionar de manera eficiente los
riesgos.
El problema surge cuando una empresa
desea valorar su software en términos
monetarios, pero no tiene forma de calcular
este valor objetivamente. Análisis de Puntos de
Función, proporciona la base para calcular
lógicamente la primera variable en la
valoración del software: El costo relacionado
con su desarrollo.
INTRODUCCIÓN
Análisis de Puntos de Función es un
método para medir la visión lógica del
software, ya que cuantifica el tamaño funcional
determinado por sus requisitos funcionales. El
método fue desarrollado en IBM en la década
de 1970 y ha sido estandarizado, mantenido y
mejorado en la actualidad por el IFPUG
(International Function Point Users Group.
MÉTODO DE VALORACIÓN DE
SOFTWARE
Cuando se valoriza una aplicación de
software, es importante considerar que el valor
monetario se expresa como un rango, usando el
costo para su desarrollo como el ‘piso’ (valor
mínimo) y los resultados, los problemas
resueltos y oportunidades como el techo' (valor
máximo).
El esfuerzo y el costo son variables
directamente relacionadas con el tamaño
funcional. Hay varios modelos de estimación
que utilizan el tamaño funcional como insumo
para estimar el esfuerzo o el costo. Para este
artículo, vamos a ofrecer una más simple:
Costo = Funcional Tamaño x Velocidad de
entrega x Persona - Valor hora.
El valor del software es algo percibido de
manera distinta por cada entidad. Por tanto,
podemos decir de cierta manera que este valor
es subjetivo. Por ejemplo, un vaso de agua
para quien está en un desierto sin beber agua
hace varias horas vale mucho más que para una
persona que está nadando en un río de agua
cristalina. Una organización que consigue
agilizar un proceso operacional en un 50% con
el uso de un determinado software, tiene una
percepción de mayor valor de éste que otra que
irá a disfrutar de una ganancia de agilidad de
tan sólo un 5%.
El valor agregado ofrecido al negocio
(techo) incluye componentes como procesos
operacionales (flujo que relaciona diferentes
funciones de negocio), niveles de calidad
(número de defectos), niveles de rendimiento y
tiempo para posicionamiento de mercado.
Teniendo en cuenta esta cuestión de la
percepción subjetiva del valor, aquí se
considerará solamente el piso de la valoración
(valor mínimo) basada en su tamaño funcional.
Otras variables que se pueden calcular son los
niveles de calidad y duración. Estas dos
variables se consideran bajo la discreción del
cliente en cuanto a la atribución de valor
monetario a la aplicación.
incertidumbre por COCOMO II como por la
Evaluación de Proyectos y Técnica de
Revisión – PERT (Project Evaluation and
Review Technique).
TASAS DE ENTREGA Y
BENCHMARKING PARA DESARROLLO
DE PROYECTOS DE SOFTWARE
COCOMO II es un modelo de estimación
que permite la estimación de costo, esfuerzo y
planeación [4]. Además, COCOMO II se
complementa con el cono de incertidumbre que
a lo largo del ciclo de vida del proyecto,
describe como el grado de incertidumbre
disminuye a medida que pasa el tiempo. Un
ejemplo de esto, puede ser la incertidumbre de
que nuevos requisitos puedan aparecer de
repente, lo que se conoce como “Scope
Creep”.
Una vez que el tamaño funcional de la
aplicación es determinado a partir de sus
requisitos [1] [2], es necesario determinar la
tasa de entrega para desarrollar una aplicación
como ésta (del mismo tamaño funcional) a
partir de cero.
El mejor método para esto es calcular la
tasa de entrega utilizando datos históricos de
proyectos anteriores. Sin embargo, a veces no
hay datos suficientes. Una alternativa, no tan
buena como la primera, es utilizar una fuente
de referencia para encontrar una tasa de
entrega. Hay varias fuentes de referencia para
datos de proyectos de software: Gartner Group,
ISBSG y libros de Capers Jones, son algunos
de ellos.
Por ejemplo, podemos extraer una tasa de
entrega
del
International
Software
Benchmarking Standards Group (ISBSG) conjunto de datos R11 [3] utilizando los
siguientes campos como parámetros para un
proyecto dado:
a. Calidad de datos: Datos con calidad
insuficiente fueron excluidos.
b. Tipo de Medición Usado: IFPUG,
NESMA.
c. Tamaño Funcional: No nulo.
d. Nivel de Esfuerzo: No nulo.
e. Año del Proyecto: Después de 2002.
f. Tipo de Desarrollo: Nueva desarrollo.
g. Lenguaje de Programación Primario:
JAVA
Usando el porcentaje de frecuencia de la
información de referencia, la tasa de ejecución
calculada fue de 14 Persona- Horas por Punto
de Función (PH / FP) con un factor de
confianza del 80% de que este número no es
subestimado.
La tasa de entrega junto con el tamaño
funcional permitiría teóricamente calcular el
esfuerzo requerido (Esfuerzo Requerido =
Puntos de Función * Velocidad de entrega)
para la entrega del software. Sin embargo,
como esta tasa de entrega fue estimado, la
incertidumbre deberá ser incluida en el cálculo.
Esto fue considerado tanto por el cono de
Utilizando el cono de incertidumbre, un
respectivo rango de variables necesita ser
seleccionado de acuerdo a la etapa del ciclo de
vida en la que se encuentra el proyecto. Si esta
información no está disponible, se puede
determinar por el nivel de detalle de la
documentación proporcionada por el cliente.
La figura anterior representa el Cono de la
incertidumbre [5].
Después de que los rangos se han
seleccionado en el cono de incertidumbre, la
Evaluación de Proyectos y Técnica de
Revisión (PERT) utiliza estos datos como
entradas. La fórmula PERT es un método
desarrollado por Booz, Allen y Hamilton en la
década de 1950 que permitió una mayor
precisión en la prospección. Esto se logra
mediante el cálculo de la media de tres
factores: la estimación nominal, estimación
pesimista y estimación optimista [6].
PROMEDIO PONDERADO PARA
ESTIMACIONES DE PROYECTOS
Promedio Ponderado = [Estimación
Optimista + 4 (Estimación Nominal) +
Estimación pesimista] / 6
Las variables de estimación optimista y
pesimista de la fórmula PERT anteriormente
mencionada fueron reemplazadas por el valor
correspondiente del rango del Cono de
incertidumbre multiplicado por la estimación
nominal. Una vez que se calcula el promedio
ponderado PERT, es posible calcular el costo
de la aplicación utilizando como referencia el
dato de Persona – Valor hora horas como fue
definido por el cliente.
Costo de la aplicación = Esfuerzo
requerido ponderado* Persona – Valor hora
Sin embargo, este resultado representa el
valor mínimo para la valoración de la
aplicación como se mencionó al principio de
este artículo. Las otras variables que
contribuyen indirectamente a esta valoración
fueron calculadas usando el tamaño funcional
como entrada. De acuerdo a la estimación de
los costos de software, la duración se puede
calcular con la siguiente fórmula:
Duración (meses) = AlcanceFPConstant
mismo nivel de madurez de la aplicación que
se está midiendo, que en este caso era CMMI
Nivel 5.
Posibles defectos = 5.5 * Tamaño
Funcional
Defectos Delivered = 0.22 * Tamaño
Funcional
Con esta información, cualquier cliente
interesado en el desarrollo de este tipo de
aplicación de software tendrá que considerar el
costo relacionado con la fijación de dichos
defectos, incluso después de que la aplicación
haya sido desarrollada.
Análisis de Puntos de Función (APF),
como se ve en el escenario anterior, puede ser
considerado como algo más que una técnica de
medición cuando se usa con otras
herramientas. Usando datos de referencia y
datos históricos, el APF se puede utilizar para
estimar costos, la duración y calidad de
cualquier software y así atribuir tanto directa
(costo) como indirectamente (valor de
negocio) su valor monetario.
ALCANCE
REREFENCIAS
En este caso, el alcance de la aplicación se
refiere a su medición de tamaño funcional. La
constante de FP, también proporcionada por la
estimación de costos de software [7], fue
seleccionada de una lista con diferentes
constantes por tipo de proyecto (el paquete
comercial fue elegido). Con estas dos
variables, se calculó la duración para una
aplicación similar. Con este tipo de
información, cualquier cliente tiene la
capacidad de reconocer el tiempo que se
tardaría en desarrollar una aplicación como
ésta y realizar un análisis de costo de
oportunidad para ver si vale la pena el uso de
sus recursos para desarrollarlo.
NIVEL DE CALIDAD
Nivel de calidad es otro componente
indirecto que puede ser utilizado en el análisis
de costo de oportunidad. Esta variable se puede
definir en términos de defectos por punto
función (Defectos / FP). Debido a que el nivel
de calidad se ve afectado por el tipo de
metodología que se utiliza para desarrollar la
aplicación, el libro Applied Software
Measurement
–
Global
Analysis
of
Productivity and Quality [8] se utilizó como
referencia. Los posibles defectos y defectos
constantes entregados fueron utilizados con el
[1] Counting Practices Manual, International
Function Point Users’ Group (IFPUG). 4.3.1.
[2] Function Point Analysis For Software
Enhancement Guidelines, NESMA, 2.2.1.
[3] International Software Benchmarking
Standards Group (ISBSG). 2009. New
Development & Enhancements Repository
R11. http://www.isbsg.org.
[4] Software Cost Estimation with COCOMO
II, Boehm, B.W. and Abts, C. and Brown, A.W.
and Chulani, S. and Clark, B.K.,
9780137025763, 2009, Prentice Hall.
[5] Software Estimation: Demystifying the
Black Art (Developer Best Practices), Steve
McConnell, 9780735605350, 2006, Microsoft
Press; 1 Edition.
[6] A Guide to the Project Management Body
of Knowledge: PMBOK(R) Guide, Project
Management Institute, 9781935589679, 2013,
Project Management Institute.
[7] Estimating Software Costs, Caper Jones,
9780070659490,
2007.
McGraw-Hill
Education.
[8] Applied Software Measurement: Global
Analysis of Productivity and Quality, Caper
Jones, 9780071502443, 2008, McGraw-Hill
Education.
Descargar