web-dev-qa-db-fra.com

Différence entre le développement agile et itératif et incrémental

Quelle est la différence entre développement agile et développement itératif et incrémental? Agile est-il considéré comme itératif et incrémental? Certaines informations présentées sur l’Agile sont les dernières nouveautés itératives et incrémentales. J'ai besoin d'une clarification claire à ce sujet.

40
Sonia Yunni
  • Itératif - vous ne terminez pas une fonctionnalité en une fois. Vous êtes dans un code >> obtenir des commentaires >> code >> ... cycle. Vous continuez à itérer jusqu'à la fin.
  • Incrémental - vous construisez autant que vous avez besoin maintenant. Vous ne modifiez pas l'ingénierie et n'apportez pas de flexibilité à moins que le besoin ne soit prouvé. Lorsque le besoin s'en fait sentir, vous bâtissez sur ce qui existe déjà. (Remarque: diffère de itératif en ce que vous ajoutez de nouvelles choses .. vs affiner quelque chose).
  • Agile - Vous êtes agile si vous accordez de l'importance aux mêmes choses que celles énumérées dans le manifeste agile . Cela signifie également qu’il n’existe pas de modèle standard, de liste de contrôle ou de procédure permettant de "faire preuve de souplesse". Cela ne spécifie pas trop… cela indique simplement que vous pouvez utiliser toutes les pratiques dont vous avez besoin pour "être agile". Scrum, XP, Kanban font partie des méthodologies "agiles" les plus normatives, car elles partagent le même ensemble de valeurs. Retour continu et précoce, sorties/démos fréquentes, conception évolutive, etc. elles peuvent donc être itératives et incrémentielles.
48
Gishu

Le développement incrémental signifie que différentes parties d'un projet logiciel sont continuellement intégrées dans l'ensemble, au lieu d'une approche monolithique où toutes les différentes parties sont assemblées dans une ou plusieurs étapes du projet.

Itératif signifie qu'une fois qu'une première version d'un composant est terminée, elle est testée, révisée et les résultats sont presque immédiatement transformés en une nouvelle version (itération) de ce composant.

Donc, premier résultat: le développement itératif n'a pas besoin d'être incrémental et inversement, mais ces méthodes sont bien adaptées.

Le développement agile vise à réduire les frais généraux de planification dans les projets logiciels afin de permettre aux réactions rapides de changer, par exemple. dans les souhaits du client. Le développement incrémental et itératif fait presque toujours partie d'une stratégie de développement agile. Il existe plusieurs approches du développement Agile (Scrum, par exemple).

9
Sheba

Certains projets logiciels importants et exécutés avec succès, tels que Google Chrome et Mozilla Firefox, sont de parfaits exemples de développement logiciel itératif et incrémental.

Je citerai un article fin ars technica décrivant cette approche: http://arstechnica.com/information-technology/2010/07/chrome-team-sets-six-weix-cadence-for-new-major- versions /

Selon Anthony Laforge, responsable de programme pour Chrome, le rythme accéléré est conçu pour atteindre trois objectifs principaux. La première consiste à transmettre plus rapidement les nouvelles fonctionnalités aux utilisateurs. Deuxièmement, rendez le calendrier des versions prévisible et par conséquent plus facile à définir quelles fonctionnalités seront incluses et quelles fonctionnalités seront ciblées pour les versions ultérieures. Troisièmement, et le plus contre-intuitif, il est de réduire le niveau de stress des développeurs Chrome. Laforge explique que les délais plus courts et prévisibles entre les libérations ressemblent davantage à des "trains quittant la gare Grand Central Station". Les nouvelles fonctionnalités prêtes à l'emploi ne doivent pas obligatoirement attendre que d'autres prennent plus de temps à être complétées: elles peuvent simplement sauter dans la version actuelle "train". Cela peut à son tour dissiper la pression exercée par les développeurs sur Rush pour obtenir d’autres fonctionnalités, puisqu’un autre train de mise à jour viendra dans six semaines. Et ils peuvent se reposer en sachant que leur travail n'empêche pas le train de quitter la gare. <<

0
jjpcondor

Le développement itératif implique de revenir sur les étapes habituelles du modèle en cascade au cours de la durée de vie du produit. Les étapes peuvent même se chevaucher. Par exemple, vous pourriez déjà commencer à préparer de nouvelles exigences en effectuant des tests de bout en bout.

Le développement incrémentiel signifie que vous planifiez vos fonctionnalités et les implémentez progressivement.

Agile vise à créer un "produit potentiellement livrable" après chaque sprint. Comment vous y parvenez est une autre histoire. Agile essaie d'employer les "meilleures" techniques de divers domaines (par exemple, la programmation extrême). Agile n'exclut pas l'exécution d'un développement incrémental ou itératif.

0
Roman Saveljev