Quelle est la différence avec les modèles de développement push and pull?

14

Je lisais Extreme Programming Explained, Second Edition et dans le chapitre 11 "The Theory of Constraints", les auteurs parlent de l'ancien et obsolète modèle de développement "push" et de la méthode XP, le modèle de développement "pull" . Cela ressemble à un concept assez important, mais il ne prend qu'un très petit paragraphe et deux images qui ne sont que de simples illustrations de la "cascade" et du processus itératif, rien de spécifique sur ces modèles, sauf par la légende de l'image. J'ai cherché et ça ne va pas plus loin dans le reste du livre. Je n'ai pas trouvé non plus d'explications ou de discussions à ce sujet sur Internet.

Si la seule différence à ce sujet est que l'une est "cascade" et l'autre itérative , pourquoi pousser et tirer?

Est-ce que quelqu'un comprend quelle est vraiment la différence entre ces deux et donne de bons exemples?

michelpm
la source
1
Continu contre incrémentiel est un autre concept sous-jacent qui pourrait prêter à confusion. Par exemple, XP est un système de tirage incrémentiel tandis que Kanban repose sur un tirage continu (c.-à-d. Pas de sprints encadrés dans le temps).
Michael

Réponses:

16

La différence entre un système de poussée et un système de traction réside dans la façon dont les unités de travail sont attribuées à la personne qui exécutera cette unité de travail. Le concept de push and pull n'est pas unique au développement de logiciels - l'idée provient de la logistique et de la gestion de la chaîne d'approvisionnement .

Dans un système push, une sorte de tâche est créée puis attribuée à un développeur. Une tâche peut être n'importe quoi, de l'implémentation d'une exigence (ou d'un composant nécessaire pour réaliser une exigence) à une correction de bogue en passant par un document à écrire. Quelqu'un, généralement une sorte de gestionnaire ou de chef d'équipe, prend les unités de travail à effectuer, puis les attribue aux membres de l'équipe. Simplement, le travail est imposé aux personnes qui le feront.

Dans un système d'extraction, les tâches à effectuer sont stockées dans une file d'attente, souvent une sorte de file d'attente prioritaire. Un exemple pourrait être les backlogs de produits et de sprint de Scrum, qui contiennent des user stories à faire. Un développeur qui ne travaille actuellement sur rien ira dans la file d'attente et retirera l'histoire de la plus haute priorité qu'il pourra faire et y travailler. Les gens qui font le travail retirent le travail d'une liste et le font.

Le concept de push and pull n'est pas lié au développement itératif / incrémentiel versus séquentiel. Une équipe utilisant des techniques itératives / incrémentielles / agiles pourrait utiliser un système push, tandis qu'une équipe utilisant un développement séquentiel pourrait utiliser un système pull. Cependant, généralement, les méthodes agiles (XP, Scrum) favorisent les équipes auto-organisées et donc les systèmes pull.

Pour plus d'informations, vous pourriez être intéressé par cet article de blog sur Push vs Pull in Scrum . Kanban pourrait également être intéressant - Kanban est une méthodologie qui vient de la fabrication, mais peut être appliquée au développement de logiciels , qui met l'accent sur le développement juste à temps et la réduction de la surcharge des travailleurs. Kanban est également lié à et souvent utilisé avec Lean , un autre concept de fabrication qui peut être appliqué au développement de logiciels .

Thomas Owens
la source
Maintenant que je le comprends, je vois que ce n'est pas vraiment expliqué dans le livre, juste utilisé. J'aime mes livres courts, mais ce paragraphe n'était pas seulement inutile, mais trompeur.
michelpm
@michelpm Je ne possède pas le livre, donc je ne peux pas commenter la validité de ce qu'ils disent, mais je n'ai jamais entendu parler de push and pull utilisé d'une autre manière que celle que j'ai décrite. Peut-être que si vous pouviez modifier votre question pour qu'elle contienne le ou les paragraphes complets qui décrivent le push and pull, je peux affiner davantage cette réponse.
Thomas Owens
Les images associent spécifiquement la cascade à la poussée, ce que je comprends maintenant, c'est que ce n'est pas une règle et n'aide pas vraiment à comprendre les modèles. N'est-ce pas ce que vous avez dit?
michelpm
1
@michelpm C'est vrai que ce n'est pas une règle. Habituellement, les modèles séquentiels sont push et les méthodes agiles ont tendance à être pull, mais ce n'est pas du tout le cas.
Thomas Owens