Quando Agile va storto [chiuso]


24

Sto scrivendo un corso Agile per alcuni dei nuovi ragazzi a cui stiamo partecipando di recente e voglio aggiungere una storia di avvertimento in modo che capiscano che Agile non è pensata per tutti i progetti.

Il mio problema è che, a causa della natura dei progetti in cui lavoro con Agile finora ha funzionato abbastanza bene, non posso onestamente indicare cosa può andare storto e perché quando lo usi nel tipo sbagliato di progetto.

Quali sono le cose da cercare quando un progetto Agile va storto?


18
La maggior parte delle storie dell'orrore che ho sentito parlare di agilità riguardavano più le persone coinvolte che il tipo di progetto a cui stavano lavorando.
Matthieu,

1
Vedo alcune domande che indicano le insidie ​​di Agile nella sezione "Correlate" a destra ------------------->
CFL_Jeff

1
Ho rivisto la domanda per non invitare il tempo della storia e invece chiedere singoli fatti concreti su dove Agile vada storto.
maple_shaft

3
Approccio @Oded Cosa fa il lavoro bene quando ci sono "scadenze difficile senza dare sulla funzionalità"?
irrazionale John

6
@irrationalJohn - La marcia della morte, ovviamente;)
Oded

Risposte:


47

Il più grande fallimento con i team "Agili" è il risultato di ciò che viene chiamato Cargo Culting . In sostanza, i team vogliono gli effetti di team agili di successo in modo da imitare le azioni visibili

  • Standup giornalieri (che durano circa un'ora)
  • Rompere il lavoro in sprint
  • User story (che di solito sono poco più di una frase ma è prevista una stima)

Questi sono i tre che vedrai costantemente "applicati" in questi ambienti, ma con pochissimo impegno a essere realmente agili. In effetti sentirai dire al management che "stiamo agendo". (Scappa a quelle due parole è un brutto segno.)

Sentirai anche molto parlare del debito tecnico, ma la loro definizione di debito tecnico è "fallo in modo rapido e sporco e forse potremo fare in modo di migliorarlo in seguito". (Traduzione: faremo sembrare che ci occupiamo della manutenibilità, ma in realtà manterremo la stessa mentalità del locale caldaie perché è quello che ha funzionato per noi in passato).

Altre frasi chiave: "So che queste storie non sono completamente definite ma stiamo agendo in modo da poterle sistemare mentre andiamo".

"Stiamo facendo uno sviluppo agile, quindi dovresti essere in grado di soddisfare ciò di cui ho bisogno durante lo sprint mentre lo identifico."

"Non siamo in grado di bloccare le nostre storie impegnate all'inizio dello sprint perché i bisogni continuano a cambiare a metà sprint".

L'indicatore chiave sul successo di un progetto Agile è se il responsabile del progetto (scrum master o qualunque ruolo) abbia avuto esperienza o formazione formale sulla conduzione di un progetto agile. Troppo spesso ho visto le persone leggere di Agile in un libro o frequentare un corso di due giorni per diventare un maestro della mischia e pensare di avere le braciole per implementarlo con successo. Mi dispiace non sta succedendo capitano.


4
Non concordo pienamente sull'indicatore chiave del successo. Direi che l'indicatore chiave è il reale impegno da parte sia della direzione che degli sviluppatori, e almeno una comprensione di base e l'accettazione delle regole Agile da parte dei clienti. Anche la migliore formazione Agile al mondo non può farti andare lontano se la gestione si comporta come descritto sopra. OTOH con sufficiente determinazione ed entusiasmo, si può imparare Agile anche da un libro e applicarlo con successo in un progetto attraverso un perfezionamento successivo - se la direzione lo supporta sul serio.
Péter Török,

Solo a parte, puoi spiegare cosa significa "mentalità del locale caldaie"? L'ho già sentito prima, non ho mai sentito una spiegazione.
Kevin McCormick,

2
un "ambiente del locale caldaie" è un'area ad alta pressione, riparabile ora con qualsiasi mezzo, in cui le condizioni di lavoro sono sempre spiacevoli. La mentalità del locale caldaia perpetua questo tipo di situazione.
Hellion,

1
"... il responsabile del progetto (scrum master) ...": Di recente ho ascoltato un discorso di Bob Martin sostenendo che all'inizio il responsabile della mischia non doveva essere un responsabile del progetto: era un ruolo da ruotare tra i membri del team (sviluppatori coinvolti nel progetto, non i manager) e avrebbero dovuto verificare solo che alcuni principi agili fossero applicati durante lo sprint.
Giorgio,

21

Le persone che non capivano cosa fosse (era?) Agile e lo applicavano a:

  • clienti che non sono disponibili per un commento fino alla scadenza
    ... e che minacciano azioni legali in seguito;

  • manager che tengono gli sviluppatori lontani dal client , (probabilmente perché sono leggermente sottopagati e potrebbero saltare le navi, andare a lavorare per detto cliente) e giocare a un " telefono rotto " in un tentativo disperato (spesso di successo, però) guardare occupato e utile,

    Vedi anche: gestione dei funghi , noto anche come "tenuto oscuro, nutrito con letame" e boss dai capelli a punta . :)

  • squadre troppo grandi per andare ovunque;

  • le aziende che stanno conservando il loro libro paga progettisti di architettura di sistema un tempo rinomati che stanno disperatamente distogliendo l'attenzione dal fatto che hanno completamente perso di vista il vero mestiere di programmazione, sovrastampando famiglie di sagrada UML magnifiche, non pratiche, difficili da realizzare .


