mardi 5 janvier 2010

L’ALM: c’est quoi ?

On parle de plus en plus souvent de l’ALM. Mais savons nous précisément ce que c’est ? Cet article propose une approche qui fait son chemin. Elle est notamment portée par David Chappell, dont certains travaux commandés par Microsoft visent à fournir une définition plus globale.

Définition

L’ALM est l’Application Lifecycle Management, c’est à dire le cycle de vie de l’application.

Comprendre ce qu’est l’ALM revient donc à comprendre toutes les phases de la vie d’une application. Quand l’application nait elle ? Quand se développe-t-elle ? Quand meure-t-elle ?

ALM vs SDLC

Une idée commune est que le cycle de vie de l’application se confond avec le cycle de vie du développement logiciel (ou SDLC: Software Development Lifecycle).

Mais cette approche n’est elle pas un peu réductrice ? Et si l’ALM englobait tout ce qui se passe avant le lancement du développement ? Et tout ce qui se passe après son développement ?

Cette vision plus globale est très intéressante, car elle permet de gérer toutes les activités d’un projet, et pas uniquement sa phase de production. En effet, de nombreuses tâches débutent bien avant l’ouverture de son environnement de développement logiciel: fixer les objectifs, vérifier la pertinence et l’adéquation avec la stratégie, la constitution des équipes projets, la construction du projet, le chiffrage…ont lieu bien avant la phase de développement.

La phase post développement donne lieu à un grand nombre d’activités: déploiement des versions successives, surveillance et opérations…qu’il s’agit également d’intégrer dans le cycle de vie.

Les 3 phases: Gouvernance, Développement, Opérations

Les 3 phases d’une application peuvent se résumer ainsi:



L’application nait à partir de l’idée. La phase de gouvernance va permettre de préparer la phase de Développement. Enfin, la phase Opération intervient pour gérer les problématiques de déploiement, de surveillance, et de retrait.

Phase de gouvernance

La phase de gouvernance consiste en 3 activités principales, indiquées par le diagramme ci après.



Développement des cas métiers

Il s’agit de la première activité du projet, qui consiste à définir les différents scénarios métiers adressés par l’application, et à en développer les principales spécifications, en terme de résultat attendu, de bénéfices…

Gestion du portefeuille projet

Cette phase vise à concrétiser ce projet en cas de pertinence. Un chef de projet est nommé, une équipe est mise en place.

Le processus de validation de la pertinence des projets peut être complexe: l’impact de chaque projet sur la stratégie est évalué. Si un projet permet d’atteindre un grand nombre d’objectifs stratégiques, ou si son impact est fort sur certains axes stratégiques de l’entreprise, il aura une priorité importante, et pourra éventuellement être activé.

Ce type de processus est de plus en plus utilisé par les entreprise, lorsqu’elles ont un grand nombre d’idées d’innovations, mais un nombre limité de ressources. Il s’agit donc de concentrer son énergie sur les projets les plus intéressants.

Gestion du porte feuille d’application

Au cours de la vie de l’application, même lorsque celle ci est déployée, il convient d’analyser l’impact de l’application. Cette discipline s’appelle l’APM (Application Portfolio Management). Elle voit chaque application comme une valeur (à l’instar d’une machine par exemple), dont les coûts et les bénéfices doivent être analysés. Cette analyse peut aboutir à des décisions: remplacement de l’application, nouvelle version, etc…

Développement

Cette phase correspond au SDLC. Les activités sont décrites ci après.




Il s’agit donc des différentes phases de production de l’application, incluant les itérations, les opérations de maintenance, les nouvelles versions…

Cette phase est la plus connue dans l’ALM !

Les opérations

Cette phase regroupe les activités de déploiement et de surveillance de l’application.


Les déploiements sont étroitement liés aux phases de développements: nouvelle version, etc…Les opérations de surveillance et de monitoring sont quand à elles actives pendant toute la vie de l’application.

Les outils pour chaque étape

Chaque étape de l’ALM peut être supportée par un (ou plusieurs !) outils.

Dans l’écosystème Microsoft, les outils sont les suivants.

Gouvernance

La suite EPM est dédiée à cette phase des applications.

Avec la version EPM2007, l’ensemble des activités de cette phase pourra être supporté: gestion des propositions de projet, gestion des coûts/budgets, planification des ressources, outils décisionnels, etc…

Avec la version EPM2010, les activités de gestion de portefeuille projet pourront être supportées par Project Portfolio Server, dont c’est la mission principale. Retrouver les autres billets de ce blog à la catégorie EPM pour avoir la description de cet outil.

Développement

Le cycle de vie du développement est supporté par Visual Studio, aidé par Team Foundation Server. Cet outil permet à la fois la production, mais également la gestion de configuration, le test, l’intégration continue…

Opération

Un outil tend à se démocratiser pour gérer cet aspect: System Center. Véritable suite logicielle dédiée à l’administration du parc informatique, sa mise en oeuvre permet une maîtrise des différentes configurations en production.

Encore insuffisamment exploité dans le monde du développement logiciel, des connections avec les autres outils d’ALM (par exemple la gestion des tests dans TFS/Lab Manager) vont sans doute lui donner une place importante dans l’ALM, surtout dans un contexte qui pousse de plus en plus à la virtualisation.



Cet article n'est pas de moi mais d'un amis : Sylvain Gross ( s.gross@evaluant.com ), merci pour sa participation ;)

Aucun commentaire: