| 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. | |||||