La mia azienda sta andando a gonfie vele con il processo agile, con diversi progetti agili al lavoro. Il primo team agile, il proof of concept, ha portato il prodotto attraverso la release e il primo rilascio post-produzione.
Dopo questo sforzo di successo, il team è stato rapidamente sciolto, espulso per aiutare altri progetti sulla loro strada agile. La mia disillusione con l'agilità deriva dalla terza e successiva fase di rilascio del ciclo di vita del software.
Agile è bravo a tirar fuori il momento dell'esperto e della costruzione, entusiasmandosi per un progetto, ma come si fa a rallentare un progetto e spostarlo in una fase in cui i clienti esistenti devono essere soddisfatti, per continuare a pagare per tutto questo divertimento agile? Se lo farai, la festa è finita, e questa documentazione sulla luce, non la progetta fino a quando non ne hai bisogno, e continua a correre fino allo sprint successivo lascia poca documentazione, poca visione e scarse informazioni sul perché siano state prese decisioni di progettazione. Questo stadio della vita ha anche scarso interesse per gli sviluppatori agili iniziali, dato che sono fatti con quel progetto e sono alla ricerca di nuovi entusiasmanti team da avviare.
Capisco e ho vissuto la cascata dei problemi con la pianificazione a lungo termine, i programmi mancati ei requisiti non aggiornati, ma per una parte che era utilizzabile e accettata dal cliente, ci sono informazioni e conoscenza distribuita del perché le decisioni sono state prese, quali misure sono state prese e qualcosa di più sostenibile alla fine.
In sostanza, che cosa deve fare un team agile, cosa deve fare, cosa deve essere consegnabile, per un progetto agile avere successo, definendo il successo come un prodotto sostenibile, manutenibile e, auspicabilmente, generativo di entrate?
Se il software agile che costruiamo non può essere mantenuto, in un paio di anni agile sarà solo un'altra promessa non mantenuta, che i responsabili aziendali non pagheranno, consentendo loro di tornare al vecchio processo a cascata gestibile da microprogetti.