Upload
martin-murciego
View
18
Download
0
Embed Size (px)
Citation preview
www.webratio.com | Pagina 2 de 20
¿No es hora ya de cambiar tus ecuaciones de TI?
“Desde siempre, el hombre ha querido dedicarse a las actividades creativas y
ha creado máquinas que se encarguen de realizar las tareas repetitivas en su
lugar. ¿Por qué para el desarrollo de aplicaciones Web debería ser distinto?
Como respuesta a esta pregunta hemos creado WebRatio, el entorno que
cambia las ecuaciones que gobiernan el proceso de desarrollo de las
aplicaciones Web: nuestros clientes pueden dedicarse al análisis de los
requerimientos, a las actividades creativas y a la validación de los resultados,
¡ya que de las operaciones repetitivas se encarga WebRatio! Los usuarios
son parte del proceso de desarrollo y encuentran inmediatamente una
respuesta a sus requerimientos. Esta colaboración eficaz entre los grupos de
interés garantiza los mejores resultados que perduran con el tiempo.”
Stefano Butti - CEO de WebRatio
www.webratio.com | Pagina 3 de 20
Ratio 1: INNOVACIÓN/MANTENIMIENTO
¿Cuántos recursos empleas en actividades para la Innovación y cuántos para
el Mantenimiento?
Figura 1. ¿Qué porcentaje de recursos están destinados al mantenimiento de las aplicaciones existentes respecto a la creación de nuevas aplicaciones?
La función de las Tecnologías Informáticas es, por naturaleza, apoyar las actividades
comerciales de una empresa. Mientras más dinámico es el negocio, aún más las TI deben
tener la capacidad de adaptarse y evolucionar.
En un mundo ideal donde los sistemas informáticos existentes son autosuficientes los
recursos tanto humanos como económicos de un departamento de TI, deberían ser
utilizados principalmente para realizar aplicaciones innovadoras en respuesta a las
necesidades del negocio, como aumentar la competitividad de la empresa en el mercado,
facilitar el trabajo de los empleados y fomentar la relación con los clientes.
www.webratio.com | Pagina 4 de 20
En realidad los expertos saben que se trata de una utopía. Los sistemas informáticos no se transforman por sí solos y la mayor parte de los costos están dedicados a la puesta en ejecución y al mantenimiento del grupo de aplicaciones existentes.
¿Qué dicen los números? ¡10% Innovación, 90% Mantenimiento!
Un reciente y mundialmente reconocido estudio de Gartner 1 compara los costos incurridos para el desarrollo y el mantenimiento durante todo el ciclo de vida de una aplicación contra aquellos desde el inicio hasta la implementación.
En conclusión, el promedio del porcentaje de costos asignados al mantenimiento post puesta en producción supera al porcentaje dedicado a la primera fase con un impresionante 90%. Este dato es preocupante porque es en el período inicial donde realmente se concentra la innovación.
Figura 2. En un grupo de trabajo tradicional solo el 10% de los recursos se emplea en la innovación, mientras el 90% restante se destina al mantenimiento de las aplicaciones existentes
1 A Framework for the Lifetime Total Cost of Ownership of an Application, Andy Kyte, 30 marzo 2010
www.webratio.com | Pagina 5 de 20
La siguiente imagen resume los resultados del estudio. Como detalles adicionales del análisis se han introducido dos variables:
Objetivos “design for live” : representa la voluntad del equipo de desarrollo para construir una aplicación que permanezca en el largo plazo
“Application volatility”: se aplica cuando la aplicación por su naturaleza o contexto ha cambiado en el tiempo
El porcentaje se obtiene al dividir los costos iniciales para alcanzar la “puesta en producción” de la aplicación para su TCO (Costo Total de Propiedad: costos iniciales + costo de mantenimiento).
Figura 3. También para aplicaciones estables en el tiempo los costos para la puesta en producción alcanzan solamente el 16% del TCO
Los costos considerados para el cómputo del TCO son:
Costo empresarial de los recursos humanos involucrado en el desarrollo y el mantenimiento: programadores, analistas, gerentes de proyectos, etc.
Costo de la licencia del software y de las respectivas normas de mantenimiento
Costo por la ejecución de la aplicación: infraestructura del hardware, servicios de continuidad de negocios, etc.
¡Los datos son sorprendentes! Incluso para las aplicaciones con pocas variaciones y realizadas para ser estables a largo plazo, los costos para llegar hasta la “puesta en producción” son solo del 16% del TCO.
La media exacta calculada en todos los casos analizados por Gartner es de un 18%. Haciendo una aproximación podemos, por lo tanto, concluir que en promedio solo el 10%
www.webratio.com | Pagina 6 de 20
de los costos se utiliza en la primera fase, la más innovadora del desarrollo de las aplicaciones.
¡WebRatio revierte esta ecuación!
El uso de WebRatio en todo el ciclo de vida de sus aplicaciones aumenta la cantidad de tiempo que se puede dedicar a crear nuevas soluciones e innovar las aplicaciones ya existentes reduciendo drásticamente los costos para su mantenimiento y evolución en el tiempo. ¿Cómo?
Generación automática del código – el código producido es generado por un proceso “industrializado”, automatizado y muy bien testeado: el código resulta así libre de todos aquellos errores “casuales” debido a distracciones o descuidos, difícilmente identificables en la fase de desarrollo y que cuesta mucho “recabar” y corregir en la fase de mantenimiento
Modelado visual intuitivo – los costos de tomarse a cargo la intervención correctiva o evolutiva se reducen extremadamente, porque operar en un modelo visual en lugar de líneas de código es más simple y menos delicado. Manipular las líneas de código puede tener impactos inesperados, especialmente si el código ha sido escrito por otros programadores mucho tiempo antes (lo que sucede muy a menudo); intervenir en un modelo abstracto y visual, en cambio, tiene impactos mucho mas “controlados”. El instrumento de desarrollo, además, tiene la capacidad de regenerar de manera coherente toda la aplicación desde cero, propagando las modificaciones en todos los puntos del código sobre la que tenía impacto.
Avisos de entrega más simples y rápidos– los avisos de entrega desde el equipo de desarrollo al equipo de mantenimiento (si son equipos distintos) se vuelven más sencillos; la facilidad de comprensión y el nivel de conocimiento que se alcanza con el modelo visual WebML es mucho más alto que lo que se pueden tener solamente con el código Java, particularmente ante la falta de documentación actualizada (caso muy frecuente)
Ningún componente propietario – las aplicaciones no tienen componentes propietarios y para su ejecución será suficiente un entorno completamente open-source, por lo que los únicos costos que se generarán serán por el hardware.
Desarrollo Ágil – la productividad y la agilidad del proceso de desarrollo aumentan considerablemente; en un estudio hecho por nuestro cliente Acer (http://www.slideshare.net/mbrambil/developing-ebusiness-solutions-with-a-model-driven-approach-the-case-of-acer-emea) se ha medido una productividad
www.webratio.com | Pagina 7 de 20
(expresada en términos de PF(Punto Función)/días de trabajo) de al menos 3 veces superior al respecto de la normal; de esta manera, ya en la fase de desarrollo, es posible implementar funcionalidades que, de otra manera, solo se hubiesen podido integrar en la fase de mantenimiento.
Figura 4. Índice de Productividad (Punto Función/día de trabajo)
60% Innovación / 40% Mantenimiento
Los puntos expresados anteriormente son difícilmente cuantificables en una fórmula, y aún más complejo es expresar cuanto un modelo WebML, sea simple de comprender y manipular respecto a un proyecto Java. Pero podemos llegar a medir el nuevo ratio mediante un cálculo “posterior”, basado en nuestra experiencia y la de nuestros clientes.
Hemos analizando una base estadística de más de 50 empresas de distintos sectores (bancario/financiero, energía/servicios públicos, industria, distribución a gran escala y otros), tomando en consideración el conjunto de las aplicaciones desarrolladas con WebRatio. Calculando una media de los costos en los que se incurrieron para la ejecución de las aplicaciones, podemos afirmar que en un grupo de trabajo que usa WebRatio conformado por 4 personas, 3 se pueden dedicar al desarrollo de nuevos proyectos y solamente 1 se concentra en el mantenimiento de las aplicaciones realizadas. Agregando un costo promedio por el servicio de soporte interno, llegamos al dato final: el 60% de los recursos de TI se pueden dedicar a la construcción de nuevas aplicaciones.
www.webratio.com | Pagina 8 de 20
Figura 5. Con WebRatio utilizas el 60% de tus recursos en actividades de innovación, y disminuyes las labores de mantenimiento al 40%
¡No se trata de la promesa de un resultado hipotético! La transformación de la ecuación
es un dato tangible que hemos calculado sobre una amplia base de empresas y sobre un
elevado número de proyectos heterogéneos de distintos sectores industriales.
www.webratio.com | Pagina 9 de 20
Ratio 2: PARTICIPACIÓN / ESPERA
¿Cuántas veces las TI y el usuario se reúnen durante el desarrollo?
Cada proyecto de TI tiene su propia historia; sin embargo existen denominadores
comunes, por ejemplo la fecha de entrega que los clientes determinan: “¡Ayer!”. Por un
lado esto es comprensible, porque una vez identificado el requerimiento es fundamental
satisfacerlo inmediatamente para maximizar el beneficio de los clientes.
Figura 6. En un grupo de trabajo tradicional solo se involucra al cliente en la fase final del proceso de desarrollo
Por otra parte, esta “prisa” a menudo resulta perjudicial para el proyecto: el cliente,
incluso si no tiene las ideas bien claras, establece rápidamente los requisitos, el equipo de
TI las recoge y comienza el desarrollo. A partir de este momento el cliente queda en
espera y si en el entretiempo aparecen nuevas necesidades o se aclaran algunos aspectos,
no puede hacer nada más que tenerlos en mente hasta tener la oportunidad de
proponerlos posteriormente como una evolución de la aplicación. Al final del proceso de
desarrollo el equipo TI entrega la aplicación y el cliente verifica el funcionamiento y el
cumplimiento de sus requisitos.
Depende de la situación pero puede suceder que la aplicación entregada no se acople
con las expectativas del cliente. Creemos que esta situación no se deba tanto al proceso
de desarrollo, como tal, sino a la escasa interacción entre el equipo de TI y el cliente.
www.webratio.com | Pagina 10 de 20
¿Qué dicen los números? 85% Espera, 15% Participación
Cuando se sigue el esquema clásico desarrollo “en cascada” de los proyectos
“tradicionales”, existen fases que se cumplen en secuencia:
1. análisis de los requisitos
2. diseño/definición de las especificaciones
3. desarrollo
4. pruebas
5. instalación
Uno de los estudios más reveladores acerca del desarrollo en cascada es el que nos ha
llevado a la definición del modelo COCOMO (COnstructive COst MOdel of software
development activity). De acuerdo a este modelo la distribución de los recursos en las 5
fases de desarrollo es la siguiente:
FASES DE UN PROYECTO DE TI CON DESARROLLO EN CASCADA
Figura 7. Fases de un proyecto TI con desarrollo en cascada. (Fuente: modelo COCOMO II, COnstructive COst MOdel of software development activity)
En un proceso de desarrollo en cascada el cliente está involucrado durante la fase de
análisis, para la recopilación de los requerimientos. De esta manera los requisitos
definidos se ponen “en papel”. Luego inicia una larga espera hasta la instalación, cuando
el cliente puede finalmente ver el resultado y eventualmente corregir algunos mínimos
detalles.
Si durante la fase de análisis el cliente es involucrado en las actividades en un 50% y en la
fase de pruebas también un 50% , inmediatamente se calcula de la duración total del
proyecto, el cliente ha participado tan solo en un 15% y el 85% restante se queda a la
espera.
5%
20%
30%
35%
10%
0% 5% 10% 15% 20% 25% 30% 35% 40%
Instalación
Pruebas
Desarrollo
Diseño/definición de lasespecificaciones
Análisis de los requisitos
www.webratio.com | Pagina 11 de 20
¡WebRatio revierte esta ecuación!
Gracias a WebRatio es posible dejar atrás el método de desarrollo en cascada y adoptar
por completo un método de desarrollo “ágil”. En la ingeniería del software, por
metodología ágil se entiende “un particular método para el desarrollo del software que
involucra tanto como sea posible al cliente, obteniendo así una elevada reacción a sus
requerimientos” (tomado de Wikipedia).
WebRatio adopta y amplifica los beneficios de una particular metodología ágil llamada
“desarrollo interactivo”. Las características de este enfoque ágil que WebRatio extiende
se refieren principalmente a:
- la rapidez en producir un resultado
- la generación de prototipos "realistas" cada vez que se desee
Figura 8. El enfoque de desarrollo de un proyecto con WebRatio
De esta manera el cliente puede “palpar” el estado de avance del proyecto
prácticamente en tiempo real. Los prototipos que se producen son “en tiempo real”, no
maquetas falsas, es la verdadera aplicación que evoluciona en el tiempo.
www.webratio.com | Pagina 12 de 20
En el enfoque tradicional se involucra al cliente en la etapa inicial para recoger sus
requerimientos y luego, una vez que la aplicación esté terminada para su respectiva
entrega.
Figura 9. Nivel de participación del cliente en un proceso de desarrollo tradicional
¡Con el enfoque de desarrollo ágil el cliente se involucra continuamente! Un típico
proyecto realizado con WebRatio puede fácilmente planificar por separado las reuniones
con el cliente y los días de desarrollo durante todo el período del proyecto. Si bien, este
tipo de enfoque permite al equipo de trabajo decidir libremente el grado de participación
que tendrá el cliente en el proceso de desarrollo, podemos afirmar que en los proyectos
llevados a cabo con WebRatio, el nivel de involucramiento de los clientes es igual a 50%,
dividiendo así en partes iguales el período en el cual el cliente participa activamente a la
creación de la solución y al período en el queda a la espera del resultado final.
Figura 10. En un proyecto con WebRatio el cliente participa activamente en el proceso de desarrollo, obteniendo una aplicación final de acuerdo con sus expectativas
www.webratio.com | Pagina 13 de 20
RATIO 3: CREATIVIDAD / REPETITIVIDAD
¿Cuánto tiempo dedica el equipo de desarrollo a las actividades que le dan
valor agregado a la aplicación?
Escribir software es una actividad muy creativa; no existen otras actividades en las que
basta con escribir con un teclado para generar innovaciones. Para crear cualquier cosa, se
necesita “materia”, a diferencia del software que se “forja” en los circuitos electrónicos en
el momento mismo en el que se lo escribe.
Figura 11. El enfoque tradicional limita la creatividad de los desarrolladores, quienes emplean gran parte de su tiempo en escribir las operaciones repetitivas sin que éstas tenga un verdadero valor agregado
Cuando se enfrentan proyectos de desarrollo con un tiempo de duración de alrededor de
10 días o mas la creatividad pronto se ve reemplazada por una serie de operaciones
repetitivas; tomemos como ejemplo una aplicación Web: una vez definidas las
especificaciones, en la parte de desarrollo ya no hay ninguna actividad realmente creativa:
el código para el acceso a la base de datos, para la memorización de los datos en sesión,
para la visualización de los datos en las páginas, para la administración de la autenticación
y de la seguridad, etc. esta ya estandarizado, es siempre igual.
El equipo de desarrollo que asume el proyecto no solo deberá ejecutar actividades
repetitivas, sino que deberá prestar mucha atención y respetar todos los estándares
establecidos.
www.webratio.com | Pagina 14 de 20
¿Qué dicen los números? Repetitividad 70%, Creatividad 30%
En este aspecto es difícil expresar las cifras generales. Incluso el hecho de determinar
cuáles actividades se consideran creativas y cuáles repetitivas podría generar discusión.
Pero con una oportuna hipótesis y la debida prudencia lo vamos a intentar.
En general las actividades creativas se concentran en la fase de análisis. Luego, a medida
que se avanza en el desarrollo de los detalles, el porcentaje de actividades creativas
disminuyen.
A continuación, vamos a tratar de definir el porcentaje de las actividades creativas en las
distintas fases del desarrollo:
Fase % en el desarrollo % de actividades
creativas
Análisis 10 % 100 %
Diseño/definición de las especificaciones 35 % 40 %
Desarrollo 30 % 20 %
Pruebas 20 % 0 %
Instalación 5 % 0 %
En resumen, en un cierto grado de aproximación, podemos decir que las actividades
creativas ocupan el 30% de las actividades totales.
www.webratio.com | Pagina 15 de 20
¡WebRatio revierte esta ecuación!
Con WebRatio las fases de desarrollo cambian, ya no son en cascada sino cíclicas.
Además la importancia de cada una varía mucho. Desaparece el desarrollo intensivo para
la programación y deja espacio para el modelado.
Volvemos a tomar el esquema COCOMO y los adaptamos al ciclo de desarrollo con
WebRatio:
FASES DE UN PROYECTO DE DESARROLLO CON WEBRATIO
Figura 12. Fases de un proyecto TI con WebRatio y su desarrollo ágil
A este punto podemos definir el porcentaje de creatividad presente en cada fase:
5%
15%
20%
20%
40%
0% 5% 10% 15% 20% 25% 30% 35% 40% 45%
Instalación
Pruebas
Programación de las reglas de generaciónpersonalizadas
Modelado
Análisis inicial+ tiempo de verificación y participacióndel cliente
www.webratio.com | Pagina 16 de 20
Fase % en el desarrollo % de actividades
creativas
Análisis inicial+ tiempo de verificación y
participación del cliente
40 % 100 %
Modelado 20 % 100 %
Programación de las reglas de generación
personalizadas
20 % 100 %
Pruebas 15 % 0 %
Instalación 5 % 0 %
En las tres primeras fases las actividades son creativas al 100%. Durante el análisis y el
tiempo de verificación con el cliente, las tareas son altamente creativas porque se definen
los requisitos. En la fase de Modelado, se diseña el modelo el mismo que es abstracto y
muy sintetizado. En la etapa de Programación, las actividades también siguen siendo
creativas, porque gracias a la reutilización de los componentes, basta con introducir las
líneas de código estrictamente necesarias y será el entorno de desarrollo el que se
ocupará de aplicarlo en todos los puntos en los cuales se requiera.
Solo las actividades de prueba e instalación no son “tan creativas”, igual que en el ciclo
de desarrollo tradicional,
Concretamente, así es cómo WebRatio logra revertir este “ratio”, solo el 20% de las
actividades se pueden considerar como “repetitivas”: el 80% es pura creatividad!.
Figura 13. WebRatio ejecuta las operaciones repetitivas, permitiendo que los desarrolladores puedan concentrarse en las actividades creativas que le dan valor agregado a la solución final
www.webratio.com | Pagina 17 de 20
Ratio 4 : ANÁLISIS / DESARROLLO
¿El equipo de TI puede dedicar el tiempo adecuado al análisis?
Cuando se quiere realizar aplicaciones verdaderamente innovadoras, no existen ejemplos
de otras aplicaciones similares ya implementadas, a menudo, se comienza con una idea
pero se “desvía” hacia otra.
Esto sucede porque el factor “tiempo” pesa en el equipo TI desde el primer momento.
Los clientes quieren ver resultados tangibles inmediatamente, y el equipo de desarrollo se
ve obligado a darse prisa en la fase de análisis e iniciar en seguida la fase de desarrollo.
Figura 14. Generalmente el factor tiempo pesa tanto en el equipo de trabajo que descuida la fase de análisis
¡Pero el camino que una idea original debe recorrer es muy tortuoso para ser afrontado
de esta manera! A medida que se procede con el desarrollo, se encuentran problemas
insuperables que no fueron identificados debido al apresurado análisis. Buscar una
solución a estos problemas requiere tiempo, que no se tiene, y que perjudica la idea, la
misma que debe ser invalidada y que pone en riesgo la originalidad del proyecto.
Para poder comprender a fondo los requisitos de la nueva aplicación se debería dedicar
mucho tiempo al análisis, o mejor dicho, todo el tiempo necesario para solucionar todas
las dudas.
www.webratio.com | Pagina 18 de 20
¿Qué dicen los números? 10% Análisis– 90% Desarrollo
Haciendo referencia a los estudios citados anteriormente, se puede ver que los esfuerzos
dedicados al análisis de un proyecto “tradicional” son iguales al 10% del tiempo total del
proyecto. No tanto porque se tenga la intención de emplear poco tiempo , sino porque
se debe dedicar el 90% a todo el resto, sobre todo a la fase de modelado y codificado.
Figura 15. El análisis ocupa solo el 10% del tiempo empleado en un proceso de desarrollo tradicional
www.webratio.com | Pagina 19 de 20
¡WebRatio revierte esta ecuación!
Si definimos el análisis como el conjunto de actividades de que contribuyen a identificar
los requisitos (funcionales y no) de la aplicación deseada, podemos entonces considerar la
actividad del modelado como un parte integrante del análisis (pensemos por ejemplo en
el modelado de los procesos de negocio).
Sobre esto, los datos dicen que el 60% del tiempo puede considerarse como utilizado en
el análisis y solamente el 40% al desarrollo, en el sentido tradicional de los términos.
Figura 16. Con WebRatio dedicas al análisis el 60% de tu tiempo y las aplicaciones realizadas están siempre alineadas con las exigencias empresariales
www.webratio.com | Pagina 20 de 20
Conclusiones
Las ecuaciones que hemos analizado demuestran el modo en el cual las TI operan al servicio de
las empresas y responden a sus necesidades. Los ratios calculados son promedios obtenidos de
un entorno empresarial “típico” y no toman en cuenta situaciones particulares o de gran magnitud
ya existentes. En todo caso, podemos afirmar con seguridad que WebRatio mejora los factores
que intervienen en las ecuaciones, cualquiera que sea el punto de partida, convirtiéndolos en
resultados satisfactorios tanto para las empresas como para la TI.
Entonces, ¿Qué estas esperando para cambiar las
ecuaciones de tus TI?