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.
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).
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. <<
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.