baufest como calcular el roi de un framework

8
© Copyright 2009 ¿Cómo calcular el ROI de un framework de desarrollo? Resumen La construcción o incorporación de un framework de desarrollo de aplicaciones a nuestros proyectos requiere realizar una inversión en esfuerzo y recursos, tanto para su desarrollo o adquisición, como para su incorporación al proceso. Lo primero que debemos preguntarnos, como en cualquier otra situación donde se requiere realizar una inversión, es cuál es el retorno de la inversión (ROI) que vamos a obtener. Si bien, al menos intuitivamente, se advierte que la utilización de un framework debería redundar en una mayor productividad y calidad en el desarrollo, es necesario analizar en forma precisa el ROI de un framework en nuestros proyectos para tomar una decisión informada. Como cada proyecto es único e irrepetible, no sirve tener un valor que se pretenda aplicar a todos los proyectos, precisamos contar con algún método para estimar cuál es el ROI de un framework de desarrollo para nuestros proyectos concretos. En este artículo analizaremos primero un enfoque teórico para entender el ROI potencial de un framework de desarrollo en un proyecto, para luego describir otro enfoque más práctico y contrastable con datos reales. En ambos casos con resultados donde se observan ahorros potenciales que van desde el 10% al 25% del costo de un proyecto. Finalmente presentaremos los resultados concretos al aplicar el análisis a Baufest Productivity Framework, nuestro framework probado para el desarrollo de aplicaciones .NET de misión crítica. Introducción A diferencia de lo que sería comenzar un desarrollo iniciado de cero, la utilización de un framework de desarrollo nos permite comenzar nuestro proyecto sobre una sólida arquitectura de aplicación definida, implementada y probada. Este hecho impacta a priori sobre tres factores importantes que influyen en el resultado de un proyecto: Resuelve los riesgos tecnológicos y la complejidad de la arquitectura. Disminuye el nivel de conocimiento, experiencia y capacidad requerido para las personas del equipo de proyecto. Reduce el time to market acelerando la salida a producción. ¿Pero cómo impactan exactamente estos factores en los resultados y el costo total de un proyecto de desarrollo? Los costos de un proyecto de desarrollo están dados fundamentalmente por el costo de la “mano de obra” o cantidad de esfuerzo requerido para llevar adelante el proyecto. Si queremos analizar el ROI desde una perspectiva del costo, necesitamos comprender cuál es el impacto que tiene un framework en el esfuerzo total del proyecto. Para esto, debemos analizar cuál es el efecto que tienen los factores afectados por el framework en el resultado del proyecto. Desde una perspectiva del valor generado, el menor tiempo para la salida a producción con una aplicación sólida y de buena calidad, o bien permite llegar al mercado antes para generar nuevos ingresos a la organización, o permite que se ahorre antes reduciendo costos al hacer más eficiente algún proceso operativo.

Upload: maxi

Post on 26-Dec-2015

51 views

Category:

Documents


0 download

DESCRIPTION

Calcular El ROI de Un Framework

TRANSCRIPT

Page 1: Baufest Como Calcular El ROI de Un Framework

© Copyright 2009

¿Cómo calcular el ROI de un framework de desarrollo?

Resumen La construcción o incorporación de un framework de desarrollo de aplicaciones a nuestros proyectos requiere realizar una inversión en esfuerzo y recursos, tanto para su desarrollo o adquisición, como para su incorporación al proceso. Lo primero que debemos preguntarnos, como en cualquier otra situación donde se requiere realizar una inversión, es cuál es el retorno de la inversión (ROI) que vamos a obtener. Si bien, al menos intuitivamente, se advierte que la utilización de un framework debería redundar en una mayor productividad y calidad en el desarrollo, es necesario analizar en forma precisa el ROI de un framework en nuestros proyectos para tomar una decisión informada. Como cada proyecto es único e irrepetible, no sirve tener un valor que se pretenda aplicar a todos los proyectos, precisamos contar con algún método para estimar cuál es el ROI de un framework de desarrollo para nuestros proyectos concretos. En este artículo analizaremos primero un enfoque teórico para entender el ROI potencial de un framework de desarrollo en un proyecto, para luego describir otro enfoque más práctico y contrastable con datos reales. En ambos casos con resultados donde se observan ahorros potenciales que van desde el 10% al 25% del costo de un proyecto. Finalmente presentaremos los resultados concretos al aplicar el análisis a Baufest Productivity Framework, nuestro framework probado para el desarrollo de aplicaciones .NET de misión crítica.

