Je vais beaucoup parler de logiciels, mais on peut remplacer logiciel par n'importe quelle autre réalisation, dès lors qu'elle nécessite une étape de conception, de fabrication, et qu'elle peut être testée, améliorée, etc. On parlera ici d'ingénierie au sens large.
importance de la formalisation
Oui, mais comment ?
La Cathédrale et le Bazar, Eric S. Raymond, 1997
Nous découvrons de meilleures approches pour faire du développement logiciel, en en faisant nous-même et en aidant les autres à en faire. Grâce à ce travail nous en sommes arrivés à préférer et favoriser :
Cela signifie que bien qu'il y ait de la valeur dans les items situés à droite, notre préférence se porte sur les items qui se trouvent sur la gauche.
Notre plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée.
Accueillez positivement les changements de besoins, même tard dans le projet. Les processus agiles exploitent le changement pour donner un avantage compétitif au client.
Livrez fréquemment un logiciel opérationnel avec des cycles de quelques semaines à quelques mois et une préférence pour les plus courts.
Les utilisateurs ou leurs représentants et les développeurs doivent travailler ensemble quotidiennement tout au long du projet.
Réalisez les projets avec des personnes motivées. Fournissez-leur l’environnement et le soutien dont elles ont besoin et faites-leur confiance pour atteindre les objectifs fixés.
La méthode la plus simple et la plus efficace pour transmettre de l’information à l'équipe de développement et à l’intérieur de celle-ci est le dialogue en face à face.
Un logiciel opérationnel est la principale mesure d’avancement.
Les processus agiles encouragent un rythme de développement soutenable. Ensemble, les commanditaires, les développeurs et les utilisateurs devraient être capables de maintenir indéfiniment un rythme constant.
Une attention continue à l'excellence technique et à une bonne conception renforce l’agilité.
La simplicité – c’est-à-dire l’art de minimiser la quantité de travail inutile – est essentielle.
Les meilleures architectures, spécifications et conceptions émergent d'équipes auto-organisées.
À intervalles réguliers, l'équipe réfléchit aux moyens de devenir plus efficace, puis règle et modifie son comportement en conséquence.
Modification de la présentation, de l'algorithmique, de procédures, de la conception
Suppression de code mort, ajout d'assertions, renommage, commentaires
Vérifier à chaque modification qu'il n'y ait pas de régression
Nécessite de bonnes pratiques : tout commit compile, etc.
le focus, démonstration du prototype aux utilisateurs
Système visuel de gestion des processus qui indique, quoi produire, quand le produire et en quelle quantité
Un cadre de travail plutôt qu'un processus ou une technique. On peut y employer ses propres processus et techniques
Fondé sur la théorie du contrôle de processus empirique
L'équipe Scrum comprend :
Il est responsable de maximiser la valeur du produit et du travail de l'équipe de développement
Nombre de membres : de l'ordre de 3 à 9
Garant de la compréhension et mise en œuvre de Scrum, c'est un leader-serviteur de l'équipe Scrum, un facilitateur.
Représentent un travail ou une valeur pour assurer la transparence et les possibilités d'inspection et d'adaptation.
Cœur de Scrum
Pendant le sprint
Réunion pendant laquelle on décide du travail à effectué
Répond aux questions :
Définition d'un objectif de sprint
Destinée à l'équipe de développement pour synchroniser ses activités — timeboxing de 15mn
Inspection de la progression vers le sprint
À la fin du sprint, pour inspecter l'incrément ; réunion unformelle — timeboxing suivant la durée du sprint
Participants : équipe Scrum et possibles invités
Production d'un backlog produit révisé
S'inspecter et proposer un plan d'amélioration pour le prochain sprint
Liste ordonnée de tout ce qui pourrait être nécessaire dans un produit
Items sélectionnés pour le sprint
Éléments du Backlog produit finis pendant le sprint
Extrait du Guide Léger de la Théorie et de la Pratique de Scrum
Outils logiciels : Taiga, Tuleap, Trello...
Suite de Fibonacci : 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144
Remarque : pas forcément décroissant
Inspiré de méthodes de gestions japonaises, recherche de la performance par l'amélioration continue et l'élimination des gaspillages, afin d'améliorer la valeur globale pour le client.
Comprendre ce qui plaît au client pour spécifier la valeur du service ou du produit
Augmenter le niveau de Juste à temps, c'est-à-dire réduire le délai entre la commande client et la livraison du produit ou de l'offre
Aller jusqu'au fonctionnement en flux tiré
S'arrêter à chaque défaut et résoudre le problème plutôt que de le contourner
Impliquer les opérateurs dans l'amélioration et la reconception de leurs environnements de travail
Outil d'exploration des voies d'amélioration
Outil de recherche de la cause première
Matière, matériel, méthode, main d'œuvre, milieu : thèmes de la recherche des causes
TD : initiation à git