Développement logiciel agile
Le développement logiciel agile est une famille de méthodes itératives et incrémentales qui privilégient les logiciels fonctionnels, la collaboration client et une réponse rapide au changement plutôt qu'une planification et une documentation exhaustives en amont.
Definition
Le développement logiciel agile est une approche dans laquelle les exigences et les solutions évoluent à travers de courtes itérations à durée fixe (time-boxed) menées par des équipes pluridisciplinaires (cross-functional teams) qui livrent des incréments fonctionnels et intègrent continuellement les retours des parties prenantes.
Scope
Ce sujet couvre les valeurs et principes du Manifeste Agile ; les cadres de travail concrets tels que Scrum, l'Extreme Programming (XP) et Kanban ; les pratiques incluant les itérations courtes, le feedback continu, le développement piloté par les tests (test-driven development), la programmation en binôme (pair programming), le refactoring et les livraisons fréquentes ; ainsi que les rôles, les cérémonies et les artéfacts qui structurent les équipes agiles.
Core questions
- Quelles valeurs et quels principes distinguent les méthodes agiles du développement piloté par la planification ?
- Comment les cadres de travail tels que Scrum et XP structurent-ils les itérations, les rôles et le feedback ?
- Quelles pratiques d'ingénierie rendent possibles des livraisons fréquentes et fiables ?
- Quand et dans quelle mesure les méthodes agiles s'adaptent-elles aux grandes organisations ou aux organisations distribuées ?
Key theories
- Valeurs du Manifeste Agile
- Quatre déclarations de valeurs privilégient les individus et les interactions, les logiciels fonctionnels, la collaboration client et l'adaptation au changement, avec douze principes de soutien soulignant la livraison précoce et continue et l'accueil favorable aux exigences changeantes.
- Cadre Scrum
- Scrum organise le travail en sprints de durée fixe avec des rôles définis (product owner, scrum master, développeurs), des artéfacts (backlogs de produit et de sprint, incrément) et des événements (planification de sprint, daily scrum, revue, rétrospective) pour livrer de la valeur de manière incrémentale.
- Pratiques de l'Extreme Programming
- XP associe des itérations courtes à des pratiques d'ingénierie disciplinées telles que le développement piloté par les tests (test-driven development), la programmation en binôme (pair programming), l'intégration continue, la propriété collective et le refactoring pour maintenir un faible coût du changement.
Clinical relevance
Les méthodes agiles sont désormais l'approche dominante dans le développement de logiciels commerciaux, améliorant la réactivité aux marchés changeants et permettant une livraison fréquente de valeur ; leur efficacité dépend de la discipline d'ingénierie, de l'autonomisation des équipes et d'une culture du feedback plutôt que de la seule cérémonie.
Evidence & guidelines
Le Scrum Guide fournit une définition largement adoptée du cadre Scrum, et le Manifeste Agile demeure la déclaration fondatrice des valeurs agiles ; les cadres de mise à l'échelle (scaling frameworks) tels que SAFe et LeSS étendent les pratiques agiles aux grandes organisations.
History
Des méthodes légères (lightweight methods) telles que Scrum et XP sont apparues dans les années 1990 en réaction aux processus lourds et axés sur la documentation (documentation-driven processes). En 2001, dix-sept praticiens ont publié le Manifeste Agile, unifiant ces méthodes sous des valeurs partagées ; l'agilité est ensuite devenue courante (mainstream) et a donné naissance à des cadres de mise à l'échelle (scaling frameworks) dans les années 2010.
Debates
- Mise à l'échelle de l'agilité aux grandes organisations
- La question de savoir si les principes agiles conservent leurs avantages lorsqu'ils sont mis à l'échelle via des cadres comme SAFe est débattue ; les critiques soutiennent que la mise à l'échelle lourde (heavyweight scaling) réintroduit la bureaucratie, tandis que les partisans considèrent la coordination structurée comme nécessaire pour les grandes entreprises.
Key figures
- Kent Beck
- Ken Schwaber
- Jeff Sutherland
- Martin Fowler
- Alistair Cockburn
Related topics
Seminal works
- beck2001
- beck2004
- schwaber2020
Frequently asked questions
- L'agilité est-elle l'opposé de l'ingénierie disciplinée ?
- Non. Une agilité efficace dépend fortement de la discipline d'ingénierie, telle que les tests automatisés, l'intégration continue et le refactoring ; l'accent agile est mis sur l'adaptation rapide au changement, et non sur l'abandon de la rigueur.
- Quelle est la différence entre Scrum et l'agilité ?
- L'agilité est l'ensemble large de valeurs et de principes ; Scrum est un cadre spécifique qui les met en œuvre avec des rôles, des événements et des artéfacts particuliers. XP et Kanban sont d'autres cadres agiles avec des accents différents.