34 votes

Scrum et Extreme Programming (XP) : Meilleures pratiques

Nous suivons Scrum pour le développement de logiciels dans notre organisation. Bien que nous ayons une bonne expérience de Scrum, nous ne parvenons pas à produire un bon code source à la fin de la journée. Les gens parlent de combiner Extreme Programming (XP) avec Scrum pour produire des résultats prévisibles.

J'ai parcouru les documents relatifs à l'Extreme Programming mais je n'ai pas réussi à me faire une idée précise de la situation.

Comment Scrum et Extreme Programming sont-ils utilisés dans le développement de logiciels ?

67voto

Assaf Stone Points 4212

Scrum est une méthode agile gestion de projet méthodologie. Elle n'aborde pas les pratiques requises pour créer des "biens" de quelque nature que ce soit, mais nous donne plutôt les éléments suivants processus qui nous mènera de la conception d'une vision au produit final, quel que soit le processus de développement. Le processus Scrum ne vous dit pas cómo pour créer de la qualité. Il vous montre ce qu'est la qualité, où se situent vos problèmes et vous met au défi de les résoudre.

La programmation extrême est une méthode agile développement de logiciels méthodologie. Elle nous donne un processus pour créer des logiciels de manière agile et productive. Elle traite, sans s'y spécialiser, de la gestion du processus de développement, et se concentre principalement sur la pratiques d'ingénierie nécessaires pour fournir des logiciels de qualité.

Lors de l'adoption de Scrum pour le développement de logiciels, les pratiques d'ingénierie sont importées d'une pratique agile de développement de logiciels, le plus souvent de XP. Ces pratiques sont celles qui peuvent être adoptées d'une manière découplée du reste des pratiques de développement. Le plus souvent, ces pratiques sont les suivantes Développement piloté par les tests, remaniement, programmation en binôme et récits d'utilisateurs Il s'agit là d'un élément essentiel de Scrum, mais qui n'est en aucun cas obligatoire, ni la seule façon de faire les choses (il est simplement fortement recommandé). Modélisation agile est une autre source commune de pratiques d'ingénierie agile.

En résumé, lorsque l'on mélange Scrum et XP, ce qui est de loin le mélange le plus courant, on utilise tous les artefacts de gestion de Scrum, par exemple les Sprints, les Scrums quotidiens, les rétrospectives, les tableaux d'évaluation, etc. et l'on ajoute le TDD, le refactoring, la programmation en binôme et la conception JIT via les User Stories de XP.

Bien sûr, Scrum étant Scrum, c'est ainsi que l'on commence, et l'on adapte constamment (on refait, si l'on veut) le processus pour répondre aux besoins spécifiques de l'organisation.

13voto

Gishu Points 59012

Inspecter et adapter.
Pas de solution miracle

Il n'existe pas de sérum magique pour assurer le succès des équipes simplement parce qu'elles utilisent Scrum/XP/Agile et autres ; Trouvez vos goulets d'étranglement et éliminez-les un à la fois.

Mise à jour : Certains estiment que ma réponse n'est pas assez utile. Je prétends que les "cicatrices agiles" m'ont laissé de cette façon - (Je mets mon chapeau d'aide) Peut-être devriez-vous lire Scrum et XP dans les tranchées

12voto

blank Points 7947

Scrum n'a rien à dire sur la programmation.

À mon avis, on ne peut pas être "agile" sans les pratiques d'ingénierie logicielle qui permettent, au niveau technique, de répondre rapidement au changement : conception incrémentale, tests unitaires et d'acceptation, remaniement, intégration continue, propriété collective du code.

Cela s'ajoute à tous les autres éléments nécessaires, tels qu'un niveau élevé d'implication de la part de vos clients et une communication efficace au sein de l'équipe et à l'extérieur.

Ainsi que les autres livres mentionnés ici, L'art du développement agile de James Shore et Shane Warden est le meilleur livre sur le développement agile de logiciels.

[edit] Quelques liens vers des sources que d'autres personnes ont mentionnées ici :

Intégration continue

Refonte

Scrum et XP sur le terrain par Henrik Kniberg (excellente présentation sur infoq.com)

3voto

Brian Rasmussen Points 68853

The Pragmatic Programmer (mentionné par Jim Ferrans) et Code propre sont d'excellentes ressources pour le programmeur agile. Vous pouvez également consulter les livres de la série extreme programming.

3voto

Cam Wolff Points 1161

Les pratiques Scrum sont adaptées à la collaboration et à la définition des priorités avec le propriétaire du produit. Cependant, en soi, Scrum ne permettra pas à l'équipe de développement d'atteindre un rythme durable.

L'accent est mis sur les pratiques d'ingénierie telles que le développement piloté par les tests (TDD), la base de code partagée, la conception simple et évolutive, la programmation en binôme, les tests automatisés, l'intégration continue, la dette technique, etc.

De toutes les pratiques d'ingénierie, TDD est la plus difficile à apprendre et, en général, les pratiques d'ingénierie ont une courbe d'apprentissage plus élevée que les pratiques de gestion (Scrum). Cependant, sans les pratiques d'ingénierie, le code arrivera à un point où vous ne pourrez pas maintenir la vélocité. La raison en est que le code sera de plus en plus long à tester et deviendra trop fragile pour être modifié.

Si vous vous chargez des pratiques d'ingénierie, il est préférable d'intégrer à l'équipe un coach technique ou d'ingénierie. Ce dernier fournira une formation d'introduction à chaque pratique et, par le biais d'un jumelage, propagera rapidement les pratiques au sein de l'équipe.

Scrum et XP se complètent parfaitement. Certaines recherches montrent que la combinaison de Scrum et de XP donne les équipes agiles les plus efficaces. Étant donné que les deux approches sont distinctes mais complémentaires, il serait judicieux d'utiliser à la fois Scrum et XP dans toutes vos équipes agiles.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X