Développement de logiciels adaptatifs - Concepts

Dans ce chapitre, nous comprendrons les différents concepts du développement de logiciels adaptatifs.

Théorie des systèmes adaptatifs complexes (CAS)

Brian Arthur et ses collègues de l'institut de Santa Fe ont utilisé la théorie des systèmes adaptatifs complexes (CAS) pour révolutionner la compréhension de la physique, de la biologie, de l'évolution et de l'économie.

Brian Arthur a culminé ses plus de deux décennies d'essayer de convaincre les économistes traditionnels que leur point de vue, dominé par des hypothèses fondamentales de rendements décroissants, d'équilibre et de dynamique déterministe, n'était plus suffisant pour comprendre la réalité. Le nouveau monde est caractérisé par des rendements, une instabilité et une incapacité croissants à déterminer les causes et les effets.

Les deux mondes diffèrent par leur comportement, leur style et leur culture. Ils appellent à -

  • Différentes techniques de gestion
  • Différentes stratégies
  • Compréhension différente

Développement de logiciels complexes

Avec la portée des applications logicielles explosée, même les organisations de développement de logiciels accumulent des contradictions similaires à celles mentionnées ci-dessus.

  • One World est représenté par le développement déterministe, dérivé de pratiques de gestion qui sont enracinées dans les bases de la stabilité et de la prévisibilité (ce qui, selon Arthur, signifie des rendements décroissants)

  • Second World est représenté par les industries qui passent de décroissants à des environnements de retour croissants qui sont imprévisibles, non linéaires et rapides.

Pour répondre aux problèmes de ce deuxième monde, Jig Highsmith a proposé un cadre, le développement logiciel adaptatif, différent du développement logiciel déterministe.

Le développement de logiciels adaptatifs se concentre sur les systèmes complexes -

  • Développement de logiciels adaptatifs pour le cycle de vie du développement.

  • Techniques de gestion adaptative appelant à un état d'esprit différent de celui des pratiques traditionnelles de gestion de projet.

Dans ce didacticiel, vous pouvez comprendre ces deux implémentations.

Le développement logiciel adaptatif (ASD) est basé sur deux perspectives -

  • Perspective conceptuelle basée sur la théorie des systèmes adaptatifs complexes (CAS), telle que présentée dans la première section de ce chapitre.

  • Perspective pratique basée sur

    • Années d'expérience avec les méthodologies de développement logiciel déterministes.

    • Consultation, pratique et rédaction sur les techniques de développement rapide d'applications (RAD); et travailler avec des éditeurs de logiciels de haute technologie pour gérer le développement de leurs produits.

Dans ce chapitre, vous comprendrez la perspective conceptuelle du développement de logiciels adaptatifs.

Concepts des systèmes adaptatifs complexes (CAS)

La théorie des systèmes adaptatifs complexes (CAS) comporte de nombreux concepts. Le développement de logiciels adaptatifs est basé sur deux de ces concepts -

  • Émergence
  • Complexité

Émergence

Dans les projets complexes de développement de produits logiciels, les résultats sont intrinsèquement imprévisibles. Cependant, des produits performants émergent constamment de tels environnements.

Cela peut arriver par Emergence, comme illustré dans la théorie des systèmes adaptatifs complexes (CAS). Il peut être compris par un exemple simple, le comportement de vol des oiseaux.

Lorsque vous observez une volée d'oiseaux, vous remarquez que -

  • Chaque oiseau essaie de

    • Maintenez une distance minimale par rapport aux autres objets de l'environnement, y compris les autres oiseaux.

    • Faites correspondre les vitesses avec les oiseaux de son voisinage.

    • Déplacez-vous vers le centre de masse des oiseaux perçu dans son voisinage.

  • Il n'y a pas de règles de comportement pour le groupe. Les seules règles concernent le comportement de chaque oiseau.

  • Cependant, il existe un comportement émergent, le vol d'oiseaux. Lorsque des oiseaux errants se précipitent pour rattraper leur retard, le troupeau se divise autour des obstacles et se réforme de l'autre côté.

Cela montre l'exigence des changements de modèle mental les plus difficiles dans le développement adaptatif - Des façons de gérer et d'organiser cette liberté individuelle à la notion qu'un nouvel ordre créatif émerge de façon imprévisible de l'autoformation spontanée.

Outre le développement, l'émergence est également le concept le plus important du point de vue de la gestion.

Complexité

Dans le contexte du développement logiciel, la complexité concerne -

  • Les individus d'une équipe tels que les développeurs, les clients, les fournisseurs, les concurrents et les actionnaires, leur nombre et leur vitesse.

  • Taille et complexité technologique.

Pratiques de développement de logiciels adaptatifs

Le développement de logiciels adaptatifs offre une perspective différente sur les pratiques de gestion de logiciels. Dans les sections ci-dessous, vous pouvez comprendre les deux pratiques importantes - Qualité et RAD, qui ont toutes deux des ramifications pour la collecte des exigences.

Vous pouvez trouver les détails de toutes les pratiques dans le chapitre, Pratiques de développement de logiciels adaptatifs dans ce tutoriel.

Qualité

Dans un environnement complexe, la pratique séculaire de «Faites-le bien la première fois» ne fonctionne pas car vous ne pouvez pas prédire ce qui est bien au début. Vous devez avoir pour objectif de produire la bonne valeur. Cependant, dans un environnement complexe, les combinaisons et permutations de composants de valeur tels que la portée (fonctionnalités, performances, niveaux de défauts), le calendrier et les ressources sont si vastes qu'il ne peut jamais y avoir de valeur optimale. Par conséquent, l'objectif est de changer pour offrir la meilleure valeur sur le marché concurrentiel.

Pratiques RAD

Les pratiques RAD impliquent généralement une combinaison des éléments suivants -

  • Cycle de vie évolutif
  • Groupes de discussion clients, sessions JAD, examens techniques
  • Gestion de projet dans le temps
  • Génie logiciel continu
  • Équipes dédiées avec salles de guerre

Les projets RAD ont une saveur adaptative et émergente inhérente. De nombreuses organisations informatiques sont contre RAD. Cependant, Microsoft et d'autres ont produit des logiciels incroyablement volumineux et complexes utilisant des techniques comparables à RAD car cela soulève des questions sur leur vision fondamentale du monde.

Les pratiques RAD et le processus Microsoft sont deux exemples de développement adaptatif en action. Leur donner une étiquette (c.-à-d. Développement adaptatif) et se rendre compte qu'il existe un corpus croissant de connaissances scientifiques (c.-à-d. La théorie CAS) explique pourquoi ils fonctionnent. Cela devrait fournir une base pour une utilisation plus étendue de ces pratiques.