2
Wow, sussurri cinesi, davvero? Sembra hella razzista.
Mark Canlas,

12
Non sono d'accordo con la tua indignazione ipocrita sul razzismo. Vai a dire al razzista la voce di Wikipedia sull'argomento e il suo riferimento al dizionario di Oxford edizione 2008.
ZJR,

3
@Canlas Sembri ciao nordamericano.
ZJR,

3
Cosa diavolo playing a game of "telephone"significa? Davvero non credo che la modifica fosse in alcun modo necessaria ...
Cocowalla

6
Il vero nome del gioco è "Broken Telephone" (già modificato) e poiché ZJR sottolinea che non è una frase razzista, ho effettivamente collegato l'articolo di Wikipedia a "Broken Telephone" e indovinate un po '? reindirizza a "Chinese Whispers" =)
Chepech

12

Agile non è adatto per contratti a tempo determinato o a prezzo fisso. Una volta che ti sei registrato per una tale bestia, devi consegnare. Agile è bravissima a continuare lo sviluppo per sempre, poiché i clienti cambiano idea e "chiariscono" le loro esigenze. Questo non ti aiuta il giorno in cui il denaro si esaurisce, ma deve ancora finire il lavoro.

Agile è molto buono per la fase post-progetto quando si eseguono aggiornamenti incrementali e correzioni di bug.

L'altro aspetto in cui Agile fallisce non è colpa di Agile, è colpa di persone che insistono su tutte le cose vecchie come la documentazione completa del progetto, i progetti iniziali e le cattive linee di comunicazione. (Il manifesto agile a metà corsa ).


Tienilo. Pensi davvero che la maggior parte dei progetti Agile siano destinati a continuare "per sempre"?
user16764,

1
dipende dal progetto, alcuni come a tempo indeterminato e continuano mentre ci sono nuovi requisiti da includere. Ma i progetti più agili non sono destinati a finire e spedire in un determinato giorno. Pensavo in particolare ai contratti del governo che hanno fissato traguardi da raggiungere.
gbjbaanb,

Formalmente, un progetto non è mai a tempo indeterminato; l'unica caratteristica chiave che definisce un progetto è che ha una (inizio e) data di fine. Sono prodotti e servizi che mantieni a lungo termine.
Donal Fellows

1
"cattive linee di comunicazione": per quanto ne so, una buona comunicazione non è stata scoperta da agili e le metodologie agili possono fare molto poco con i team disfunzionali che non sono in grado di comunicare.
Giorgio,

10

Ecco alcune domande che potrebbero essere utili per cercare una risposta in termini di ricerca di un esempio in cui un tentativo di Agile può andare male:

Hai mai sentito parlare di "pseudo Agile"? Ecco un paio di post di blog a riguardo:

C'è qualcosa da dire per le aziende che possono prendere le loro opinioni su ciò che è Agile e trasformarlo in qualcos'altro.


9

Ho lavorato in un team Agile di grande successo, nonché in alcuni che hanno tentato Agile, ma non sono riuscito a farlo funzionare.

Quello di successo aveva i seguenti elementi:

  • Requisiti veramente "agili". C'erano storie di utenti e ne abbiamo codificato.
  • Proprietario del prodotto disponibile. Se una user story da cui stavo codificando era incompleta, potrei facilmente andare dal proprietario del prodotto, chiedergli cosa dovrebbe essere lì, aggiungerlo e completare il codice.
  • Impegno nel processo e consapevolezza che si trattava di una curva di apprendimento.
  • Squadra focalizzata.
  • Manager che conoscevano e capivano il modo agile di fare le cose che si erano impegnati a farlo funzionare.

Il team di successo ha fatto Agile e lo ha fatto davvero bene. Penserei che se non si dispone di nessuno di questi punti sopra, si potrebbe fallire abbastanza facilmente. La prima e la seconda cosa vanno di pari passo, e se non ce l'hai, Agile non funzionerà.

