Développement de logiciels adaptatifs - Cycle de vie

Le développement de logiciels adaptatifs a évolué à partir des pratiques RAD. Les aspects d'équipe ont également été ajoutés à ces pratiques. Des entreprises de la Nouvelle-Zélande au Canada, pour un large éventail de types de projets et de produits, ont utilisé le développement de logiciels adaptatifs.

Jim Highsmith a publié Adaptive Software Development en 2000.

Les pratiques de développement de logiciel adaptatif permettent de s'adapter au changement et sont adaptables dans des environnements turbulents avec des produits évoluant avec peu de planification et d'apprentissage.

Phases du cycle de vie des TSA

Le développement logiciel adaptatif est cyclique comme le modèle évolutif, les noms de phase reflétant l'imprévisibilité des systèmes complexes. Les phases du cycle de vie du développement adaptatif sont:

  • Speculate
  • Collaborate
  • Learn

Ces trois phases reflètent la nature dynamique du développement de logiciels adaptatifs. Le développement adaptatif remplace explicitement le déterminisme par l'émergence. Cela va au-delà d'un simple changement de cycle de vie pour un changement plus profond du style de gestion. Le développement logiciel adaptatif a un cycle de vie dynamique Spéculer-Collaborer-Apprendre.

Le cycle de vie du développement de logiciels adaptatifs se concentre sur les résultats, pas sur les tâches, et les résultats sont identifiés comme des fonctionnalités d'application.

Spéculer

Le terme plan est trop déterministe et indique un degré raisonnablement élevé de certitude quant au résultat souhaité. L'objectif implicite et explicite de conformité au plan, limite la capacité du gestionnaire à orienter le projet dans des directions innovantes.

Dans le développement de logiciels adaptatifs, le terme plan est remplacé par le terme spéculer. Tout en spéculant, l'équipe n'abandonne pas la planification, mais elle reconnaît la réalité de l'incertitude dans des problèmes complexes. La spéculation encourage l'exploration et l'expérimentation. Les itérations avec des cycles courts sont encouragées.

Collaborer

Les applications complexes ne se construisent pas, elles évoluent. Les applications complexes nécessitent qu'un grand volume d'informations soit collecté, analysé et appliqué au problème. Les environnements turbulents ont des taux élevés de flux d'informations. Par conséquent, les applications complexes nécessitent qu'un grand volume d'informations soit collecté, analysé et appliqué au problème. Cela entraîne diverses exigences en matière de connaissances qui ne peuvent être traitées que par une collaboration d'équipe.

Collaborer exigerait la capacité de travailler ensemble pour produire des résultats, partager des connaissances ou prendre des décisions.

Dans le contexte de la gestion de projet, Collaboration dépeint un équilibre entre la gestion avec les techniques de gestion traditionnelles et la création et le maintien de l'environnement collaboratif nécessaire à l'émergence.

Apprendre

La partie Apprendre du cycle de vie est vitale pour la réussite du projet. L'équipe doit constamment améliorer ses connaissances, en utilisant des pratiques telles que -

  • Examens techniques
  • Rétrospectives de projets
  • Groupes de discussion client

Les revues doivent être effectuées après chaque itération. Tant les développeurs que les clients examinent leurs hypothèses et utilisent les résultats de chaque cycle de développement pour apprendre la direction du suivant. L'équipe apprend -

  • À propos des changements de produit

  • Des changements plus fondamentaux dans les hypothèses sous-jacentes sur la façon dont les produits sont développés

Les itérations doivent être courtes, afin que l'équipe puisse apprendre de petites erreurs plutôt que de grandes erreurs.

Spéculer - Collaborer - Apprendre le cycle dans son ensemble

Comme vous l'observez à partir du cycle Spéculer-Collaborer-Apprendre, donné ci-dessus, il est évident que les trois phases sont non linéaires et se chevauchent.

Nous observons ce qui suit à partir d'un cadre adaptatif.

  • Il est difficile de collaborer sans apprendre ou d'apprendre sans collaborer.

  • Il est difficile de spéculer sans apprendre ou d'apprendre sans spéculer.

  • Il est difficile de spéculer sans collaborer ou de collaborer sans spéculer.