Introducción A diferencia de lo que sería comenzar un desarrollo iniciado de cero, la utilización de un framework de desarrollo nos permite comenzar nuestro proyecto sobre una sólida arquitectura de aplicación definida, implementada y probada. Este hecho impacta a priori sobre tres factores importantes que influyen en el resultado de un proyecto:

Resuelve los riesgos tecnológicos y la complejidad de la arquitectura. Disminuye el nivel de conocimiento, experiencia y capacidad requerido para las personas del equipo de

proyecto. Reduce el time to market acelerando la salida a producción.

¿Pero cómo impactan exactamente estos factores en los resultados y el costo total de un proyecto de desarrollo? Los costos de un proyecto de desarrollo están dados fundamentalmente por el costo de la “mano de obra” o cantidad de esfuerzo requerido para llevar adelante el proyecto. Si queremos analizar el ROI desde una perspectiva del costo, necesitamos comprender cuál es el impacto que tiene un framework en el esfuerzo total del proyecto. Para esto, debemos analizar cuál es el efecto que tienen los factores afectados por el framework en el resultado del proyecto. Desde una perspectiva del valor generado, el menor tiempo para la salida a producción con una aplicación sólida y de buena calidad, o bien permite llegar al mercado antes para generar nuevos ingresos a la organización, o permite que se ahorre antes reduciendo costos al hacer más eficiente algún proceso operativo.

Page 2: Baufest Como Calcular El ROI de Un Framework

© Copyright 2009

Un enfoque teórico (el ROI potencial) COCOMO II es uno de los proyectos que mejor trabajo hizo en identificar y estudiar estadísticamente los efectos de los distintos factores (cost-drivers) que influyen en el resultado de un proyecto basándose en una completa base de datos de proyectos. Como resultado, COCOMO II plantea un modelo de estimación cuya ecuación de esfuerzo se expresa en función de esos factores:

( ) ( )∏××= iEscalaFactoresDe iplicadorFactorMultTamañoAEsfuerzo

Esfuerzo = Cantidad de esfuerzo en horas hombre o meses hombre Tamaño = Tamaño/Cantidad de funcionalidad del proyecto medido en puntos de función o KSLOCs FactoresDeEscala = Factores del proyecto que influyen exponencialmente en el esfuerzo final FactorMultiplicadori = Factor del proyecto que influye linealmente en el esfuerzo final A = constante de productividad

Ecuación 1 - Ecuación de estimación de esfuerzo COCOMO II

En este modelo, alguno de los factores identificados tienen un efecto exponencial (factores de escala) y otros un efecto lineal (factores multiplicativos) sobre el esfuerzo final del proyecto. Cada factor de la ecuación se califica según las características del proyecto, en un rango cualitativo que va desde “Muy Bajo”, pasando en el medio por “Nominal”, hasta “Muy Alto” o “Extra Alto”. Cuando una característica del proyecto es la normal o la típica, el factor se califica como “Nominal”. Cuando una característica varía de lo normal, el factor se califica hacia “Bajo” o hacia “Alto” en función de criterios definidos para cada factor. Finalmente, cada calificación se traduce en un valor numérico que representa el impacto cuantitativo en el proyecto y que es el que se utiliza en la ecuación. El modelo define 5 factores de escala y 17 factores multiplicativos. Dentro de este conjunto de factores que identifica COCOMO, podemos encontrar aquellos que están relacionados directamente con los beneficios de la utilización de un framework:

Código Nombre Tipo Racional del impacto positivo

RESL Arquitectura y resolución de riesgos

Factor de Escala

Usar un framework incorpora al proyecto una arquitectura madura, ya implementada y probada, eliminando los riesgos.

PLEX Experiencia en la plataforma

