Etude du projet Agile
Utilisation de la méthodologie Agile pour coller à un projet évolutif
1. Définition du produit
. Pourquoi ?
. Quelles fonctionnalités/problèmes résolus (liste des écrans nécessaires au produit à développer) ?
. Pour qui ?
2. Définition des échanges de flux de données avec les applications tierces
Définir chaque flux et choisir les API nécessaire à l'alimentation de ces flux dans le produit à réaliser ainsi que les délais de mise à jour.
3. Définir la base de données à créer ou à utiliser
. Quelles sont les données stockée et celles qui sont calculées nécessaires au produit ?
. Quelles technologies utilisées pour ce stockage (fichiers ou base de données) et estimation du serveur et de l'espace de stockage nécessaire ?
4. Définir l'architecture applicative
. En fonction des besoins 2 possibilités :
- Choix de la technologie et trouver un prestataire qui la maîtrise.
- Choix d'un prestataire et utilisation des technologies qu'il maîtrise.
. Pour la partie mobile, prévoir les cas de déconnexion et planifier les mises à jour de données.
- Etudier les données qui seront conservées sur un serveur.
- Etudier les données qui seront conservées sur mobile, la technologie utilisée et la périodicité des mises à jour.
5. Définir les fonctionnalités du backoffice et son implémentation
. Définir les interfaces graphiques (UX-UI design) et fonctionnalités nécessaires à la gestion de l'application via le backoffice
. Définir les mises à jour de données sur le serveur (qui fait ces mises à jour, comment, périodicité).
6. Définition des users stories
. Rapport entre fonction produit et fonctionnalités nécessaires.
7. Suivi des équipes de développement
. Définir les dates de livraison des différentes fonctionnalités par ordre de priorité.
. En moyenne 4 à 6 users stories/semaine (en fonction de la taille de l'équipe).
- Pour tenir ce rythme il est nécessaire d'investir dans des outils de tests automatiques et d'intégration continue pour éviter les tests de régression manuels.
- Chaque user stories a au moins un test d'acceptation automatique au niveau fonctionnel.
- La majorité du code a des tests unitaires automatisés.
. Eviter de surcharger le développement suite aux livraisons par un trop grand nombre de nouvelles demandes, permet d'éviter une surcharge de travail et mauvaise qualité de développement.
- Pour cela il faut avoir une semaine d'avance sur la planification des users stories à réaliser.
. Il faut donc bien gérer les sprints et tickets afin d'avoir un bon suivi du développement.
. Il faut aussi gérer le backlog des nouvelles demandes à venir en les priorisant, en faisant le tri et en refusant notament celles qui sont inutiles.
. Il faut définir pour cela la valeur et la taille des users stories (criticité, durée, optionnelles).
- Pour définir l'importance des users stories, il faut communiquer avec les parties prenantes qui utiliseront ces fonctionnalités afin d'en estimer la valeur et avec les développeurs pour la taille/durée de leur développement.
- Attention, essayer de tomber juste dès le début du projet n'est pas une bonne méthode car très difficile à estimer, cela se fera au fur et à mesure du développement et des livraisons.
. Par contre, il faut aussi décomposer les users stories par tâches à réaliser des plus précises au plus floues, les plus floues devenant plus précises au fur et à mesure des développements.
. Planifier un atelier d'affinage des users stories 1h/semaine suite au feedback des utilisateurs par rapport aux livraisons.
8. Validation des développements
. Etablir un planning de test avant mise en production et après mise en production (tests rééls).
. Valider les développements avant déploiement.
. Prévoir une période de test sur un groupe d'utilisateur pour valider la partie fonctionnelle.
9. Déploiement de l'application
. Définir les périodes de mise à jour les moins génantes pour les utilisateurs.
. Bloquer l'accès aux fonctionnalités mises à jour.
. Sauvegarde de régression.
. Mettre à jour.
. Libérer les fonctionnalités bloquées après avoir tester que tout fonctionne correctement, sinon retour arrière et correction des erreurs.
Attention :
. Une bonne gestion d'un projet est liée à une bonne documentation et des commentaires dans le code.
. En travaillant avec des sociétés de prestation, celles-ci en fournissent le moins possible pour conserver leur savoir-faire et conserver leur clientèle.
. Il vaut mieux réaliser le cahier des charges et la documentation en interne afin de rester maître du projet et ne pas risquer de perte d'informations avec le temps.