Différence Entre La Programmation Extrême Et SCRUM

Différence Entre La Programmation Extrême Et SCRUM
Différence Entre La Programmation Extrême Et SCRUM

Vidéo: Différence Entre La Programmation Extrême Et SCRUM

Vidéo: Différence Entre La Programmation Extrême Et SCRUM
Vidéo: SCRUM VS EXTREME PROGRAMMING | WHAT ARE THE MAJOR DIFFERENCES? 2024, Avril
Anonim

Programmation extrême vs SCRUM | XP contre SCRUM

Il y a eu un certain nombre de méthodologies de développement de logiciels différentes utilisées dans l'industrie du logiciel au fil des ans, telles que la méthode de développement Waterfall, V-Model, RUP et quelques autres méthodes linéaires, itératives et combinées linéaires-itératives. Le modèle Agile (ou plus correctement, un groupe de méthodologies) est un modèle de développement logiciel plus récent introduit par le manifeste Agile pour combler les lacunes trouvées dans ces méthodologies de développement logiciel traditionnelles.

Les méthodes agiles sont basées sur un développement itératif et utilisent les retours des utilisateurs comme principal mécanisme de contrôle. Agile peut être appelé une approche centrée sur les personnes que les méthodes traditionnelles. Le modèle Agile fournit une version fonctionnelle du produit très tôt en décomposant le système en sous-pièces très petites et gérables, de sorte que le client puisse réaliser rapidement certains des avantages. Le temps de cycle de test d'Agile est relativement court par rapport aux méthodes traditionnelles, car les tests sont effectués parallèlement au développement. En raison de tous ces avantages, les méthodes Agile sont préférées aux méthodologies traditionnelles du moment. La programmation Scrum et Extreme sont deux des variantes les plus populaires des méthodes Agile.

Qu'est-ce que SCRUM?

Comme mentionné ci-dessus, SCRUM est un processus de gestion de projet incrémental et itératif, qui appartient à la famille des méthodes Agile. SCRUM est basé sur une priorité élevée à la participation du client au début du cycle de développement. Il recommande d'intégrer les tests par le client le plus tôt possible et le plus souvent possible. Les tests sont effectués à chaque étape lorsqu'une version stable devient disponible. La base de SCRUM est basée sur le démarrage des tests depuis le début du projet et sur la poursuite jusqu'à la fin du projet.

La valeur clé de SCRUM est «la qualité est la responsabilité de l'équipe», qui souligne que la qualité du logiciel est la responsabilité de toute l'équipe (et pas seulement de l'équipe de test). Un autre aspect important de SCRUM est de décomposer le logiciel en pièces plus petites et de les livrer très rapidement au client. Fournir un produit fonctionnel est de la plus haute importance. Ensuite, l'équipe continue d'améliorer le logiciel et de livrer en continu à chaque étape majeure. Ceci est réalisé en ayant des cycles de publication très courts (appelés sprints) et en obtenant des commentaires d'amélioration à la fin de chaque cycle.

SCRUM définit plusieurs rôles clés pour le bon fonctionnement d'une équipe de développement. Il s'agit du Product Owner (qui représente le client et maintient le backlog produit), Scrum master (qui agit en tant qu'organisateur et coordinateur de l'équipe en organisant des réunions Scrum, en maintenant le backlog de sprint et en brûlant les graphiques) et les autres membres de l'équipe. Une équipe peut être constituée de rôles traditionnels, mais ce sont principalement des équipes autogérées. Les principaux artefacts Scrum sont le backlog de produit / backlog de publication (liste de souhaits), les backlogs de Sprint / les backlogs de défauts (tâches à chaque itération), les graphiques Burn down (travail restant par rapport à la date). Les principales cérémonies de SCRUM sont la réunion de backlog produit, la réunion de sprint et la réunion de Retrospect.

Qu'est-ce que la programmation extrême?

Extreme Programming (en abrégé XP) est une méthodologie de développement logiciel qui appartient au modèle Agile. La programmation extrême effectue des phases en très petites étapes continues (par rapport aux méthodes traditionnelles). Le premier passage, qui ne prend qu'un jour ou une semaine, est intentionnellement incomplet. Afin de fournir des objectifs concrets pour le développement du logiciel, des tests automatisés sont écrits au départ. Ensuite, les développeurs font le codage. L'accent est mis sur la programmation en binôme. Une fois tous les tests réussis, le codage est considéré comme terminé. La phase suivante est la conception et l'architecture, qui traite de la refactorisation du code par le même ensemble de programmeurs. A l'issue de cette phase, un produit incomplet (mais fonctionnel) est présenté aux parties prenantes. Juste après cela, la phase suivante (qui se concentre sur le prochain ensemble de fonctionnalités les plus importantes) commence.

Quelle est la différence entre Extreme Programming et SCRUM?

La programmation extrême et SCRUM sont naturellement des méthodologies très similaires et alignées. Cependant, il existe des différences subtiles mais importantes entre ces deux méthodes. Les sprints SCRUM durent 2 à 4 semaines, tandis que les itérations XP typiques sont plus courtes (1 à 2 semaines). Habituellement, les équipes SCRUM n'autorisent pas les changements dans les sprints, mais les équipes XP sont un peu plus flexibles aux changements dans les itérations. Par exemple, après la planification du sprint, l'ensemble des éléments de ce sprint reste inchangé, mais une fonctionnalité qui n'a pas commencé à travailler peut à tout moment être échangée avec une autre fonctionnalité dans XP. Une autre différence entre XP et SCRUM est que, l'ordre des fonctionnalités développées dans XP est strictement priorisé par le client, tandis que l'équipe SCRUM décide de l'ordre des articles (après que le backlog du produit soit priorisé par le propriétaire du produit SCRUM).

Contrairement à XP, SCRUM ne fixe aucune pratique d'ingénierie. Par exemple, XP est motivé par des pratiques telles que le développement piloté par les tests (TDD), la programmation en binôme, la refactorisation, etc. Cependant, certains pensent que l'imposition d'un ensemble de pratiques sur des équipes auto-organisées pourrait avoir un impact négatif, et cela peut être considéré un défaut de XP. Un autre inconvénient de la programmation Extreme est que les équipes inexpérimentées peuvent avoir tendance à refactoriser sans tests automatisés ou TDD (ou simplement piratage). Par conséquent, certains suggèrent que SCRUM est meilleur pour commencer (car il apporte de grandes améliorations simplement grâce à des itérations temporelles ciblées) et XP convient aux équipes légèrement matures qui ont découvert la valeur des pratiques mentionnées ci-dessus (plutôt que de les utiliser parce qu'on leur a demandé faire cela).

Recommandé: