Les 7 étapes du développement d’un logiciel
Le cycle de développement logiciel a subi de nombreuses évolutions au gré des changements technologiques et des nouvelles méthodologies de programmation.
Le cycle de développement logiciel a subi de nombreuses évolutions au gré des changements technologiques et des nouvelles méthodologies de programmation. Les auteurs d’ouvrages sur le sujet, ainsi que les entreprises, ont tous redéfini, regroupé ou encore renommé les étapes, s’appropriant ainsi une différente variante de ce cycle. Il n’en demeure pas moins que ce cycle décrit essentiellement un processus de réalisation d’une solution logicielle allant de l’idéation, en passant par la conceptualisation, jusqu’à la concrétisation finale. Loin d’être une recette à appliquer, le cycle doit être organique et agile afin de s’adapter aux changements, aux aléas et aux demandes.
Il est important pour une entreprise de développement logiciel de communiquer à ses clients son cycle de développement, car il ne faut pas tenir pour acquis qu’ils en ont connaissance. Nos clients/partenaires sont des visionnaires, des entrepreneurs ou des entreprises de toutes tailles bien établies. Lorsque leur univers rencontre celui de Spiria ou qu’ils évoluent avec nous, ils souhaitent la concrétisation de leur projet ou l’aboutissement de leur idée. Expliquer aux clients ce cycle les rassure qu’un processus et une méthodologie sont la base même de notre travail.
Il existe beaucoup d'ouvrages à ce sujet, mais voici un résumé pour l’essentiel des phases que comportent ce cycle de développement de logiciels.
1. La planification
Cette phase d’initiation de projet met la table pour l’estimation du projet avec une connaissance à haut niveau des besoins et des objectifs visés. Diverses facettes sont abordées avec le client durant des rencontres exploratoires ou d’analyses. Le contexte d’affaires, la transition technologique, ainsi qu’une connaissance des utilisateurs internes/externes sont pris en considération. Le tout permet d’appréhender les risques et les enjeux afin de mieux évaluer les les coûts et la planification du projet.
2. Les requis
Cette étape reprend les points notés durant l’étape de planification et ajoute un niveau de précision supplémentaire pour faire avec le client un inventaire complet des besoins et des objectifs. La transcription de ceux-ci se détaille en fonctionnalités qui pourront être priorisées en équipe (par sprints) pour le design et le développement.
3. Le design et le prototypage
Une fois les requis bien définis, une schématisation de l’architecture de la solution est faite durant cette phase. Elle peut prendre différentes formes. Elle peut décrire l’architecture technologique (matérielle et logicielle), les interfaces exposées à différents services ou applications ou à des sources de données, par exemple. Également, une analyse de l’expérience usager (User Experience) permet de bâtir des maquettes fonctionnelles (Wireframes) pour valider la fonctionnalité visuelle (User Interface), l’ergonomie et l’usage efficient de navigation au sein du logiciel. Diverses preuves de concepts peuvent donner lieu à des prototypes. Elles sont ainsi validées et testées du côté frontal (Front-End) avant de pouvoir se lancer dans la prochaine étape.
4. Le développement logiciel
Comme le nom l’indique, c’est l’étape où les développeurs codent la solution (Front-End et Back-End) et connectent les interfaces pour atteindre les objectifs définis. Dans le cadre de la méthodologie Agile, c’est un processus itératif. Les clients sont en mesure de suivre, tester et approuver les fonctionnalités codées et à venir. Ceci permet de livrer une solution opérationnelle en fonction des besoins priorisés par sprints.
5. Les tests et l’assurance qualité
Durant la phase de développement, divers tests mettent à l’épreuve la solution pour valider le comportement et les fonctions. Les équipes et le client suivent des plans de tests et les résultats sont passés en revue. Le tout se déroule dans des environnements de tests ou de « Staging », différents de celui où la solution finale sera mise en production. Durant cette phase, il y a une rétroaction continuelle entre l’assurance qualité et les développeurs pour supprimer les erreurs (bogues). Lorsque le moment survient de mettre en production la solution, la phase déploiement s’organise déjà.
6. Le déploiement
Le déploiement marque la fin des développements et des tests sur le logiciel. Cette phase est constituée du transfert de la solution sur l’environnement client ou celui de production. Des mécanismes d’alerte et de contrôle sont mis en place en vue de la phase maintenance.
7. La maintenance
C’est une phase où, typiquement, une autre équipe prend la relève. Cette nouvelle équipe est en quelque sorte un service à la clientèle post-implantation. À la suite d’une période de stabilisation de la solution en déploiement, l’équipe de support et maintenance reste alerte face aux demandes du client. Les correctifs ou les demandes d’améliorations sont pris en charge selon leur envergure et les délais définis dans l’entente de service (Service Level Agreement). Si nécessaire, le cycle de développement logiciel peut reprendre du départ si les efforts requis représentent un nouveau projet.
Carlo Rossi.