TL; DR
Are deadlines [a]gile?...[D]eadlines are viewed to go hand in hand with [a]gile development.
È probabile che molte risposte si concentrino sugli aspetti ingegneristici della domanda. Invece, affronterò questo da una prospettiva di gestione del progetto.
Una scadenza implica una grande pianificazione iniziale che non è in linea con principi agili. Invece, i modelli di sviluppo iterativi si basano su tempi, cadenza e cicli di rilascio che includono pianificazione just-in-time, ma non sulla "pianificazione generale" generalmente associata al progetto tradizionale. termini di gestione.
È ancora possibile pianificare la release con metodologie agili, ma i piani sono generalmente basati su una stima del numero di iterazioni richieste per raggiungere un obiettivo piuttosto che su obiettivi di gestione stabiliti da fiat. Ciò non vuol dire che le date di spedizione non possano essere impostate, o che gli obiettivi non possano essere raggiunti, ma il modo che sono definiti e soddisfatti è molto diverso rispetto alle tradizionali metodologie di gestione dei progetti.
Pensa alle caselle di tempo, non alle scadenze
However, every project I have ever been on has insisted on setting a deadline. Given that Agile attempts to focus on adaptive planning, flexibility and change; are deadlines Agile?
Questo è un comune fraintendimento dei principi agili. Strutture agili come Scrum e Kanban non sono focalizzate sulle scadenze, ma piuttosto sul time-boxing e una cadenza di consegna sostenibile.
In Scrum, ad esempio, lo Sprint non è una "scadenza". Si tratta di una finestra temporale che viene riempita con la quantità di lavoro che le stime del team si adatteranno entro il time-box senza sovraccaricarlo, e viene quindi "completata" o "non completata" quando scade il time-box. Una volta andato, il time-box è sparito per sempre; qualsiasi lavoro che non viene svolto deve essere riprogrammato e ri-stimato all'interno di un nuovo time box time altrettanto effimero basato sui bisogni attuali (piuttosto che storici) del progetto.
L'importanza del time-box è che crea sia una cadenza prevedibile per le parti interessate per esaminare i progressi, sia un ritmo sostenibile per il team in cui fornire incrementi di valore potenzialmente trasferibili . Il lavoro è incrementale e segue la cadenza; il concetto di una scadenza grande e anticipata non è quindi in linea con i principi agili.
Pianificazione della pubblicazione in base a intervalli di tempo
Forse l'area in cui le persone hanno maggiori difficoltà a mappare i processi agili ai framework tradizionali è nella pianificazione delle release. La pianificazione dei rilasci spesso implica deliverable con scope fissi o fissi. In framework agili, la pianificazione dei rilasci avviene di solito attraverso un processo di stima dove scope è definito esplicitamente come variabile mutabile, mentre le date di rilascio sono stimate in iterazioni.
Ad esempio, un progetto può essere impegnato a rilasciare v1.0 di un progetto alla fine di 20 iterazioni; l'ambito di ciò che viene rilasciato può cambiare nel corso della vita del progetto (dato che l'ambito, le caratteristiche e le priorità possono cambiare all'inizio di ogni Sprint), ma le date obiettivo per ogni release sono fissate nel piano del progetto. Il team si impegna a fornire un incremento potenzialmente spedibile a ogni Sprint e la definizione di Done include controlli di qualità come l'integrazione continua per garantire che il progetto si trovi in uno stato rilasciabile alla fine di ogni Sprint.
Occasionalmente, vedrai progetti agili in cui l'ambito è fisso, ma poiché lo scope è la variabile mutabile nei progetti agili, la data di rilascio può cambiare nel tempo in quanto l'ambito di ciascuna iterazione si adatta, si modifica o si adatta alle esigenze in evoluzione del progetto. Certamente non consiglio l'approccio a scope fisse ai team agili, in particolare i team inesperti, ma ci sono momenti in cui è l'approccio giusto.
Vedi anche