Factor Multiplicador

Un framework incorpora en el proyecto el conocimiento con el que fue construido y que trae consigo sobre la plataforma, elevando la experiencia sobre la que nos apoyamos

LTEX Experiencia en el lenguaje y las herramientas

Factor Multiplicador

Un framework incorpora al proyecto el conocimiento con el que fue construido y que trae consigo sobre el lenguaje y las herramientas, elevando la experiencia sobre la que nos apoyamos

Caracterización del Factor Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto

RESL – Rating del nivel de resolución de riesgos de arquitectura

Valor

Little (20%)

7,07

Some (40%)

5,65

Often (60%)

4,24

Generally (75%)

2,83

Mostly (90%)

1,41

Full (100%)

0,00 PLEX – Rating del nivel de experiencia en la plataforma y tecnología de desarrollo

Valor

<= 2 meses

1,19

6 meses

1,09

1 año

1,00

3 años

0,91

6 años

0,85

n/a LTEX – Rating del nivel de experiencia en el lenguaje y las herramientas

Valor

<= 2 meses

1,20

6 meses

1,09

1 año

1,00

3 años

0,91

6 años

0,84

n/a

Tabla 1 - Factores de COCOMO II afectados por un framework de desarrollo

Page 3: Baufest Como Calcular El ROI de Un Framework

© Copyright 2009

Si mantenemos fijos todos los otros factores en sus valores nominales, es decir, en sus valores típicos o normales, y analizamos cómo varía el resultado cuando se modifican los 3 factores afectados, podremos observar cuál sería el impacto de un framework en el costo total del proyecto fundamentándonos en la sólida base estadística de proyectos de COCOMO II. Con esta idea en mente, tomamos 3 escenarios de proyecto para analizar, con la intención de representar un caso base, un caso medio y un mejor caso de proyectos que utilizan framework. De un escenario a otro, se pondera en forma creciente el impacto positivo en los factores de proyecto mencionados, partiendo desde un escenario de proyecto sin framework (caso base), donde no hay ningún impacto positivo porque no se utiliza un framework, hasta un escenario en donde los 3 factores mencionados son impactados en forma positiva y considerable por la utilización de un framework (mejor caso):

Caracterización del Factor Muy Bajo Bajo Nominal Alto Muy Alto Extra

Alto RESL – Rating del nivel de resolución de riesgos de arquitectura

Valor

Little (20%)

7,07

Some (40%)

5,65

Often (60%)

4,24

Generally (75%)

2,83

Mostly (90%)

1,41

Full (100%)

0,00

PLEX – Rating del nivel de experiencia en la plataforma y tecnología de desarrollo

Valor

<= 2 meses

1,19

6 meses

1,09

1 año

1,00

3 años

0,91

6 años

0,85

n/a LTEX – Rating del nivel de experiencia en el lenguaje y las herramientas

Valor

<= 2 meses

1,20

6 meses

1,09

1 año

1,00

3 años

0,91

6 años

0,84

n/a

Caracterización del Factor Muy Bajo Bajo Nominal Alto Muy Alto Extra

Alto RESL – Rating del nivel de resolución de riesgos de arquitectura

Valor

Little (20%)

7,07

Some (40%)

5,65

Often (60%)

4,24

Generally (75%)

2,83

Mostly (90%)

1,41

Full (100%)

0,00

PLEX – Rating del nivel de experiencia en la plataforma y tecnología de desarrollo

Valor

<= 2 meses

1,19

6 meses

1,09

1 año

1,00

3 años

0,91

6 años

0,85

n/a LTEX – Rating del nivel de experiencia en el lenguaje y las herramientas

Valor

<= 2 meses

1,20

6 meses

1,09

1 año

1,00

3 años

0,91

6 años

0,84

n/a

Caracterización del Factor Muy Bajo Bajo Nominal Alto Muy Alto Extra

Alto RESL – Rating del nivel de resolución de riesgos de arquitectura

Valor

Little (20%)

7,07

Some (40%)

5,65

Often (60%)

4,24

Generally (75%)

2,83

Mostly (90%)

1,41

Full (100%)

0,00