La squadra in cui facevo parte che non faceva bene ad Agile aveva anche alcuni elementi:

  • Mancanza di impegno da parte della direzione. Il management non credeva nella filosofia ed era esitante a impegnarsi di conseguenza.
  • Requisiti documentati in luoghi diversi dalle storie degli utenti. Vedi sopra sull'impegno della direzione. Inoltre, avevamo analisti di requisiti altamente pagati e strumenti di requisiti molto costosi di cui qualcuno aveva bisogno per giustificare l'uso.

Praticamente riflette la mia esperienza con Agile, +1. O tutto il team (compresi i rappresentanti e la gestione aziendale) si impegna a fare Agile e funziona bene, oppure sono solo alcuni sviluppatori che vogliono farlo ed è un caso di crash-and-burn.
Amos M. Carpenter,

7

Aggiungerò alle grandi risposte già pubblicate che, per la mia esperienza, Agile e in particolare Scrum funzionerà solo se la direzione E il team sono disposti a dare molta visibilità a ciò che sta succedendo.

Ciò significa che nelle aziende pubbliche (ad esempio i governi), sarà molto difficile farlo funzionare correttamente.


6

Non lo so per esperienza personale, ma ipoteticamente, ci sono molte circostanze in cui l'agile non è l'opzione migliore.

  • Progetti il ​​cui prodotto è critico per la vita o la proprietà - Ad esempio, non si desidera utilizzare l'agile per sviluppare il software che esegue il pacemaker. Perché? Perché hai tolleranza quasi zero per gli errori. Considera un classico esempio di errore di programmazione in medicina per quanto riguarda Therac 25 . Certo, non è stato costruito con agilità, ma il punto è questo: lo sviluppo della vita o della proprietà critica non è un luogo in cui dire "lo ripuliremo al prossimo sprint" o "non abbiamo bisogno di grandi cose, solo bene abbastanza."

  • Progetti con troppi sviluppatori junior: Agile prevede una certa autonomia all'interno del gruppo partecipante. Se non c'è abbastanza esperienza nella squadra, quell'autonomia può lavorare contro di te.

  • Progetti che richiedono un livello più elevato di controllo o pianificazione rispetto a quanto offerto tradizionalmente con Agile.

Suppongo che qualcun altro salterà dentro e ci darà una mano con esempi migliori, o declasserà questo pezzetto di trippa che ho scritto ;-).

Ricorda solo che quando l'unico strumento che hai è un martello, ogni problema sembra un chiodo. Non tutti i progetti sono unghie.


5
Agile non preclude i sistemi critici per la vita. Se un articolo non è completamente testato e accettato dal cliente, non viene "fatto" e non viene rilasciato, indipendentemente dallo sprint. È possibile che altri elementi (requisiti, storie) siano stati completati e testati correttamente durante lo sprint, quindi POSSONO essere rilasciati, se i clienti lo desiderano. Agile mira sempre a fornire esattamente ciò di cui il cliente ha bisogno, con alta qualità.
Matthew Flynn,

5

Agile secondo me è tutto incentrato sulla cultura della squadra che si sta esercitando. Se la cultura fa schifo, i membri del team non vanno d'accordo e le persone non collaborano per rispettare gli impegni di sprint, la cultura o il team sono carenti.

Non direi necessariamente che Waterfall funzionerà necessariamente in un ambiente simile, non è una situazione in bianco e nero, molto poco è veramente in bianco e nero.

Una buona squadra Agile è in comune. Hanno uno spirito tribale di comunità in cui tutti i membri stanno lavorando per raggiungere gli stessi obiettivi. La squadra ha successo o fallisce insieme. Lavorano insieme per risolvere i problemi. Un membro del team interromperà ciò che sta facendo con i suoi compiti per aiutare un membro del team in difficoltà. Tutto è affondare o nuotare.

Quando questo non è il caso, diventa subito chiaro cosa non va. Se i membri del team sono seduti, scrivono sui loro laptop o mandano messaggi o si mettono in pausa durante lo standup quotidiano, allora non hai una buona squadra Agile. Se i project manager stanno applicando tutte le procedure, le definizioni e le terminologie di Scrum, ma tutti stanno solo mantenendo la cadenza e pagando il servizio labiale, allora questa è solo una palese farsa di ciò che è veramente Agile, e questo in molti modi porta a disfunzione del team, inefficienza , scadenze mancate e progetti falliti.

Fallire Agile è per molti versi peggiore di un team di Waterfall di moderato successo e probabilmente ha percentuali di successo del progetto più basse.


Sono d'accordo, ma considero, ad esempio, un progetto in cui i proprietari dei prodotti non sono disponibili praticamente sempre e c'è una scadenza fissa predefinita sul progetto perché è fondamentale dimostrarlo su una convenzione (o altro) e il tuo team è composto da un coppia di anziani che radunano un branco di giovani. Quindi, sì, non esiste il bianco e nero, ma ci sono alcune caratteristiche fondamentali che un progetto deve avere per funzionare bene con Agile che non ha a che fare con l'atteggiamento delle persone, giusto?
Chepech,
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.