Ich habe Extreme Programming Explained, Second Edition gelesen und im Kapitel 11 "The Theory of Constraints" sprechen die Autoren über das alte und veraltete "Push" -Entwicklungsmodell und den XP-Weg, das "Pull" -Entwicklungsmodell . Es scheint ein ziemlich wichtiges Konzept zu sein, aber es werden nur ein sehr kleiner Absatz und zwei Bilder benötigt, die lediglich eine Illustration des "Wasserfalls" und des iterativen Prozesses darstellen. Diese Modelle sind nur durch die Bildunterschrift gekennzeichnet. Ich habe gesucht und es wird im Rest des Buches nicht weiter darauf eingegangen. Ich konnte auch im Internet keine weiteren Erklärungen oder Diskussionen dazu finden.
Wenn der einzige Unterschied darin besteht, dass einer "Wasserfall" und der andere iterativ ist , warum drücken und warum ziehen?
Versteht jemand den Unterschied zwischen diesen beiden und gibt er einige gute Beispiele?
Antworten:
Der Unterschied zwischen einem Push- und einem Pull-System besteht darin, wie die Arbeitseinheiten der Person zugewiesen werden, die diese Arbeitseinheit ausführen wird. Das Konzept von Push und Pull ist nicht nur in der Softwareentwicklung zu finden - die Idee stammt aus der Logistik und dem Supply Chain Management .
In einem Push-System wird eine Aufgabe erstellt und dann einem Entwickler zugewiesen. Eine Aufgabe kann von der Implementierung einer Anforderung (oder einer Komponente, die zur Realisierung einer Anforderung erforderlich ist) bis zur Behebung eines Fehlers in einem zu schreibenden Dokument reichen. Jemand, normalerweise eine Art Manager oder Teamleiter, nimmt die zu erledigenden Arbeitseinheiten und teilt sie dann den Mitgliedern des Teams zu, um sie zu vervollständigen. Die Arbeit wird einfach auf die Leute übertragen, die es tun werden.
In einem Pull-System werden die zu erledigenden Aufgaben in einer Warteschlange gespeichert, häufig einer Art Prioritätswarteschlange. Ein Beispiel könnten die Produkt- und Sprint-Backlogs von Scrum sein, die User Stories enthalten, die durchgeführt werden müssen. Ein Entwickler, der derzeit an nichts arbeitet, wird in die Warteschlange gestellt und nimmt die Story mit der höchsten Priorität auf, die er ausführen und bearbeiten kann. Die Leute, die die Arbeit machen, ziehen die Arbeit aus einer Liste und machen sie.
Das Konzept von Push und Pull hat nichts mit iterativer / inkrementeller versus sequentieller Entwicklung zu tun. Ein Team, das iterative / inkrementelle / agile Techniken einsetzt, könnte ein Push-System verwenden, während ein Team, das sequentielle Entwicklung einsetzt, ein Pull-System verwenden könnte. Typischerweise bevorzugen die agilen Methoden (XP, Scrum) selbstorganisierende Teams und ziehen daher Systeme heran.
Für weitere Informationen könnte Sie dieser Blog-Beitrag über Push vs. Pull in Scrum interessieren . Kanban könnte auch von Interesse sein - Kanban ist eine Methodik, die aus der Fertigung stammt, aber auf die Softwareentwicklung angewendet werden kann , bei der Just-in-Time-Entwicklung und Reduzierung der Überlastung der Mitarbeiter im Vordergrund stehen. Kanban ist auch mit Lean verwandt und wird häufig dort verwendet , einem anderen Fertigungskonzept, das für die Softwareentwicklung verwendet werden kann .
quelle