Développement de logiciels adaptatifs - Concepts

Dans ce chapitre, nous allons comprendre 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 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 à 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 croissants, une instabilité et une incapacité à déterminer les causes et les effets.

Les deux mondes diffèrent par leur comportement, leur style et leur culture. Ils réclament -

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

Développement de logiciels complexes

Avec l'explosion de la portée des applications logicielles, même les organisations de développement de logiciels accumulent des contradictions similaires, comme mentionné ci-dessus.

  • Un monde est représenté par le développement déterministe, dérivé de pratiques de gestion ancrées dans les bases de la stabilité et de la prévisibilité (ce qui, selon les termes d'Arthur, signifie des rendements décroissants)

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

Pour aborder les problèmes de ce second monde, Jig Highsmith a proposé un cadre de développement logiciel adaptatif différent du développement logiciel déterministe.

Le développement de logiciels adaptatifs se concentre sur la gestion des 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 de logiciels déterministes.

    • Conseil, pratique et rédaction sur les techniques de développement rapide d'applications (RAD); et travailler avec des sociétés 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 de 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 -

  • Emergence
  • Complexity

Émergence

Dans les projets complexes de développement de produits logiciels, les résultats sont par nature imprévisibles. Cependant, des produits à succès émergent constamment de ces environnements.

Cela peut se produire 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 troupeau 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.

    • Avancez vers le centre de masse perçu des oiseaux 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 les oiseaux errants se précipitent pour rattraper leur retard, le troupeau se divise autour d'obstacles et se reforme de l'autre côté.

Cela montre l'exigence des changements de modèle mental les plus difficiles dans le développement adaptatif - des manières de gérer et d'organiser cette liberté individuelle à la notion qu'un nouvel ordre créatif émerge de manière imprévisible d'une auto-organisation 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 rapidité.

  • Taille et complexité technologique.

Pratiques de développement de logiciels adaptatifs

Le développement logiciel adaptatif offre une perspective différente sur les pratiques de gestion logicielle. 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 de ce didacticiel.

Qualité

Dans un environnement complexe, la pratique séculaire de «Faites-le bien du premier coup» ne fonctionne pas car vous ne pouvez pas prédire ce qui est juste au début. Vous devez avoir un objectif pour 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éfaut), 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 client, sessions JAD, examens techniques
  • Gestion de projet à durée limitée
  • 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 en 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 tous deux des exemples de développement adaptatif en action. Leur attribuer une étiquette (c.-à-d. Développement adaptatif) et se rendre compte qu'il existe un corpus croissant de connaissances scientifiques (c.-à-d. Théorie CAS) explique pourquoi ils fonctionnent. Cela devrait fournir une base pour une utilisation plus étendue de ces pratiques.