26. Scrum Scrum est un processus agile qui permet de produire la plus grande valeur métier dans la durée la plus courte Du logiciel qui fonctionne est produit à chaque « sprint » (2 à 4 semaines) timebox Le métier définit les priorités. L'équipe s'organise elle-même pour déterminer la meilleure façon de produire les exigences les plus prioritaires A chaque fin de sprint : release déployable et testable par les utilisateurs finaux Deux rôles importants dans l’équipe Scrum: Product Owner et Scrum Master Scrum en 100 mots
27. Product Owner Scrum Master Définit les fonctionnalités du produit Définit les priorités dans le backlog en fonction de la valeur « métier » Ajuste les fonctionnalités et les priorités à chaque itération si nécessaire Teste les releases Accepte ou rejette les résultats Vulgarise les valeurs et les pratiques de Scrum Contribue à améliorer les outils et les pratiques de l’ingénierie Facilite une coopération poussée entre tous les rôles et fonctions Protège l'équipe des interférences extérieures Met l’accent sur la créativité et la gestion autonome des membres
28.
29. Une itération ? Backlog de produit Annuler Emballage Retour Itération 1 mois Retour But de l’itération Liste des tâches Produit partiel livrable et testable Coupons Emballage Coupons Annuler 24 heures
37. Développement piloté par les tests Codage du test Compilation Correction des erreurs de compilation Lancement du test échec Ecriture du code Lancement du test Jusqu’à ce qu’il passe Refactor
42. L'usine logicielle agile Plateforme collaborative Gestion de projet Gestion de sources Gestion de tickets Plateforme de tests Tests de performances Validation, recettes Plateforme d'intégration Intégration continue Tests Métriques Postes développeur IDE Tests unitaires Modélisation UML Gestion des exigences
62. Sources Traduction de Claude Aubry www.aubryconseil.com Certains Slides sont issus d’une présentation de Mike Cohn sous license libre www.mountaingoatsoftware.com
Notes de l'éditeur
effet tunnel délai trop long entre l’expression des besoins et la mise en exploitation du système opérationnel.
« Notre première priorité est de satisfaire le client en livrant tôt et régulièrement des logiciels utiles » C’est l’utilisateur qui décide ce qu’il faut faire Il faut l’impliquer tout au long de la réalisation « Le changement est bienvenu, même tardivement dans le développement. Les processus agiles exploitent le changement comme avantage compétitif pour le client » Le processus doit permettre une gestion continue des exigences
« Livrer fréquemment une application fonctionnelle, toutes les deux semaines à deux mois, avec une tendance pour la période la plus courte » Il faut adopter un cycle itératif et incrémental « Les gens de l'art et les développeurs doivent collaborer quotidiennement au projet » Les utilisateurs doivent être disponibles
« Bâtissez le projet autour de personnes motivées. Donnez leur l'environnement et le soutien dont elles ont besoin, et croyez en leur capacité à faire le travail » Il faut reconnaître le rôle du concepteur-développeur Il faut l’impliquer dans la réussite du projet « La méthode la plus efficace pour transmettre l'information est une conversation en face à face » Plutôt que de rédiger des documentations pénibles à écrire et à lire La documentation sert à capitaliser
« Un logiciel fonctionnel est la meilleure unité de mesure de la progression du projet » C’est d’autant plus fiable que l’estimation du reste à faire ne l’est pas! « Les processus agiles promeuvent un rythme de développement soutenable. Commanditaires, développeurs et utilisateurs devraient pouvoir maintenir le rythme indéfiniment » Il faut éviter les coups de bourre en fin d’itération ou de projet C’est reconnaître que la fatigue finit par nuire au projet
« La simplicité - l'art de maximiser la quantité de travail à ne pas faire - est essentielle » YAGNI : You aren’t Gonna Need It ! KISS : Keep It Simple, Stupid DRY : Don’t repeat Yourself « Une attention continue à l'excellence technique et à la qualité de la conception améliore l'agilité » Les méthodes agiles visent à faire du logiciel de qualité Mobiliser du personnel compétent, former, soutenir
« Les meilleures architectures, spécifications et conceptions sont issues d'équipes qui s'auto-organisent » Donner beaucoup d’autonomie aux équipes Limiter l’impact des recommandations extérieures « À intervalles réguliers, l'équipe réfléchit aux moyens de devenir plus efficace, puis accorde et ajuste son comportement dans ce sens » Le processus doit inclure des temps pour prendre du recul