4 minutes

Un logiciel ou une application ne se résume pas à un ou plusieurs programmes utilisés par des clients. Un logiciel naît, vit et meurt. C’est pourquoi on parle de cycle de vie d’un logiciel. Le cycle de vie d’une application est constitué de toutes les étapes jalonnant son parcours, depuis l’idée de départ jusqu’à l’abandon du logiciel par ses utilisateurs, en passant par la conception, la réalisation et la maintenance. L’Application Lifecycle Management, ou ALM, est le processus permettant de gérer le cycle de vie du logiciel. Entrons maintenant un peu plus dans les détails pour découvrir le cycle de vie d’un logiciel dans un projet Agile.

Le cycle de vie d’un logiciel

Pour faire simple, le cycle de vie d’un logiciel ou d’une application est constitué de toutes les étapes allant de sa conception à sa disparition.

Pourquoi effectuer un tel découpage ? Créer un logiciel, le déployer et en assurer la maintenance n’a pas l’air très compliqué. Détrompez-vous ! La création d’une application est au contraire une opération très complexe, ou plutôt une succession d’opérations plus ou moins complexes. Ces opérations doivent être réalisées dans un ordre bien précis, et sont généralement très dépendantes les unes des autres.

Découper le cycle de vie d’un logiciel en étapes « unitaires » va permettre de mettre en place des jalons et des processus de vérification et de validation qui leur seront associés. C’est un bon moyen de s’assurer de la qualité du travail produit et d’en maintenir le niveau tout au long du projet. Ceci permet aussi  de s’assurer que les délais et les coûts de réalisation sont maîtrisés et qu’ils ne risquent pas de déraper. Plus une erreur ou une anomalie est détectée tardivement, et plus cela va coûter cher de rendre l’application conforme.

Cycle de vie de l’application dans un projet Agile

Avec les approches Agiles, le cycle de développement du logiciel est itératif. La réalisation du logiciel va être décomposée en itérations (appelées sprints dans le cas de la méthode agile scrum) reprenant chacune les phases suivantes :

  • Analyse des besoins : recueil et expression des besoins et des contraintes avec le client, rédaction d’un document de synthèse.
  • Conception ou spécification générale : architecture globale et description des fonctionnalités de l’application.
  • Conception ou spécification détaillée : définition du détail des fonctionnalités en créant des lots, ou des sous-ensembles du logiciel qui regrouperont des fonctionnalités apparentées ou liées.
  • Conception ou spécification technique : les fonctionnalités étant définies, il faut maintenant déterminer de quelles manières elles seront réalisées concrètement.
  • Réalisation : il s’agit de la phase de développement. Les développeurs vont traduire en code les fonctionnalités décrites dans les étapes précédentes.
  • Tests unitaires : les tests unitaires permettent de vérifier unitairement que chaque unité de code lorsqu’elle est exécutée, se comporte de façon conforme par rapport aux spécifications. Idéalement, le développement est piloté par les tests (TDD ou Test Driven Development) et par conséquent, les tests sont écrits par les développeurs durant la phase de réalisation.
  • Intégration : l’ensemble des éléments développés séparément sont regroupés afin de vérifier qu’ils communiquent correctement et qu’ils fonctionnent ensembles. Ces vérifications sont effectuées à l’aide des tests d’intégration. Ils peuvent être réalisés conjointement avec l’équipe projet et le client.
  • Qualification : le client vérifie la conformité de l’application développée aux spécifications établies.

Chaque itération, qui dure généralement de deux à quatre semaines, couvrira un nombre réduit de fonctionnalités. Chaque fonctionnalité sélectionnée passera par les différentes phases, sera intégralement développée, et livrée au client à la fin du sprint pour être qualifiée. Le principal intérêt du modèle agile scrum est qu’il s’adapte facilement aux changements. Toutes les deux à quatre semaines, le client reçoit des fonctionnalités pleinement opérationnelles qu’il peut tester et valider. Il est donc possible de modifier une fonctionnalité si l’on se rend compte qu’elle ne correspond pas tout à fait au besoin réel, ou de modifier l’architecture de l’application pour résoudre un blocage technique. Les anomalies sont repérées rapidement et sont donc moins chères à corriger.

L’Application Lifecycle Management

Face à la complexité croissante des projets de développement d’application, il a été nécessaire de formaliser la façon dont est géré le cycle de vie d’un projet. Ainsi est né l’Application Lifecycle Management.

L’objectif de l’ALM est de gérer le cycle de vie du logiciel, depuis son idée de départ jusqu’à sa mise en production et sa phase de maintenance, en passant par sa conception, sa réalisation et sa validation.

Tous les acteurs doivent être impliqués dans le cycle de vie de l’application. L’ALM fournit des outils aux équipes techniques, aux spécialistes métier et fonctionnel (qui peuvent effectuer des tests, proposer des améliorations…) aux utilisateurs (qui vont faire remonter les anomalies), aux équipes marketing et commerciales (qui vont pouvoir faire des suggestions d’améliorations en fonction des besoins du marché et des logiciels concurrents).

L’ALM va donc être utilisé aussi bien dans l’analyse des besoins, la gestion de projet, le cycle de développement logiciel, le support (HelpDesk), le contrôle de la qualité…

L’utilisation d’ALM va permettre d’apporter une plus grande qualité, une meilleure productivité des équipes et un suivi en temps réel de l’avancement des tâches et du projet de façon plus générale.

Pour conclure sur le cycle de vie d’un logiciel ou d’une application

La gestion du cycle de vie de l’application est primordiale à la réussite d’un projet de développement logiciel. C’est l’assurance d’un suivi rigoureux, d’un processus qualité efficace et d’une meilleure communication entre tous les intervenants.

La solution intégrée de gestion de projet Nutcache propose un ensemble complet d’outils pour la gestion du cycle de vie de vos logiciels. N’hésitez pas à profiter de la période d’essai gratuite durant 14 jours.