¿Sobre qué es ALM?

ALM = Application Lifecycle Management

¿Sobre qué trata eso? En general, es acerca de la creación de soluciones de negocio basadas en software. Pero, como sucede con cualquier tema no-trivial, hay múltiples perspectivas que se pueden agrupar por los distintos roles involucrados en tal esfuerzo. Por ejemplo, hay quien dice que trata de gobernabilidad de proyectos; y lo entiendo pues algunas técnicas y herramientas de ALM podrían aplicarse incluso para, digamos, planear, ejecutar, y “gobernar” uno o varios proyectos de mercadeo de productos durante la temporada navideña —¿acaso tales proyectos no incluyen roles, tareas, fases, hitos, verificaciones, entregables, etc.?– Pero esa perspectiva carga excesivamente el significado tan sólo en la palabra «Management».

Para mí, ALM es más acerca de crear software con calidad. Por supuesto que una competente administración es esencial para el éxito de un proyecto pero la administración per se no crea nada. Si el fin último de un proyecto es crear una nueva realidad para los usuarios actuales o potenciales de una aplicación de software entonces la administración debe girar alrededor del acto creativo, y no alrededor de la burocracia.

Por tanto, a la par que se discuten las implicaciones administrativas del párrafo anterior se debe discutir, con el mismo énfasis, el concepto de la creación de software con calidad.

Esto es un tema que me ha ocupado desde mis primeros proyectos de desarrollo aplicativo de software. Recuerdo escribir un breve texto para un compañero, en el cual traté de enumerar algunos aspectos de ese tema. Luego, ese texto lo publiqué en Internet y lo referí desde una de las primeras comunidades que formé en español para discutir estos asuntos. Una de las referencias que remití en ese breve texto fue el fragmento de una traducción que hice de Bertrand Meyer, de su obra clásica ObjectOriented Software Construction — 2nd Edition. El documento original lo tengo archivado en algún disco, pero con un buscador no fue nada difícil localizar el mensaje en la comunidad mencionada: Ensayo general acerca de diseño y calidad de software.

El interesado en obtener lo mejor de ALM hoy necesita tomar en cuenta los antecedentes fundacionales del desarrollo de software con calidad; los cuales han estado disponibles, por aquí y por allá en nuestra industria, desde hace ya tiempo.

Recordé el tema de estos antecedentes fundacionales cuando escuché la charla de Peter Provost: Agile Development — Write the code right, and you can actually be agile en el reciente evento ALM Summit 2011.

Pero, amén de la calidad, hay algo aún más relevante que ALM habilita: valor de negocio. De esto reflexionaré más adelante.