Programmation extrême vs Scrum | XP vs Scrum
Il y a eu un certain nombre de méthodologies de développement de logiciels utilisées dans l'industrie du logiciel au fil des ans, telles que la méthode de développement de la cascade, le modèle V, RUP et quelques autres méthodes linéaires, itératives et combinées linéaires. Agile Model (ou plus correctement, un groupe de méthodologies) est un modèle de développement logiciel plus récent introduit par l'Agile Manifesto pour répondre aux lacunes trouvées dans ces méthodologies de développement logiciel traditionnelles.
Les méthodes agiles sont basées sur le développement itératif et utilisent les commentaires 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. Agile Model fournit une version de travail du produit très tôt en décomposant le système en sous-parties très petites et gérables, afin que le client puisse réaliser certains des avantages dès le début. Le temps de test du cycle d'Agile est relativement court par rapport aux méthodes traditionnelles, car les tests sont effectués parallèles au développement. En raison de tous ces avantages, les méthodes agiles sont préférées aux méthodologies traditionnelles pour le moment. Scrum et Extreme Programming sont deux des variations les plus populaires des méthodes agiles.
Qu'est-ce que Scrum?
Comme mentionné ci-dessus, Scrum est un processus de gestion de projet incrémentiel et itératif, qui appartient à la famille des méthodes agiles. Scrum est basé sur la priorité élevée à la participation des clients au début du cycle de développement. Il recommande d'incorporer les tests par le client tôt et souvent que possible. Les tests se font à chaque point lorsqu'une version stable devient disponible. La fondation de Scrum est basée sur le début des tests depuis le début du projet et se poursuit tout au long de la fin du projet.
La valeur clé de Scrum est que «la qualité est la responsabilité de l'équipe», qui souligne que la qualité du logiciel est la responsabilité de toute l'équipe (pas seulement l'équipe de test). Un autre aspect important de Scrum consiste à décomposer le logiciel en parties gérables plus petites et à les livrer très rapidement au client. La livraison d'un produit de travail 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 libération très courts (appelés sprints) et en obtenant des commentaires pour l'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. Ils sont le propriétaire du produit (qui représente le client et maintient le backlog du produit), Scrum Master (qui agit en tant qu'organisateur et coordinateur de l'équipe en organisant des réunions Scrum, en maintenant le carnet de commandes et les graphiques de l'équipe) et d'autres membres de l'équipe. Une équipe peut être composée de rôles traditionnels, mais surtout, ce sont des équipes d'autogestion. Les principaux artefacts de Scrum sont le carnet de commandes de produit / backlog (liste de souhait. date). Les principales cérémonies de Scrum sont la réunion du backlog de produit, la réunion de sprint et la réunion rétrospective.
Qu'est-ce que la programmation extrême?
La programmation extrême (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). La première passe, qui ne prend qu'une journée ou une semaine, est intentionnellement incomplète. Pour fournir des objectifs concrets pour développer le logiciel, les tests automatisés sont écrits au début. Ensuite, les développeurs font le codage. L'accent est mis sur la programmation comme paires. Une fois que tous les tests passent, le codage est considéré comme complet. La phase suivante est le design et l'architecture, qui traite de la refactorisation du code par le même ensemble de programmeurs. À la fin 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 jeu suivant des fonctionnalités les plus importantes) commence.
Quelle est la différence entre la programmation extrême et la mêlée?
La programmation et la mêlée extrêmes sont naturellement très similaires et des méthodologies alignées. Cependant, il existe des différences subtiles mais importantes entre ces deux méthodes. Les sprints de mêlée durent 2 à 4 semaines, tandis que les itérations XP typiques sont plus courtes (1 à 2 semaines). Habituellement, les équipes SCRUM ne permettent pas les changements dans les sprints, mais les équipes XP sont peu plus flexibles aux changements dans les itérations. Par exemple, après la planification du sprint, l'ensemble de éléments de ce sprint reste inchangé, mais une fonctionnalité sur laquelle 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és dans XP est strictement prioritaire par le client, tandis que l'équipe Scrum décide de l'ordre des articles (après la priorité de l'arriéré du produit par le propriétaire du produit de Scrum).
Contrairement à XP, Scrum ne limite aucune pratique d'ingénierie. Par exemple, XP est motivé par des pratiques telles que le développement axé sur les tests (TDD), la programmation des paires, le refactorisation, etc. Cependant, certains croient que la tenue d'imposition d'un ensemble de pratiques sur les équipes auto-organisées pourrait avoir un impact négatif, et cela peut être considéré comme une lacune de XP. Une autre lacune de la programmation extrême est que les équipes inexpérimentées peuvent avoir tendance à refacter sans aucun test automatisé ou TDD (ou simplement piratage). Par conséquent, certains suggèrent que Scrum est meilleur pour regarder (car il apporte de grandes améliorations simplement par le biais d'itérations ciblées 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).