Qual è la differenza dai modelli di sviluppo push e pull?

11

Stavo leggendo Extreme Programming Explained, Second Edition e nel capitolo 11 "The Theory of Constraints" il gli autori parlano del vecchio e obsoleto modello di sviluppo "push" e del modo XP, il "pull" modello di sviluppo . Sembra un concetto abbastanza importante, ma richiede solo un paragrafo molto piccolo e due immagini che sono semplici illustrazioni della "cascata" e del processo iterativo, niente di specifico su questi modelli, tranne che per la didascalia dell'immagine. Ho cercato e non va oltre nel resto del libro. Neanche io sono riuscito a trovare ulteriori spiegazioni o discussioni a riguardo in Internet.

Se l'unica differenza è data da "cascata" e l'altra è iterativa , perché spingere e perché tirare?

Qualcuno capisce qual è davvero la differenza tra questi due e fornisce alcuni buoni esempi?

    
posta michelpm 18.03.2012 - 19:16
fonte

1 risposta

11

La differenza tra un sistema push e un sistema pull è come le unità di lavoro sono assegnate alla persona che eseguirà quell'unità di lavoro. Il concetto di push and pull non è unico per lo sviluppo del software - l'idea nasce dalla logistica e dalla gestione della supply chain .

In un sistema push, viene creato un qualche tipo di compito e quindi assegnato a uno sviluppatore. Un'attività può essere qualsiasi cosa dall'implementazione di un requisito (o di un componente necessario per realizzare un requisito) a una correzione di bug di un documento da scrivere. Qualcuno, di solito una specie di manager o team leader, prende le unità di lavoro che devono essere fatte e poi le assegna ai membri del team per completare. Semplicemente, il lavoro viene spinto verso le persone che lo faranno.

In un sistema pull, le attività che devono essere eseguite sono archiviate in una coda, spesso una coda di priorità di ordinamento. Un esempio potrebbero essere i backlog di prodotto e di sprint di Scrum, che contengono storie di utenti che devono essere fatte. Uno sviluppatore che al momento non sta lavorando su qualcosa andrà in coda e decollerà la storia con la priorità più alta che è in grado di fare e lavorare su di essa. Le persone che stanno facendo il lavoro estrapolano il lavoro da un elenco e lo fanno.

Il concetto di push e pull non è correlato allo sviluppo iterativo / incrementale rispetto allo sviluppo sequenziale. Un team che utilizza tecniche iterative / incrementali / agili potrebbe utilizzare un sistema push, mentre un team che utilizza lo sviluppo sequenziale potrebbe utilizzare un sistema pull. Tuttavia, in genere, i metodi agili (XP, Scrum) favoriscono i team auto-organizzanti e quindi i sistemi pull.

Per ulteriori informazioni, potresti essere interessato a questo post del blog su Push vs. Pull in Scrum . Kanban potrebbe anche essere di interesse - Kanban è una metodologia che viene dalla produzione, ma può essere applicato allo sviluppo di software , che enfatizza lo sviluppo just-in-time e riduce il sovraccarico sui lavoratori. Kanban è anche correlato e spesso usato con Lean , un altro concetto di produzione che può essere applicato allo sviluppo di software .

    
risposta data 18.03.2012 - 20:56
fonte

Leggi altre domande sui tag