Qu'est-ce que Développement agile ?

Terme général désignant les façons de développer des logiciels qui répètent de courtes itérations de quelques semaines, produisent à chaque fois un logiciel qui fonctionne, intègrent les retours des utilisateurs et révisent le plan pour suivre l'évolution des exigences. Les méthodes représentatives sont Scrum et l'Extreme Programming (XP).

Nom japonais: アジャイル開発

« Développement agile » apparaît dans 2 questions d'entraînement réparties sur 1 thèmes, dont Développement logiciel et gestion de projet.

Domaine: Développement logiciel et gestion de projet

Le Manifeste pour le développement agile de logiciels

Les idées du développement agile sont résumées dans le Manifeste pour le développement agile de logiciels, publié en 2001. Il privilégie les individus et leurs interactions plutôt que les processus et les outils, un logiciel qui fonctionne plutôt qu'une documentation exhaustive, la collaboration avec les clients plutôt que la négociation contractuelle, et l'adaptation au changement plutôt que le suivi d'un plan. Il reconnaît que les éléments de droite ont de la valeur, mais accorde davantage de valeur aux éléments de gauche : il ne signifie donc pas que la documentation ou les plans sont inutiles.

Différences avec le modèle en cascade

Dans le modèle en cascade, les exigences sont fixées d'abord et tout le système est construit en une seule passe, si bien que les utilisateurs ne voient quelque chose fonctionner que vers la fin du développement. Dans le développement agile, les fonctionnalités sont réalisées petit à petit en commençant par les plus prioritaires, et quelque chose qui fonctionne est présenté à intervalles courts : les exigences mal comprises ou changeantes sont donc repérées tôt. En contrepartie, le périmètre et le coût finaux sont difficiles à fixer au départ, et il faut des contrats adaptés et une implication continue des utilisateurs dans le développement. La meilleure approche dépend du degré de certitude des exigences et du coût des changements.

Utilisation dans les développements proches du matériel

Comme les puces et les cartes sont coûteuses et longues à refaire, le développement du matériel lui-même est surtout planifié, avec une spécification figée tôt. En revanche, les logiciels comme les micrologiciels, les pilotes, les scripts EDA et les environnements de vérification sont souvent développés de façon agile, associés à l'intégration continue et aux tests automatisés. Avant que le matériel réel existe, les logiciels sont d'abord exécutés sur des simulateurs ou des prototypes FPGA, ce qui combine le calendrier du matériel avec les itérations du logiciel.

S'entraîner : questions sur Développement agile

Dans les méthodes de développement agile comme l'Extreme Programming (XP), comment s'appelle l'activité qui réorganise la structure interne d'un programme pour la rendre plus facile à comprendre et à modifier, sans changer son comportement visible de l'extérieur ?

  1. ALa programmation en binôme (pair programming)
  2. BLa rétro-ingénierie
  3. CLa refactorisation (refactoring)
Afficher la réponse et l'explication

Réponse : C. La refactorisation (refactoring)

La refactorisation améliore la structure du code sans changer ses fonctions, par exemple en regroupant du code dupliqué, en découpant les fonctions longues et en choisissant des noms plus clairs. Pour confirmer que le comportement n'a pas changé, on prépare des tests automatisés que l'on exécute après chaque petite modification. La programmation en binôme est une pratique de XP dans laquelle deux personnes écrivent ensemble un programme sur un même ordinateur. La rétro-ingénierie consiste à analyser un programme existant pour en retrouver la spécification et la conception.

Questions fréquentes

Le développement agile signifie-t-il qu'on n'écrit pas de documents de conception ?

Non. Le Manifeste pour le développement agile de logiciels privilégie un logiciel qui fonctionne plutôt qu'une documentation exhaustive, mais il reconnaît aussi la valeur de la documentation. Les documents nécessaires à la maintenance ou à la démonstration de la sécurité sont rédigés dans la mesure nécessaire et mis à jour avec le logiciel.

Développement agile et Scrum sont-ils la même chose ?

Scrum est l'un des cadres de travail représentatifs du développement agile. Le développement agile est un terme général qui désigne l'idée de livrer de la valeur par courtes itérations ; outre Scrum, il comprend l'Extreme Programming (XP), avec des pratiques comme le développement piloté par les tests et la programmation en binôme.

« Développement agile » dans les explications

Questions mentionnant « Développement agile » (2)

  1. Dans les méthodes de développement agile comme l'Extreme Programming (XP), comment s'appelle l'activité qui réorganise la structure interne d'un programme pour la rendre plus facile à comprendre et à modifier, sans changer son comportement visible de l'extérieur ?
  2. Quelle est une caractéristique du modèle en cascade de développement logiciel ?

Termes associés

Modèle en cascade (waterfall) Analyse des valeurs limites (boundary value analysis) CI/CD (intégration continue et livraison continue) Couverture des branches (couverture des décisions) Cycle en V (modèle en V) Développement piloté par les tests (TDD) Gestion de la valeur acquise (EVM) Méthode du chemin critique (CPM) Partitionnement en classes d'équivalence (equivalence partitioning) Scrum

Retour au glossaire