La diferencia entre un sistema push y otro pull es cómo se asignan las unidades de trabajo a la persona que llevará a cabo esa unidad de trabajo. El concepto de push and pull no es exclusivo del desarrollo de software: la idea se origina en la logística y la gestión de la cadena de suministro .
En un sistema push, se crea algún tipo de tarea y luego se asigna a un desarrollador. Una tarea puede ser cualquier cosa, desde la implementación de un requisito (o un componente necesario para cumplir un requisito) hasta una corrección de errores en un documento para escribir. Alguien, generalmente algún tipo de gerente o líder de equipo, toma las unidades de trabajo que deben hacerse y luego las asigna a los miembros del equipo para completar. Simplemente, el trabajo se aplica a las personas que lo harán.
En un sistema de extracción, las tareas que deben realizarse se almacenan en una cola, a menudo una especie de cola prioritaria. Un ejemplo podría ser el producto de Scrum y los atrasos de sprint, que contienen historias de usuarios que deben hacerse. Un desarrollador que actualmente no está trabajando en nada irá a la cola y sacará la historia de mayor prioridad que pueda hacer y trabajará en ella. Las personas que están haciendo el trabajo sacan el trabajo de una lista y lo hacen.
El concepto de empujar y tirar no está relacionado con el desarrollo iterativo / incremental versus secuencial. Un equipo que usa técnicas iterativas / incrementales / ágiles podría usar un sistema push, mientras que un equipo que usa desarrollo secuencial podría usar un sistema pull. Sin embargo, por lo general, los métodos ágiles (XP, Scrum) favorecen a los equipos autoorganizados y, por lo tanto, a los sistemas de extracción.
Para obtener más información, es posible que le interese esta publicación de blog sobre Push vs. Pull in Scrum . Kanban también podría ser de interés: Kanban es una metodología que proviene de la fabricación, pero se puede aplicar al desarrollo de software , que enfatiza el desarrollo justo a tiempo y reduce la sobrecarga en los trabajadores. Kanban también está relacionado y se usa a menudo con Lean , otro concepto de fabricación que se puede aplicar al desarrollo de software .