PLEX – Rating del nivel de experiencia en la plataforma y tecnología de desarrollo

Valor

<= 2 meses

1,19

6 meses

1,09

1 año

1,00

3 años

0,91

6 años

0,85

n/a LTEX – Rating del nivel de experiencia en el lenguaje y las herramientas

Valor

<= 2 meses

1,20

6 meses

1,09

1 año

1,00

3 años

0,91

6 años

0,84

n/a

Utilizando la ecuación de esfuerzo de COCOMO con estos factores para calcular el esfuerzo total de proyecto, podemos representar el esfuerzo total asociado a cada uno de los 3 escenarios a medida que va creciendo el tamaño del proyecto y comparar los resultados. También podemos visualizar en forma relativa el porcentaje (%) de ahorro sobre el caso base asociado a cada escenario de proyecto, a medida que el tamaño del proyecto aumenta. Como unidad de medida para el tamaño del proyecto, utilizaremos puntos de función, que en promedio tienen una equivalencia de 55 líneas de código en lenguaje C# por cada punto de función implementado.

Esfuerzo según tamaño del proyecto

0

50

100

150

200

250

300

0 500 1000 1500 2000 2500 3000 3500Puntos de Función

Esfu

erzo

(mes

es-h

ombr

e)

Proyecto Nominal

Con framework(+RESL)

Con framework(+RESL +PLEX +LTEX)

Ilustración 1 – Comparación del esfuerzo total según tamaño del proyecto (calculado con COCOMO II)

Ahorro según tamaño del proyecto

11%14%

12%9%

4%

13%

22%26%

27% 28% 28%

0%

5%

10%

15%

20%

25%

30%

0 500 1000 1500 2000 2500 3000 3500Puntos de Función

Ahor

ro e

n es

fuer

zo

Con framework(+RESL)

Con framework(+RESL +PLEX +LTEX)

Ilustración 2 – Comparación del ahorro en esfuerzo sobre el caso base según tamaño del proyecto (calculado con COCOMO II)

Proyecto con framework (+RESL)

Proyecto con framework (+RESL +PLEX +LTEX)

+ + +

+

Proyecto nominal

Page 4: Baufest Como Calcular El ROI de Un Framework

© Copyright 2009

El tamaño de los proyectos más comunes de hoy en día varía por lo general entre los 500 y 2000 puntos de función (o entre 27 mil a 110 mil líneas de código .NET). Dentro de este rango podemos observar que la reducción en el esfuerzo o costo de un proyecto típico que genera un framework de desarrollo puede variar en promedio entre un 11% y un 26% de ahorro. Para concluir, debemos observar que todo el análisis realizado hasta el momento está enfocado sólo en la perspectiva del costo, es decir que únicamente analiza el ahorro logrado en el proyecto para construir una aplicación. Sin embargo, estamos dejando de lado en este análisis la perspectiva del valor generado a la organización, que se potencia con la reducción de costos y tiempos del proyecto, permitiendo que al acelerar la salida a producción de una solución sólida, se generen nuevos ingresos más rápido y por más tiempo, o que se ahorre antes reduciendo costos al hacer más eficiente algún proceso operativo. Estos beneficios adicionales harán sin duda que el rango del 11% al 26% de ahorro en el proyecto sea solo un piso para el retorno total de la inversión en la organización.

Page 5: Baufest Como Calcular El ROI de Un Framework

© Copyright 2009

Un enfoque más práctico Supongamos que hacemos un experimento en donde implementamos una misma funcionalidad de aplicación de dos maneras distintas, una vez con framework y otra vez sin framework. Luego medimos la cantidad de líneas de código (SLOCs) requeridas en cada caso. Si la cantidad de líneas de código requeridas para implementar una misma funcionalidad con framework es menor a la cantidad requerida para implementarla sin framework, el esfuerzo de codificación también será menor en la misma proporción. Sin embargo, la codificación no es la única actividad, a veces ni siquiera la más importante, que se lleva a cabo en un proyecto y que se suma al esfuerzo total. Para calcular cuánto ahorro en todo el proyecto representa esta reducción en codificación, es necesario saber entonces cuánto porcentaje (%) del esfuerzo total representan las actividades de codificación en nuestros proyectos. Esta información podemos obtenerla de los proyectos ya realizados. De esta manera, si tenemos el porcentaje de reducción de líneas de código que genera un framework, y el porcentaje de esfuerzo de codificación sobre el esfuerzo total del proyecto, podemos calcular el ahorro en el esfuerzo total (o costo) del proyecto de la siguiente manera:

