En este post, un primer acercamiento a Application Lifecycle Management (ALM) que incluye una recopilación de los recursos más interesantes para conocer más sobre un tema cada día más relevante en el ámbito laboral.
En la actualidad, las empresas buscan optimizar sus procesos y reducir costos[1]. En muchos negocios surge la necesidad de gestionar proyectos, hacer seguimiento de los mismos, tener en claro las actividades realizadas y los entregables o productos liberados de los mismos; además, es importante probar que todo cumpla con lo requerido, obteniendo un resultado eficiente y de alta calidad. Así mismo, esto no termina en la entrega del producto final sino que también debemos rescatar las experiencias para seguir mejorando, monitoreando que nuestro producto satisface las necesidades surgidas en el proceso, dar mantenimiento y ofrecer mejoras o actualizaciones de acuerdo a diferentes contextos que se planteen.
Todo lo descrito también aplica al negocio del software. Es a partir de esto que nace la Gestión del Ciclo de Vida de las Aplicaciones (Application LifeCycle Management – ALM de ahora en adelante).
En Wikipedia[2] podemos encontrar la siguiente definición de ALM:
Es un proceso continuo de la gestión de la vida de una aplicación a través de la gobernanza, desarrollo y mantenimiento. ALM es el enlace de la gestión empresarial con la ingeniería de software que brinda las herramientas que facilitan e integran la gestión de requerimientos, la arquitectura, codificación, pruebas, seguimiento y versiones
Dentro de esta definición podemos encontrar 3 puntos clave íntimamente conectados, descritos por David Chappell en What is Application LifeCycle Management[3]
– Gobernanza: asegurarse que la aplicación siempre provea lo que el negocio necesite.
– Desarrollo: la parte fundamental de ALM. Es la construcción del producto a generar, que ocurre periódicamente en varias fases o iteraciones.
– Operaciones: el planeamiento y ejecución del despliegue y monitoreo de la aplicación.
Ilustración 1: 3 Aspectos fundamentales de ALM – Fuente: What is Application LifeCycle Management?, David Chappell
Entonces, bajo estos puntos, surgen diferentes tipos de herramientas que durante el tiempo han ido evolucionando. Esto debido a que muchas herramientas se enfocaron más en el aspecto de Desarrollo, fundamentalmente en el Control de Versiones.
Actualmente, los proveedores de soluciones ALM han alcanzado a entender estos 3 aspectos ofreciendo suites de herramientas integradas que ofrecen muchas características contempladas por ALM; sin embargo cabe decir que no todas cumplen a cabalidad los 3 aspectos, esto debido a la complejidad y lo sofisticado que es el desarrollo de software. A los aspectos claves, también podemos añadir la visión de la infraestructura requerida por muchas de las empresas y comunidades de desarrollo que aplican ALM en su día a día:
Ilustración 2: Visión de la infraestructura cubierta por ALM
Bajo todos estos puntos, una de las soluciones más completas y utilizadas en el mercado es Team Foundation Server (TFS) de Microsoft, el cual engloba procesos, gestión de proyectos, compilaciones, monitoreo, control de versiones, entre otras. En este gráfico podemos visualizar en resumen cómo es que TFS, en conjunto con las herramientas de desarrollo Visual Studio, de gestión Office, prototipado SketchFlow y gestión de documentos de proyecto en SharePoint, entre otras, llega a satisfacer lo que buscan las empresas con ALM.
Ilustración 3: Suite de ALM de Microsoft. Fuente: Microsoft
Hemos revisado así las necesidades y la herramienta que cubre las mismas. Entonces por qué ALM debería ser un tema a estudiar:
- Conocemos le gestión del proyecto de software
- Integramos herramientas y actividades
- Enfoque en la calidad, cumplimiento de las necesidades de negocio
- Brindamos productividad y mejoras de procesos en la organización
En los siguientes posts revisaremos tanto uso y beneficios de Team Foundation Server 2010 y su conjunción con ALM.
Antes de terminar este post, déjenme compartir tanto las referencias que dieron origen a este artículo y también videos y lecturas a revisar para profundizar más en el tema:
- What is Application LifeCycle Management? – David Chappell http://www.davidchappell.com/writing/white_papers/What_is_ALM_v2.0–Chappell.pdf
- Application LifeCycle Management – Wikipedia http://en.wikipedia.org/wiki/Application_lifecycle_management
- The Changing Face of Application LifeCycle Management – Carey Schwaber, Forrester Research http://i.bnet.com/logos/whitepapers/Serena_Life_Cycle_Management.pdf
- Webcast: Introducción a ALM – Francisco Fagas
http://geeks.ms/blogs/ffagas/archive/2010/09/14/webcast-introducci-243-n-a-alm-application-lifecycle-management.aspx - Visual Studio Team Foundation Server 2010 – Microsoft http://www.microsoft.com/visualstudio/en-us/products/2010-editions/team-foundation-server
- Professional Application LifeCycle Management – Brian Keller http://www.wrox.com/WileyCDA/WroxTitle/Professional-Application-Lifecycle-Management-with-Visual-Studio-2010.productCd-0470484268.html
- MSDN Blog – Brian Harry
http://blogs.msdn.com/b/bharry/ - MSDN Blog – Brian Keller
http://blogs.msdn.com/b/briankel/ - Videos de ALM Summit
http://www.alm-summit.com/home.aspx
Espero que esta información les haya sido de utilidad .
¡Hasta la próxima!
Post.End();
[1] Enterprise And SMB Software Survey, North America And Europe, Q4 2009 / Forrester Research
[2] Application LifeCycle Management – http://en.wikipedia.org/wiki/Application_lifecycle_management
[3] What is Application LifeCycle Management? – David Chappell http://www.davidchappell.com/writing/white_papers/What_is_ALM_v2.0–Chappell.pdf
Pingback: [Spanish] ALM y TFS 2010 « shockbyte
Pingback: [Spanish] ALM y TFS 2010 « shockbyte
quisiera mas información acerca de este tema ya que ALM será mi tema de tesis, mil gracias
Hola, muy interesante, seria bueno que coloques el link del otro articulo que mencionas sobre el uso y beneficios de Team Foundation Server.
Saludos,