Cette page est en Bêta. Pour modifier ce cours, cliquer ici.
Gestion de projet et démarche agile
CM OMD 10/10/2022
Définition
La gestion de projet est un ensemble de méthodes et de techniques qui permettent de mener à bien un projet. Elle permet de définir les objectifs, de planifier les tâches, de gérer les ressources, de suivre l'avancement et de contrôler le budget.
Aussi connu sous le nom de ("SDLC") (Software Development Life Cycle), le cycle de vie du logiciel est un ensemble de phases qui permettent de mener à bien un projet de développement logiciel, composé de 7 phases.
Motivation
La SDLC :
- Vous donne un "Framework" pour mener à bien un projet.
- Vous aide à avoir un planning pour ce projet.
- Vous aide à gérer les ressources et le budget.
- Vous aide à réduire les coûts liés au développement non nécessaire.
| Recherche de la solution en CM ⇒ | Les 7 phases officielles du SDLC |
|---|---|
| Définition des objectifs (User Stories) | Analyse et planification |
| Conception | Ressources et budget |
| Test | Design et prototypage |
| Code | Développement |
| Analyse | Test |
| Dictionnaire commun | Déploiement |
| Cahier des charges | Maintenance et mise à jour |
| Livraison - Déploiement | |
| Documentation | |
| Retour utilisateur | |
| Maintenance | |
| Adéquation avec les besoins |
Historique
Création en 1970 et évolution au fil des années en étoffant les processus et en ajoutant des phases.
Modèle Waterfall
Présentation
Le modèle Waterfall est un modèle de développement logiciel qui sépare les phases de développement en étapes linéaires. Il est considéré comme un modèle linéaire, car les phases de développement sont séparées et ne se chevauchent pas. Le modèle Waterfall est le modèle de développement logiciel le plus ancien et le plus simple. Il est également connu sous le nom de modèle en cascade.
Vidéo explicative du modèle Waterfall
| Les forces | Les faiblesses |
|---|---|
| Très simple à comprendre | Peu adapté aux projets complexes |
| Donne des structures aux personnes qui ne sont pas familières avec le développement logiciel | Peu adapté aux projets qui nécessitent des changements fréquents |
| Il est facile de suivre le développement du projet | Le client ne peut pas voir le produit jusqu'à la fin du développement |
Le modèle en V
Version améliorée du modèle Waterfall, où les phases de développement sont séparées en deux parties : la phase de développement et la phase de test. Il permet au client de faire plus de retour sur le produit en cours de développement.
Le modèle Prototypage
Présentation
Le modèle de prototypage consiste en la réalisation successive de plusieurs prototypes de plus en plus aboutis. Il permet ainsi d'avoir un produit fonctionnel rapidement : MVP (minimum viable product). Ce qui permet au client de tester le produit et de le modifier en fonction de ses attentes.
Vidéo explicative du modèle Prototypage
| Avantages | Inconvénients |
|---|---|
| Le client peut voir le produit en cours de développement | Difficulté d'évaluer le temps et les coûts nécessaires pour le développement du produit |
| Le client peut faire des retours sur le produit en cours de développement | |
| Le produit est plus adapté aux besoins du client |
Amélioration
Dans la version améliorée du modèle de prototypage, le modèle de développement incrémental, le produit est développé en plusieurs versions. Chaque version est testée et améliorée en fonction des besoins du client. On ne jette ainsi pas le produit en cours de développement, on le modifie.
Le modèle en Spirale
Le modèle en Spirale est un modèle de développement logiciel qui combine les phases de développement et de test. Il permet au client de faire des retours sur le produit en cours de développement. Il est considéré comme un modèle itératif, car les phases de développement et de test se chevauchent.
Vidéo explicative du modèle en Spirale
| Avantages | Inconvénients |
|---|---|
| Utilisation des meilleures pratiques de développement logiciel | Beaucoup plus complexe que les autres modèles |
| Organiser clairement le processus de développement et le rendre maîtrisable dans sa complexité | Trop dépendant de l'analyse des techniques et nécessitant une expertise très spécifique |
| Diminue considérablement le risque d’échec lors des projets logiciels de grande taille |