ALM en el mundo de usuario y servicios

Mucho más que desarrollo

Definir la administración del Ciclo de Vida de una
Aplicación (Application Lifecycle Management o
ALM) no es fácil: diferentes personas, diferentes
empresas y proveedores de servicios tienen diferentes perspectivas
sobre el tema y la información pública al respecto tiende
a ser confusa. Sin embargo, ALM es un proceso importante
en la producción de aplicaciones por lo que vale la pena entender
los conceptos que engloba y cómo nos beneficia.

Un error común es hacer la equivalencia de ALM con el
proceso de Ciclo de Vida de Desarrollo de Software (Software
Development Lifecycle o SDLC) ya que esta comparación
es muy limitada. ALM es mucho más que únicamente
SDLC. Para que nuestra visión de ALM sea tanto justa
como útil debemos tener una perspectiva más amplia para
definir lo que es la “vida de la aplicación”, algo que debería
incluir todo el tiempo en el que una empresa invierte dinero
en un producto de software, desde la idea inicial hasta el
último momento en la vida de una aplicación.

Los tres aspectos de ALM

La Administración del Ciclo de Vida de una Aplicación se
divide en tres áreas: Gobernanza, Desarrollo y Operaciones.
De la misma manera que en el desarrollo de algo vivo, un
proyecto de software está marcado por eventos significativos.
Empezamos con una idea: ¿por qué no hacemos algo que resuelva
esto o aquello? Una vez que la aplicación es creada –o
al menos un primer acercamiento- el siguiente gran evento
es la entrega (deployment) cuando la aplicación sale a producción
y finalmente, cuando la aplicación ya no tiene valor
comercial esta se quita de servicio y llega al final de su vida.

Podemos hablar rápidamente de los tres pilares horizontales
que componen ALM durante el ciclo de vida de
un producto de software:
• El primer paso de la gobernanza es el desarrollo de
los casos de negocio. Este análisis por lo general pasa
antes de que el proceso de desarrollo comience y una
vez que el caso de negocio es aprobado es cuando el
desarrollo comienza y la gobernanza es implementada
durante la ejecución del proyecto.
• El proceso de desarrollo –o SDLC- es una parte del proceso
de ALM y es normalmente representado como una
serie de interacciones entre el equipo que escribe código
de la aplicación y otras personas que proveen servicios de
revisión, testeo, aseguramiento de la calidad y varios más.
Los acercamientos a cómo se desarrolla el software varían
según el caso y los recursos con los que se cuenten.
• Al igual que con la gobernanza, el proceso de operaciones
está íntimamente ligado a la línea de desarrollo.
Por ejemplo, la planeación para implementación comienza
poco después de que la aplicación es completada
y el acto de liberación en sí mismo es una parte
fundamental de las operaciones. Una vez que la aplicación
es liberada, ésta debe ser monitoreada durante el
resto de su ciclo de vida y en cada mejora o corrección
se debe repetir el proceso de liberación.

Un mundo de servicios

Si bien los procesos de ALM se ajustan a los ciclos de
diseño-creación-liberación de software que requiere administración
y reemplazo, los nuevos modelos de desarrollo
basados en la red y más aún, el modelo de Software + Servicios
que propone el desarrollo no sólo de aplicaciones
sino de servicios que viven en la Nube y cuyo ciclo de vida
es diferente que lo que conocemos como una ‘aplicación’,
un término que se refiere normalmente a un programa
construido por varios componentes corriendo en un dispositivo
digital como una computadora o un dispositivo
móvil, pero que ahora muchos de esos componentes –o
servicios- no se encuentran ni en nuestra organización y su
desarrollo, aunque en la mayoría de los casos esté bien documentado,
se encuentra fuera de nuestro control directo.
En un mundo de servicios ¿cómo administramos la vida
de nuestras aplicaciones cuando algunos de sus componentes
siguen ciclos de vida diferentes? Tal vez el término correcto
debería ser ‘Software Life Management’ o SLM en lugar de
ALM, aunque este es sólo un ajuste en la nomenclatura. Como
podemos ver, la visión tradicional de ALM deja de funcionar
en la medida en que las redes se vuelven omnipresentes y tanto
los dispositivos como los servicios se multiplican.

De frente al usuario

Otro concepto normalmente dejado al final, si no es que
completamente de lado en la administración del ciclo de
vida de una aplicación es lo pertinente a Experiencia de
Usuario (User Experience o UX) que abarca cuestiones de
diseño de interfaces, usabilidad, accesibilidad, utilidad y
otros lineamientos de mercadotecnia que se crean durante
el proceso de gobernanza, los cuales tienen un impacto claro
y cuantificable sobre los objetivos de negocio en la liberación
del producto y que encarecen el proceso de operación
al relegarlos a los ciclos de actualización y mantenimiento.
Los conceptos asociados a lograr buenas experiencias de
usuario deben ser incluidos como parte vital del ciclo de vida
de una aplicación desde su principio hasta su fin: en el proceso
de gobernanza se debe poner foco en las necesidades y problemas
de los usuarios a quienes va dirigida una aplicación; en el proceso de desarrollo se debe interactuar
con usuarios tipos y tener como motor de desarrollo
las necesidades de ellos, y finalmente
los ciclos de operación deben considerar la
retroalimentación de sus usuarios para crear
mejores productos de software.

Conclusión

ALM es mucho más que sólo escribir código,
ya que los tres aspectos del ciclo de vida de una
aplicación –gobernanza, desarrollo y operaciones-
son igualmente importantes. Si tenemos
un proyecto en el que la gobernanza inicial
tiene mal definidos los aspectos de arranque,
por ejemplo, tal vez no entendiendo las necesidades
de negocio o al no elegir a los patrocinadores
correctos para el proyecto. No importa
que tan bien el equipo que haga el desarrollo
o maneje la operación haga su trabajo, el proyecto
simplemente no proveerá ningún valor
de negocio y acelerará su tiempo de fin de vida.
De igual manera, un proyecto que tenga
los lineamientos y visión adecuada utilizando
un proceso de primer nivel para el desarrollo
pero que deje de lado los temas de operación,
como proveer suficientes recursos para que la
aplicación corra de manera confiable terminará
en fracaso, ya que el valor de negocio que se
pretende proveer no tendrá el tiempo de vida
lo suficientemente largo o la confianza de sus
usuarios para ser económicamente viable.
Muchas empresas y grupos de desarrollo
de software se crean una visión miope de
ALM limitada por lo que las herramientas
de administración del ciclo de vida pueden
o no hacer y esto es un claro error. Una visión
más amplia de ALM puede ayudar a las
organizaciones que desarrollan tecnología a
evitar este tipo de problemas cuyo alcance va
más allá de sólo manejar código y pruebas.
La visión y las expectativas de la tecnología
también han cambiado y no podemos
hablar de manejar ciclos de vida y manejo de
versiones como lo hemos visto hasta hoy: la
visión del desarrollo orientada a servicios nos
obliga a tener una visión más amplia y holística
de ALM para mejorar los procesos críticos
del negocio y del desarrollo a futuro.

Mauricio Angulo
es programador
desde 1989,
divulgador, ávido
escritor y emprendedor.
Actualmente
es CEO y fundador
de Tesseract
Space donde realiza
funciones de
asesor y consultor
en innovación
tecnológica, mercadotecnia
digital
y experiencia de
usuario.
Top