nodificacio%EsfuerzoCFramework%ReduccionerzoAhorroEsfutalEsfuerzoTo

dificacionEsfuerzoConodificacio%EsfuerzoC

ameworkSLOCsSinFrameworkSLOScConFr

Framework%Reduccion

×=⇒

=

−= ⎟⎠⎞

⎜⎝⎛

%

1

Ecuación 2 - Ecuación del ahorro de esfuerzo del proyecto por reducción en la codificación

Como ejemplo, supondremos que tenemos un framework que reduce la cantidad de líneas de código a escribir a un 80% de lo que sería necesario escribir sin framework y utilizaremos información estadística de proyectos de la industria tomada de la base de datos del ISBSG (International Software Benchmarking Standards Group) para obtener el porcentaje de esfuerzo de codificación:

Esfuerzo por actividad(proyectos in-house)

Programming 48%

QA, Testing 16%

Other 17%Architecture

9%

Business Analysis 3%

Project Management

7%

Ilustración 3 – Distribución típica del esfuerzo por actividad en un proyecto (fuente ISBSG)

Reemplazando los valores en la cuenta:

( )

48%20%×≅≅⇒

=

=−=

10% uerzo%AhorroEsf48%

20%%801

nodificacio%EsfuerzoC

Framework%Reduccion

Ecuación 3 - Ejemplo de cálculo de ahorro de esfuerzo por reducción en la codificación

Page 6: Baufest Como Calcular El ROI de Un Framework

© Copyright 2009

También podemos calcular y representar el esfuerzo total según el tamaño del proyecto, medido en cantidad de puntos de función, y comparar la cantidad de ahorro generado. Para calcular el esfuerzo requerido según el tamaño de proyecto, necesitamos conocer la productividad (esfuerzo requerido por unidad de tamaño de proyecto) de la organización. Para este ejemplo tomaremos el promedio de la industria obtenido también de la base de datos del ISBSG que define la métrica Project Delivery Rate o PDR como:

cionPuntoDeFunHorasPDR

nciónPuntosDeFuuerzoHorasDeEsfPDR striaomedioIndu 11Pr =⇒=

Esfuerzo según tamaño de proyecto

0

50

100

150

200

250

300

0 500 1000 1500 2000 2500 3000 3500Puntos de Función

Esfu

erzo

(mes

es-h

ombr

e)

Con frameworkSin framework

Ilustración 4 - Comparación del esfuerzo total según tamaño del proyecto (calculado con datos de industria - ISBSG)

Nuevamente como en el caso anterior, debemos tener en cuenta en el análisis el valor generado para la organización por acelerar la salida a producción de una solución que permitirá obtener nuevos ingresos más rápido y por más tiempo, o ahorrar antes reduciendo costos al hacer más eficiente algún proceso operativo. Adicionalmente, también es importante destacar el ahorro generado en el proyecto por la reducción de las actividades de arquitectura, testing y QA, que se da por el hecho de contar con un framework ya probado que incorpora una arquitectura aplicativa lista para usar y reduce la cantidad de líneas de código a testear. Si sumamos todo esto a los beneficios que ya analizamos, podemos afirmar sin dudas que el 10% de ahorro del ejemplo será solo un piso en el ahorro total del proyecto y en el retorno de la inversión.

Page 7: Baufest Como Calcular El ROI de Un Framework

© Copyright 2009

El ROI de Baufest Productivity Framework en un proyecto tipo Aplicando el experimento planteado sobre Baufest Productivity Framework, se implementó una misma funcionalidad de aplicación una vez con el framework y otra vez sin el framework. Luego se midió la cantidad de líneas de código que se requirieron escribir en cada caso para conocer el porcentaje (%) de reducción de líneas de código que genera Baufest Productivity Framework. La funcionalidad implementada, de un tamaño equivalente a 56 puntos de función, fue basada en algunos escenarios funcionales de un banco ficticio:

