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 .