Разница между системой push и pull заключается в том, как единицы работы назначаются человеку, который будет выполнять эту единицу работы. Концепция push и pull не уникальна для разработки программного обеспечения - идея берет свое начало от логистики и управления цепями поставок .
В push-системе создается какая-то задача, которая затем назначается разработчику. Задачей может быть что угодно, от реализации требования (или компонента, необходимого для реализации требования) до исправления ошибки в документе для записи. Кто-то, обычно какой-то менеджер или руководитель группы, берет единицы работы, которые необходимо выполнить, а затем распределяет их среди членов команды для выполнения. Просто работа навязывается людям, которые будут ее выполнять.
В системе извлечения задачи, которые необходимо выполнить, хранятся в очереди, часто в приоритетной очереди. Примером могут служить журналы Scrum по продуктам и спринтам, которые содержат пользовательские истории, которые необходимо выполнить. Разработчик, который в настоящее время ни над чем не работает, пойдет в очередь и снимает историю с наивысшим приоритетом, которую он может сделать, и работает над ней. Люди, которые делают работу, вытягивают работу из списка и делают это.
Концепция push и pull не связана с итеративной / последовательной или последовательной разработкой. Команда, использующая итеративные / инкрементные / гибкие методы, может использовать систему push, в то время как команда, использующая последовательную разработку, может использовать систему pull. Однако, как правило, гибкие методы (XP, Scrum) предпочитают самоорганизующиеся команды и, следовательно, используют системы.
Для получения дополнительной информации, возможно, вас заинтересует этот пост в блоге « Push vs. Pull in Scrum» . Kanban также может быть интересен - Kanban - это методология, которая исходит из производства, но может быть применена к разработке программного обеспечения , которая делает упор на своевременную разработку и снижает перегрузку на работников. Kanban также связан и часто используется с Lean , еще одной производственной концепцией, которая может применяться для разработки программного обеспечения .