Login Logout Consultar saldo de cuentas Consultar movimientos de cuentas Realizar transferencia entre cuentas

La medición de líneas de código arrojó que Baufest Productivity Framework redujo la cantidad de líneas de código a escribir a un 73%. Si tomamos nuevamente como base la información de proyectos de la industria (ISBSG) para obtener el porcentaje de esfuerzo de codificación, Baufest Productivity Framework supondría un ahorro en el proyecto de un 13% solo por la reducción en el esfuerzo de codificación:

( )

13%≅⇒

=

=−=

uerzo%AhorroEsf48%

27%%731

nodificacio%EsfuerzoC

Framework%Reduccion

Ecuación 4 - Ahorro de esfuerzo con Baufest Productivity Framework solo por reducción en la codificación

Sin embargo, Baufest Productivity Framework no es entregado como un producto suelto, sino que como parte integral de nuestra propuesta de valor, incluimos el servicio de desarrollo de hasta 50 puntos de función de funcionalidad real de aplicación que implementamos con el framework y junto con nuestro cliente, como parte de la transferencia de conocimiento y acompañamiento en el proyecto. De este modo, al ahorro ya calculado en el proyecto del 13%, se suma también que además el proyecto comenzará con 50 puntos de función ya desarrollados y dejando una arquitectura lista. Tomando en cuenta esto último, los 50 puntos de función iniciales del proyecto se obtienen con esfuerzo 0 (cero). Podemos volver a calcular y representar nuevamente el esfuerzo en relación al tamaño del proyecto para comparar el ahorro en forma absoluta. También podemos visualizar en forma relativa el porcentaje (%) de ahorro de esfuerzo en relación al tamaño del proyecto:

Esfuerzo según tamaño del proyecto

0

50

100

150

200

250

0 500 1000 1500 2000 2500 3000 3500Puntos de Función

Esfu

erzo

(mes

es-h

ombr

e)

Con BaufestProductivityFramework

Sin framework

Ilustración 5 - Comparación del esfuerzo total con Baufest Productivity Framework según tamaño del proyecto

Page 8: Baufest Como Calcular El ROI de Un Framework

© Copyright 2009

Ahorro según tamaño del proyecto

17%18%20%

15% 14%

0%

5%

10%

15%

20%

25%

30%

0 500 1000 1500 2000 2500 3000 3500Puntos de función

Aho

rro

en e

sfue

rzo

Con BaufestProductivityFramework

Ilustración 6 - Ahorro en esfuerzo con Baufest Productivity Framework según tamaño del proyecto

Recordando que el tamaño de los proyectos más comunes de hoy en día varía por lo general entre los 500 y 2000 puntos de función (o entre 27 mil a 110 mil líneas de código .NET), el beneficio que genera Baufest Productivity Framework desde el punto de vista del costo en un proyecto típico, va desde un 15% a un 21% de ahorro. Como en los casos anteriores, en este análisis también es importante reconocer el valor ganado por la organización al acelerar la salida a producción de una solución que permite generar nuevos ingresos más rápido y por más tiempo, o que ahorra en los costos haciendo más eficiente algún proceso operativo. También el ahorro en el esfuerzo de las actividades de arquitectura, testing y QA del proyecto por contar con un framework ya probado que incorpora una arquitectura aplicativa lista para usar y reduce la cantidad de líneas de código a testear. Nuevamente, si sumamos todo esto a los beneficios ya analizados, el 15% al 21% de ahorro será solo un piso para el retorno de la inversión que brinda Baufest Productivity Framework. Si el precio a pagar por incorporar un framework como Baufest Productivity Framework es menor al ahorro que genera de entre el 15% al 21%, como piso en un proyecto típico, sin duda la inversión tendrá un retorno seguro.

Si querés que te ayudemos a calcular cuál sería el ROI de Baufest Productivity Framework en TU proyecto de desarrollo, podés contactarnos a [email protected]