SDLC - Modèle Agile

Le modèle Agile SDLC est une combinaison de modèles de processus itératifs et incrémentaux mettant l'accent sur l'adaptabilité des processus et la satisfaction du client grâce à la livraison rapide d'un logiciel fonctionnel. Les méthodes agiles divisent le produit en petites versions incrémentielles. Ces builds sont fournis par itérations. Chaque itération dure généralement d'environ une à trois semaines. Chaque itération implique des équipes interfonctionnelles travaillant simultanément sur divers domaines tels que -

  • Planning
  • Analyse des besoins
  • Design
  • Coding
  • Tests unitaires et
  • Test d'acceptation.

À la fin de l'itération, un produit fonctionnel est présenté au client et aux parties prenantes importantes.

Qu'est-ce que Agile?

Le modèle Agile estime que chaque projet doit être traité différemment et que les méthodes existantes doivent être adaptées pour mieux répondre aux exigences du projet. Dans Agile, les tâches sont divisées en boîtes de temps (petits délais) pour fournir des fonctionnalités spécifiques pour une version.

Une approche itérative est adoptée et la construction de logiciels fonctionnels est livrée après chaque itération. Chaque build est incrémental en termes de fonctionnalités; la version finale contient toutes les fonctionnalités requises par le client.

Voici une illustration graphique du modèle Agile -

Le processus de réflexion Agile avait commencé tôt dans le développement du logiciel et a commencé à devenir populaire avec le temps en raison de sa flexibilité et de son adaptabilité.

Les méthodes Agile les plus populaires incluent Rational Unified Process (1994), Scrum (1995), Crystal Clear, Extreme Programming (1996), Adaptive Software Development, Feature Driven Development et Dynamic Systems Development Method (DSDM) (1995). Ceux-ci sont maintenant collectivement appelésAgile Methodologies, après la publication du Manifeste Agile en 2001.

Voici les principes du Manifeste Agile -

  • Individuals and interactions - Dans le développement Agile, l'auto-organisation et la motivation sont importantes, tout comme les interactions comme la colocation et la programmation en binôme.

  • Working software - Un logiciel de démonstration est considéré comme le meilleur moyen de communication avec les clients pour comprendre leurs besoins, au lieu de simplement dépendre de la documentation.

  • Customer collaboration - Étant donné que les exigences ne peuvent pas être rassemblées complètement au début du projet en raison de divers facteurs, une interaction continue avec le client est très importante pour obtenir les exigences du produit appropriées.

  • Responding to change - Le développement Agile est axé sur des réponses rapides au changement et un développement continu.

Modèles SDLC Agile vs traditionnels

Agile est basé sur la adaptive software development methods, alors que les modèles SDLC traditionnels comme le modèle en cascade sont basés sur une approche prédictive. Les équipes prédictives des modèles SDLC traditionnels travaillent généralement avec une planification détaillée et disposent d'une prévision complète des tâches et fonctionnalités exactes à livrer dans les prochains mois ou au cours du cycle de vie du produit.

Les méthodes prédictives dépendent entièrement de la requirement analysis and planningfait au début du cycle. Tous les changements à intégrer passent par une gestion et une hiérarchisation strictes du contrôle des changements.

Agile utilise un adaptive approachoù il n'y a pas de planification détaillée et il n'y a de clarté sur les tâches futures qu'en ce qui concerne les fonctionnalités à développer. Il y a un développement axé sur les fonctionnalités et l'équipe s'adapte de manière dynamique aux exigences changeantes du produit. Le produit est testé très fréquemment, à travers les itérations de version, minimisant le risque d'éventuelles pannes majeures à l'avenir.

Customer Interactionest l'épine dorsale de cette méthodologie Agile, et une communication ouverte avec une documentation minimale sont les caractéristiques typiques de l'environnement de développement Agile. Les équipes agiles travaillent en étroite collaboration les unes avec les autres et sont le plus souvent situées au même endroit géographique.

Modèle Agile - Avantages et inconvénients

Les méthodes agiles sont récemment largement acceptées dans le monde du logiciel. Cependant, cette méthode peut ne pas toujours convenir à tous les produits. Voici quelques avantages et inconvénients du modèle Agile.

Les avantages du modèle Agile sont les suivants -

  • Est une approche très réaliste du développement logiciel.

  • Favorise le travail d'équipe et la formation croisée.

  • La fonctionnalité peut être développée rapidement et démontrée.

  • Les besoins en ressources sont minimaux.

  • Convient aux exigences fixes ou changeantes

  • Fournit des solutions de travail partielles précoces.

  • Bon modèle pour les environnements qui changent régulièrement.

  • Règles minimales, documentation facile à utiliser.

  • Permet le développement et la livraison simultanés dans un contexte global planifié.

  • Peu ou pas de planification requise.

  • Facile à gérer.

  • Donne de la flexibilité aux développeurs.

Les inconvénients du modèle Agile sont les suivants -

  • Ne convient pas à la gestion des dépendances complexes.

  • Plus de risque de durabilité, de maintenabilité et d'extensibilité.

  • Un plan global, un leader agile et une pratique de PM agile sont indispensables sans lesquels cela ne fonctionnera pas.

  • Une gestion stricte de la livraison dicte la portée, la fonctionnalité à livrer et les ajustements pour respecter les délais.

  • Dépend fortement de l'interaction avec le client, donc si le client n'est pas clair, l'équipe peut être conduite dans la mauvaise direction.

  • Il existe une dépendance individuelle très élevée, car une documentation minimale est générée.

  • Le transfert de technologie aux nouveaux membres de l'équipe peut être assez difficile en raison du manque de documentation.