DEVELOPPEMENT LOGICIEL INTRODUCTION AUX METHODES DE SUPERVISION SDLC Partie 1
#processusdedeveloppementproduit #formation # gestiondeprojet
INTRODUCTION
Qu’il soit destiné à répondre aux besoins de votre propre entreprise ou à ceux d’une autre, développer un logiciel est une aventure palpitante qu’il vaut mieux maîtriser, compte tenu des ressources humaines, techniques, temps... investies et les risques encourus en cas d’échec.
Les méthodes SDLC (Software Development Life Cycle), ont toutes pour ambition de définir un cadre permettant de gérer de façon optimal le cycle de vie complet du développement d’un logiciel. L’objectif est double: aboutir à un produit de qualité pour les utilisateurs et optimiser les ressources consommées pour le créer.
Au cours du temps, la famille des SDLC c’est enrichie de nombreux membres: Méthode Agile, en cascade, itérative, DevOps, Spirale, en V, Big Bang… Pour mieux comprendre cette drôle de tribu, revenons, dans cette première partie, sur les fondamentaux du cycle de vie d’un développement logiciel…
CYCLE DE VIE D’UN DEVELOPPEMENT LOGICIEL
Développer un logiciel ou le faire évoluer est un investissement en compétences, équipements, temps, argent, etc. Donc lorsqu’on décide de le faire, pour son entreprise ou celles des autres, c’est parce qu’on en espère un retour sur investissement.
L’approche SDLC guide les différents métiers impliqués: marketing, développement, qualité, design, support, management, documentation... Etape par étape, la méthode permet de progresser sur le chemin qui mène de l’idée initiale jusqu’au logiciel en fonctionnement.
En créant un guide, mais aussi un vocabulaire et des procédures communes, c’est un outil qui rassemble. Son but est de limiter les défauts, oublis, retards... qui peuvent entraver tout processus de développement et ceci quelque soit l’ampleur du projet. Le SDLC Veille à ce que toutes les parties prenantes donnent leur avis et collaborent, dès les premières phases du projet.
C’est quoi un cycle de vie d’un développement logiciel?
On peut le résumer à une histoire en 7 phases:
1. Phase POURQUOI FAIRE?
Avant de se lancer à travailler sur un projet de développement logiciel, il est impératif de prendre le temps de comprendre ce que l’utilisateur final veut faire et comment. Cela revient donc à faire la liste exhaustive des fonctionnalités du futur outil. Mais aussi la manière de le faire. A cela, il faut rajouter toutes les contraintes devant être respectées.
Il faut aussi penser à étudier les logiciels déjà existants ou annoncés dans un proche avenir.
Le volet financier ne doit pas non plus être négligé. Si on souhaite commercialiser le futur logiciel alors une étude financière rigoureuse s’impose: prix de vente, date idéale de mise sur le marché, canaux de promotion comme de distribution, packaging, volume des ventes envisageable, durée de vie…
L’objectif est d’offrir un panorama, le plus exhaustif possible, du futur produit ou évolution du produit et son environnement, grâce à un travail en amont mené par l’équipe marketing. Ce travail s’appuie sur des études autour du marché ciblé, d’une veille concurrentielle, la consultation d’un panel d’utilisateurs, de vendeurs, programmeurs, techniciens... les opportunités technologiques ou législatifs à venir, etc.
La première phase consiste donc à coucher sur le papier, le profil du produit idéal pour satisfaire les utilisateurs et permettre à l’entreprise de se développer. A l’issue de ce brainstorming, un cahier des charges doit émerger. Il peut être utiliser pour poursuivre le projet en interne ou lancer une consultation auprès de fournisseurs.
Il est important de garder à l’esprit que cette première phase peut aussi être la dernière. En effet, si cette réflexion aboutit à la conclusion qu’il existe déjà un logiciel répondant à tout ou à une large partie des exigences identifiées ou que le coût ou les bénéfices espérés ne sont pas en adéquation avec l’investissement, alors il peut s’avérer raisonnable d’arrêter l’aventure…
2. Phase QUOI?
La seconde phase consiste à passer du rêve à la réalité et transformer le cahier des charges en document des spécifications. Grâce à un travail poussé pour parfaitement délimiter le champs des exigences, les analystes vont réaliser une étude de faisabilité passant au crible toutes les facettes du projet en termes de technicité, d'exploitation, d'économie, de législation, de calendrier, de coût, de risques etc..
Ce document a pour but de servir de référence pour garder les équipes impliquées dans le développement et l’exploitation, mais aussi les utilisateurs et les décideurs... sur la même longueur d'onde.
La communication et la collaboration sont les clés de la réussite de cette phase stratégique. Un travail de synthèse doit aboutir à la rédaction de plusieurs documents clés: le document des spécifications mais aussi un premier jet du planning et du budget nécessaire.
A la lumière de ces documents, les instances décisionnaires doivent pouvoir établir si les délais, coûts et spécifications sont en adéquation avec le cahier des charges et la stratégie de l’entreprise et ainsi passer à la phase suivante, ou bien si le projet doit être arrêté ou la phase prolongée pour un complément d’analyse.
3. Phase COMMENT?
La phase suivante va permettre à l‘équipe de planifier la meilleure façon de créer le logiciel. L'objectif est d'optimiser le processus de création en fonction du coût, de la vitesse, du temps, des ressources disponibles et autres facteurs, tout en respectant les exigences des utilisateurs finaux.
À cette étape, l'équipe doit affiner les estimation de coût, planning, ressources et efforts pour mener à bien le projet. Cette phase implique également l'identification des risques et les moyens de les minimiser. La partie de l’équipe impliquée dans la future phase de validation et celle de support, doivent être étroitement associées. De cette façon, l'équipe peut déterminer la meilleure façon de produire le logiciel avec le moins de risques, de dépenses et de temps.
Un document d’architecture générale permet de préparer la phase suivante de développement. Il couche sur papier et dans les esprits, un descriptif des infrastructures logicielle et système, des interface(s) utilisateur(s), des bases de données, modules optionnels ou futurs...... flux de données circulant entres les composants… Il permet de s’assurer que tous les éléments fonctionnels et non fonctionnels seront couverts. En prenant le temps de créer une architecture évolutive, on peut aussi poser les jalons d’extension ou de personnalisation futurs.
Un document d’architecture détaillée complémentaire permet de coucher les détails de la conception interne des composants et des données entrantes et sortantes.
Ces documents ont aussi pour vocation d’identifier d’éventuels oublis pouvant entraîner des modifications coûteuses.
Recommandé par LinkedIn
4. Phase DEVELOPPEMENT
A ce stade, l’équipe développe et assemble des composants en fonction des décisions prises lors des phases précédentes. Des choix correctifs peuvent être apportés en cas de problèmes ou de risques ayant échappés à la vigilance de l’équipe projet.
La rédaction d’un plan de Validation doit permettre d’imaginer les tester à appliquer au futur logiciel et ses composants, fin de s’assurer qu’ils répondent en tout point au document de Spécifications.
5. Phase de VALIDATION
La batterie de tests, imaginée dans le plan de validation, est appliquée afin de garantir la qualité, les performances, les fonctionnalités… attendues.
En cas d’identification d’erreurs, dysfonctionnements, contres-performances… des modifications correctives sont appliquées. Dans certain cas, une campagne de distribution de bêta-versions peut compléter cette phase de validation.
6. Phase de DEPLOIEMENT
Après avoir testé le logiciel et résolu les problèmes, il est prêt à être déployé dans l'environnement de production. Dans le cas d’un logiciel destinée à un client particulier, ce déploiement s’accompagne d’une recette avant acceptation par l’entreprise cliente. Durant cette phase, des actions de formation, à destination des utilisateurs finaux, peuvent être menées.
7. Phase de MAINTENANCE
Malgré tous les tests de validation pratiqués en amont, le fonctionnement du logiciel va s’accompagner d’incidents. Le rôle de la maintenance est de recenser ces dysfonctionnements, identifier le niveau de criticité et l’origine de chaque problème pour ensuite s’assurer qu’ils soient corrigés. On appelle cela de la maintenance corrective.
Lorsque des améliorations ou de nouvelles fonctionnalités sont nécessaires, se pose la question de l’ampleur des modifications demandées. Lorsqu’elles sont conséquentes, elles peuvent aboutir au lancement d’un nouveau cycle SDLC.
CONCLUSION
L’utilisation d’un SDLC est souvent perçu comme un carcan, lors de son déploiement. Cela oblige chaque personne impliquée à modifier ses habitudes et donc perçu comme une perte de temps et de repaires. Un management totalement impliqué et moteur est donc une condition nécessaire à une mise en œuvre réussie. En retour, le déploiement d’un SDLC apporte une valeur ajoutée à un projet de développement logiciel :
A SUIVRE...
Dans la seconde partie de cet article, nous survolerons les principales méthodes mettant en œuvre les bases du SDLS.
Je suis Formatrice et consultante. Si vous souhaitez faire appel à mon expérience pour former vos collaborateurs ou vos étudiants, contacter moi pour en parler - 06 63 07 67 19