Qual è la differenza rispetto ai modelli di sviluppo push and pull?


14

Stavo leggendo Extreme Programming Explained, Second Edition e nel capitolo 11 "La teoria dei vincoli" gli autori parlano del vecchio e obsoleto modello di sviluppo "push" e del modo XP, il modello di sviluppo "pull" . 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, nulla di specifico su questi modelli se non per la didascalia dell'immagine. Ho cercato e non va oltre nel resto del libro. Non ho potuto trovare ulteriori spiegazioni o discussioni al riguardo su Internet.

Se l'unica differenza tra queste è che una è "a cascata" e l'altra è iterativa , allora perché spingere e perché tirare?

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



1
Continuo vs. incrementale è un altro concetto di base che potrebbe confondere le cose. Ad esempio, XP è un sistema di pull incrementale mentre Kanban si basa sul pull continuo (ovvero senza sprint con time box).
Michael,

Risposte:


15

La differenza tra un sistema push e pull è il modo in cui le unità di lavoro sono assegnate alla persona che eseguirà tale 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 catena di fornitura .

In un sistema push, viene creato un tipo di attività e quindi assegnato a uno sviluppatore. Un'attività potrebbe essere qualsiasi cosa, dall'implementazione di un requisito (o un componente necessario per realizzare un requisito) a una correzione di bug a un documento da scrivere. Qualcuno, di solito una sorta di manager o caposquadra, prende le unità di lavoro che devono essere fatte e poi le assegna ai membri della squadra per il completamento. Semplicemente, il lavoro viene spinto sulle persone che lo faranno.

In un sistema pull, le attività che devono essere eseguite sono archiviate in una coda, spesso una sorta di coda prioritaria. Un esempio potrebbe essere il prodotto Scrum e gli arretrati di sprint, che contengono storie utente che devono essere fatte. Uno sviluppatore che attualmente non sta lavorando a nulla andrà in coda e decollerà la storia con la massima priorità che sono in grado di fare e lavorarci. Le persone che stanno facendo il lavoro estraggono il lavoro da un elenco e lo fanno.

Il concetto di push and pull non è correlato allo sviluppo iterativo / incrementale rispetto a quello 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 tirano i sistemi.

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


Ora che lo capisco, vedo che non è davvero spiegato nel libro, appena usato. Mi piacciono i miei libri brevi, ma quel paragrafo non era solo inutile, ma fuorviante.
michelpm,

@michelpm Non possiedo il libro, quindi non posso commentare la validità di quello che stanno dicendo, ma non ho mai sentito parlare di push and pull usato in nessun altro modo come ho descritto. Forse se potessi modificare la tua domanda per contenere l'intero paragrafo o due che descrivono push and pull, posso perfezionare ulteriormente questa risposta.
Thomas Owens

Le immagini specificamente associate a cascata con push, quello che capisco ora è che non è una regola e non aiuta davvero a capire i modelli. Non è quello che hai detto?
michelpm,

1
@michelpm Esatto, non è una regola. Di solito, i modelli sequenziali sono push e i metodi agili tendono ad essere pull, ma non deve essere affatto così.
Thomas Owens
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.