Pourquoi la programmation extrême (XP) est-elle dépassée au profit d'Agile, Kanban, etc.?

15

J'aime XP (programmation extrême), en particulier la partie où il y a 2 programmeurs sur le même écran, car la solution d'un problème est souvent trouvée plus rapidement si seulement vous expliquez ce que vous faites et la programmation par paire vous oblige à expliquer ce que vous êtes Faire.

Au cours des 10 dernières années environ, le style de travail XP semble être dépassé au profit des méthodologies de travail: Agile et / ou Kanban. Pourquoi? Depuis XP me semble être un très bon moyen de travailler et c'est beaucoup de programmation alors qu'Agile et Kanban sont plutôt des processus.

Niklas
la source
28
XP est une approche agile . "Agile" ne peut donc pas vraiment remplacer XP.
Joachim Sauer
1
J'étais sur le point de poster une réponse, quand j'ai remarqué que Volker disait à peu près la même chose. Les processus agiles sont par nature adaptatifs, il n'y a rien de tel que Kanban "parfait / pur", Scrum, XP, c'est plus un mix and match. XP, dans ce sens, il fonctionne toujours bien, étant donné que plusieurs des concepts qu'il a introduits ont été adoptés par presque toutes les autres approches.
yannis
3
Il y a une liste intéressante de critiques sur XP sur Wikipédia , mais si vous la parcourez, la plupart s'appliquent à Agile en général.
yannis
3
Je ne pense pas que XP soit allé nulle part. Une grande partie est supposée faire partie du développement agile. Je pense que ce qui s'est démodé, c'est d'utiliser le terme «extrême». Cela m'a toujours donné l'image d'un codeur sauté sur le mont. Rosée avec un snowboard penché sur le bureau.
JimmyJames
Le problème de la "programmation par paires" n'a pas fonctionné, OMI. C'est génial pour résoudre certains problèmes isolés, mais la grande majorité des problèmes de programmation (interfaces utilisateur, architectures, règles métier) ne justifient pas le coût d'avoir deux développeurs de logiciels assis sur le même écran.
Robert Harvey

Réponses:

21

Il y a beaucoup de styles, de méthodes et de mentalités différents liés au développement du champ entier, et tout a son propre nom brillant.

Agile n'est qu'un état d'esprit qui s'éloigne des modèles de programmation statiques habituels (comme les cascades) - son objectif principal est de parvenir à un développement plus flexible et (à la toute fin) de meilleurs logiciels et des clients satisfaits. Sous agile, il existe de nombreux modèles différents comme Scrum, Kanban, XP.

En particulier, Kanban ne provient pas du développement de logiciels à l'origine, il provient de la construction de voitures (je rappelle que Toyota l'a introduit pour la construction de voitures et que certains développeurs de logiciels l'ont adopté et développé)

La programmation en binôme, les révisions de code et ce genre de choses ne sont que des outils - vous pouvez (et devriez) toujours le faire pendant un projet, quelle que soit la méthode que vous utilisez. C'est juste que ce truc est plus natif d'agile que de statique.

XP a plus ou moins introduit ces choses (ou du moins leur a donné un nom brillant) et toutes les choses suivantes les ont adoptées parce que cela fonctionnait simplement bien.

Volker
la source
3
Comme @refro l'a également mentionné, Scrum et Kanban n'incluent pas la programmation par paires ni les révisions de code (mais ils ne les excluent pas non plus). Les deux sont plus une méthodologie de gestion de projet qu'un processus de développement logiciel. Et en tant que tels, ils sont applicables à un large éventail de domaines en dehors du développement de logiciels. Alors que XP est spécifiquement une approche de développement logiciel. Ceux-ci peuvent coexister - vous pouvez gérer votre équipe XP de la manière Scrum.
Péter Török
16

À mon avis, XP est une pratique de programmation, Scrum et Kanban sont des pratiques de gestion de projet. Ils ont une relation mais ne se remplacent pas.

Dans notre projet kanban, nous utilisons la programmation par paires (principalement pour les sections complexes et le débogage), TDD, CI. Donc, il est toujours utilisé, mais la direction pousse plus dur le côté gestion de projet.

refro
la source
1
La programmation en binôme est comme brouiller dans les pratiques des musiciens. Cela fonctionne parfois et parfois ne fonctionne pas du tout. Dans de rares cas, il pourrait être adopté comme un moyen général de jouer et dans de très rares cas comme un moyen de composer .
Alex Yu
0

Extreme Programming concerne la mécanique du développement, tandis qu'Agile concerne le SDLC (cycle de vie du développement logiciel).

La principale raison pour laquelle vous n'entendez plus parler de «programmation extrême» par son nom est l'utilisation du terme «extrême» comme adjectif positif. C'est surtout une victime du marketing. C'est pourquoi vous l'entendez presque exclusivement sous le nom de "XP", même verbalement.

Andy_Vulhop
la source
0

J'ai quelques réflexions sur la programmation en binôme.

Pour moi, c'est quelque chose que vous faites lorsque vous êtes coincé avec quelque chose. À ces moments-là, cela peut être très efficace, cela peut vous sortir d'une ornière. Mais c'est aussi fatigant et une façon de travailler que le programmeur de type stéréo n'aime pas faire plus qu'occasionnellement.

Si vous creusez un trou, peu de gens voudraient obtenir l'aide d'un collègue. Mais dès qu'il y a de la créativité, les gens préfèrent faire les choses à leur place plutôt qu'à la manière de quelqu'un d'autre. La tension est donc toujours proche à moins que l’un ne s’en soucie dans un sens ou dans l’autre ou si son rôle est clairement de suggérer uniquement.

Là où je travaille, la programmation par paires n'est pas formalisée, mais nous avons des sessions ad hoc et elles sont généralement brèves. Ce ne sera pas comme "Hey collègue, que diriez-vous d'une programmation extrême?" Il commencerait plus souvent par "Pouvez-vous jeter un œil à mon écran?" et en tirant une chaise pour eux.

Je ne pense donc pas que la programmation en binôme soit morte ou moins populaire, ce n'est qu'un de ces outils que vous n'utilisez pas très souvent parce que c'est coûteux, et pas principalement parce que deux personnes rémunérées travaillent sur une chose.

Martin Maat
la source
0

Agile est plus commercialisable car il implique différentes parties prenantes avec différents rôles et responsabilités liés au processus de création de logiciels.

Quand, dans sa deuxième édition, Kent Beck a élargi le champ des participants au sein de XP, il était tard: les gens ont déjà adopté d'autres méthodologies parce que la première version XP cible les auteurs du code, et c'est ce dont le public se souvient encore inconsciemment ou non. XP n'était pas commercialisable à la naissance.

Billal Begueradj
la source
0

J'ai toujours pensé que Scrum était la version d'Agile la plus facile à vendre à la direction: les estimations déterministes, sa nature quelque peu doctrinaire et bien définie ("vous ne faites pas vraiment Scrum - culpabilisez-vous!") ...

Étirez vos sprints assez longtemps et prenez ces petites "cartes de poker" assez au sérieux, et Scrum peut chatouiller la même démangeaison que les méthodes Waterfall. Ce n'est pas nécessairement mauvais, mais ne nous cachons pas derrière la fumée et les miroirs ici.

Du côté XP, la programmation par paires ne fait généralement pas appel à la gestion, en particulier la gestion non technique.

Pour le mettre au format d'analogie SAT, Scrum: XP :: The Monkees: The Beatles

user1172763
la source