Jaka jest różnica w porównaniu z modelami rozwojowymi typu push i pull?

14

Czytałem Extreme Programming Explained, drugie wydanie, aw rozdziale 11 „Theory of Constraints” autorzy mówią o starym i przestarzałym modelu rozwoju „push” i sposobie XP, modelu rozwoju „pull” . Wygląda na dość ważną koncepcję, ale wymaga tylko bardzo małego akapitu i dwóch zdjęć, które są jedynie ilustracjami „wodospadu” i procesu iteracyjnego, nic szczególnego w tych modelach oprócz podpisu obrazu. Szukałem i nie idzie o tym dalej w dalszej części książki. Nie mogłem znaleźć dalszych wyjaśnień ani dyskusji na ten temat w Internecie.

Jeśli jedyną różnicą jest to, że jeden jest „wodospadem”, a drugi jest iteracyjny , to po co pchać i po co ciągnąć?

Czy ktoś rozumie, jaka jest naprawdę różnica między tymi dwoma i podaje dobre przykłady?

michelpm
źródło
1
Continuous vs. Incremental to kolejna koncepcja, która może wprowadzać w błąd. Na przykład XP jest systemem przyrostowego ściągania, podczas gdy Kanban polega na ciągłym ściąganiu (tzn. Bez sprintów w skrzynkach czasowych).
Michael

Odpowiedzi:

16

Różnica między systemem pchającym a ciągnącym polega na tym, w jaki sposób jednostki pracy są przypisane osobie, która będzie wykonywać tę jednostkę pracy. Koncepcja push i pull nie jest unikalna dla rozwoju oprogramowania - pomysł wywodzi się z logistyki i zarządzania łańcuchem dostaw .

W systemie push tworzone jest jakieś zadanie, a następnie przypisywane do programisty. Zadaniem może być cokolwiek, od implementacji wymagania (lub komponentu potrzebnego do realizacji wymagania) po naprawę błędu do dokumentu do napisania. Ktoś, zwykle menedżer lub lider zespołu, bierze jednostki pracy, które należy wykonać, a następnie przydziela je członkom zespołu do wykonania. Po prostu praca jest przenoszona na ludzi, którzy będą to robić.

W systemie ściągania zadania, które należy wykonać, są przechowywane w kolejce, często w rodzaju kolejki priorytetowej. Przykładem może być zaległe produkty Scruma i sprinty, które zawierają historie użytkowników, które należy wykonać. Deweloper, który obecnie nie pracuje nad niczym, pójdzie do kolejki i zdejmie historię o najwyższym priorytecie, którą jest w stanie zrobić i nad nią pracować. Ludzie, którzy wykonują pracę, wyciągają ją z listy i robią to.

Koncepcja push i pull nie jest związana z iteracyjnym / przyrostowym a sekwencyjnym rozwojem. Zespół stosujący techniki iteracyjne / przyrostowe / zwinne może korzystać z systemu wypychania, podczas gdy zespół stosujący programowanie sekwencyjne może używać systemu wypychania. Zazwyczaj jednak metody zwinne (XP, Scrum) faworyzują zespoły samoorganizujące się, a zatem systemy ściągające.

Aby uzyskać więcej informacji, możesz zainteresować się tym postem na blogu na temat Push vs. Pull in Scrum . Kanban może być również interesujący - Kanban to metodologia pochodząca z produkcji, ale może być stosowana do opracowywania oprogramowania , która kładzie nacisk na rozwój na czas i redukuje obciążenie pracowników. Kanban jest również powiązany z Lean , kolejną koncepcją produkcyjną, którą można zastosować do tworzenia oprogramowania .

Thomas Owens
źródło
Teraz, kiedy to rozumiem, widzę, że nie jest to tak naprawdę wyjaśnione w książce, tylko używane. Lubię moje książki, ale ten akapit był nie tylko bezużyteczny, ale mylący.
michelpm
@michelpm Nie jestem właścicielem książki, więc nie mogę komentować prawdziwości tego, co mówią, ale nigdy nie słyszałem o wypychaniu i ciągnięciu w inny sposób niż opisałem. Być może, gdybyś mógł edytować swoje pytanie, tak aby zawierało pełny akapit lub dwa opisujące wypychanie i wyciąganie, mogę bardziej dopracować tę odpowiedź.
Thomas Owens
Obrazy konkretnie związane z wodospadem z wypychaniem, rozumiem teraz, że nie jest to reguła i tak naprawdę nie pomaga zrozumieć modeli. Czy nie tak powiedziałeś?
michelpm
1
@michelpm Zgadza się, że to nie reguła. Zazwyczaj modele sekwencyjne są wypychane, a metody zwinne zwykle są przyciągane, ale wcale tak nie musi być.
Thomas Owens