Molti libri e articoli Scrum affermano che uno sprint fallito (quando il team non riesce a completare alcune funzionalità dallo Sprint Backlog) non è qualcosa di così brutto, succede di tanto in tanto e può effettivamente essere utile se il team impara dai propri errori e migliora qualcosa nei seguenti sprint. E la squadra non dovrebbe essere punita per non aver completato il lavoro a cui si è impegnata.
Il modo in cui "punisci" questo tipo di comportamento è limitando la quantità di lavoro che chi non ha terminato può affrontare al prossimo sprint. Le possibilità di lavorare su cose interessanti stanno svanendo. La ricompensa per fare un buon lavoro è più lavoro.
Questo sembra fantastico dal punto di vista dello sviluppatore, tuttavia, supponiamo di avere una società di software "Scrum-Addicts LLC" che sta sviluppando qualcosa per clienti seri ("Money-Bags Corporation"):
I gestori di Scrum-Addicts suggeriscono di creare un software per Money-Bags Sono d'accordo su un elenco di funzionalità e Money-Bags chiede di fornire una data di spedizione I manager di Scrum-Addicts consultano il loro team di Scrum e il team dice che ci vorranno 3 settimane -lungo sprint per completare tutte le funzionalità Scrum-Addicts manager aggiunge 1 settimana per sicurezza, promette di spedire il software in 1 mese e firma un contratto con Money-Bags Dopo 4 sprint (termine di spedizione) il team Scrum può consegnare solo l'80% di funzionalità (a causa dell'inesperienza con il nuovo sistema, della necessità di correggere bug critici nelle funzionalità precedenti nell'ambiente di produzione, ecc ...) Come Scrum suggerisce, a questo punto, il prodotto è potenzialmente spedibile, ma Money-Bags ha bisogno del 100% di funzionalità, come indicato nel contratto. Quindi rompono il contratto e non pagano nulla.
Scrum-Addicts è sull'orlo del fallimento perché non ha ricevuto denaro da Money-Bags e gli investitori sono rimasti delusi dai risultati e non sono più disposti ad aiutare la società.
Se lunedì ti scommetto $ 100 che pioverà giovedì e non pioverà fino a venerdì avresti ragione di prendere i miei soldi. Se, piuttosto che la possibilità di giocare d'azzardo, quello che vuoi è una previsione meteorologica, allora abbiamo bisogno di un contratto che mi permetta di darti una previsione aggiornata martedì.
Ovviamente, nessuna società di software vuole essere nei panni di Scrum-Addicts. Quello che non capisco di Agile e Scrum è come suggeriscono ai team di gestire la pianificazione e le scadenze per evitare la situazione sopra descritta.
Pensa al perché MB vuole prendere la palla e tornare a casa. MB non ha richiesto che il lavoro venisse svolto all'inizio di un mese. SA ha promesso il 100% delle funzionalità critiche in un mese e non ha fornito. SA imposta la scadenza non MB. SA ha persino aggiunto arbitrariamente una settimana alla scadenza. Quindi perché è una scadenza?
Occasionalmente, quando competono per lavoro, le aziende di software cedono alla tentazione di mettersi in mostra e promettere la luna. I professionisti stabiliscono attentamente se è necessaria anche una luna. Qual è il bisogno più critico per MoneyBags? Il 100% delle funzionalità o un prodotto funzionante in un mese? Sanno persino cosa è veramente critico? C'è qualche evento imminente che fissa una scadenza dura?
Se fossi Scrum-tossicodipendenti a negoziare questo contratto, vorrei sapere molto di più sulle esigenze aziendali di Money-Bags e strutturare il contratto per garantire la massima flessibilità di Money-Bags. Insegnerei loro come funziona il processo agile in modo che sappiano cosa aspettarsi da noi.
In questo modo, invece di aspettarsi che tutto funzioni all'improvviso perfettamente entro un mese, si aspetterebbero di valutare il primo risultato disponibile in 1-2 settimane.
Quindi, per riassumere, ho 2 domande:
Di chi è la colpa? Manager, perché è il loro lavoro fare la corretta pianificazione
Il team, perché si sono impegnati a fare più lavoro di quanto potrebbero fare
qualcun altro
Chiunque avrebbe potuto fermare questa parodia prima che avessimo un mese lungo la strada.
Potrei arrivare a incolpare Money-Bags Corp per l'assunzione di una squadra che ovviamente ha rappresentato fraudolentemente un processo a cascata come agile. Il contratto stesso chiarisce che non è agile. Pianificare di essere fatto in un mese non lo rende agile.
Se insisti che sia agile, è agile con un solo sprint che dura un mese. Il che, sì, non lo consiglierei perché è, ancora una volta, la stessa cosa di Cascata.
Che cosa si deve fare?
Che ne dici di agile? Offri qualcosa ogni sprint? Ricevi feedback prima della scadenza? Scatti settimanali? Che ne dici di rinegoziare il contratto draconiano nel momento stesso in cui sospetti che la scadenza sia in pericolo piuttosto che nascondersi e pregare? Per lo meno puoi smettere di perdere tempo in un progetto condannato e trovare un cliente più ragionevole.
I gestori devono spostare la scadenza 2 volte (o 3 volte) più tardi rispetto alla stima del team originale.
I moltiplicatori di scadenza sono utili quanto impostare l'orologio con 15 minuti di anticipo, quindi non sarai mai in ritardo. Puoi solo ingannarti così a lungo prima di capire cosa stai facendo.
Le prime stime sono sbagliate. Prova a catturare quanto sbagliato. 5 settimane, dare o prendere alcune settimane è un'espressione semplice che ti consente di esprimere quanto sia incerta la data di completamento. Invece di provare a indovinare con precisione, indovina quanto è selvaggia la tua ipotesi. Fai un vero lavoro e ottieni alcuni dati reali. Quindi puoi iniziare a fare stime con un intervallo più ristretto. Una o due settimane sono un sacco di tempo per farlo.
I membri del team dovrebbero essere incoraggiati a fare tutto il lavoro che hanno commesso, indipendentemente dal fatto (emettendo penalità per sprint falliti)
I membri del team dovrebbero essere incoraggiati. Fallito, commesso o altrimenti. Invece di costruire conseguenze artificiali come punizioni o persino bonus (carote e bastoncini), gli studi hanno dimostrato che le persone che svolgono un lavoro creativo come la programmazione rispondono meglio se fornite tre cose: Autonomia, Maestria e Scopo.
Daniel Pink ne parla TED . Il discorso parla di motivazione non agile ma ho visto facilmente come mappare questi punti su agile:
Autonomia - Voglio dirigere la mia vita - Fammi scegliere il lavoro dal backlog.
Maestria: voglio migliorare in qualcosa che conta: feedback dei clienti.
Scopo - Voglio far parte di qualcosa di più grande di me - Una squadra collaborativa.
Il team dovrebbe abbandonare Scrum perché non corrisponde alla politica sulle scadenze dell'azienda. Scrum può rispettare una scadenza in modo più preciso rispetto a cascata. Data una scadenza, la mischia può soddisfarla. Potrebbe soddisfarlo con solo 1 delle 47 funzionalità a seconda del tempo, della funzionalità e dell'abilità, ma può soddisfarla.
Un progetto agile può essere disegnato in modo così estremo che ogni sera quando la squadra torna a casa è pronta per essere spedita. Questo sembra sciocco a meno che tu non pensi alla spedizione come a chiedere al cliente di testare e fornire feedback. Prima si verifica, prima è possibile apportare modifiche. Questo colpisce ogni possibile scadenza. Solo non tutte le funzionalità. Ma ti guida alle funzionalità che contano.
Dovremmo abbandonare tutti lo sviluppo del software e unirci a un monastero
Giusto, come rinchiudermi in una stanza lontana dalla vita reale mi farà scrivere MENO codice.
Ho modificato questa risposta fino alle dimensioni. Se sei curioso leggi la cronologia delle modifiche.