Esplorare la pianificazione continua

Completato

La pianificazione continua è una delle otto funzionalità DevOps.

Perché la pianificazione continua è necessaria

Si esamini un case study relativo a un'applicazione software sviluppata da un ente governativo tra il 2000 e il 2005. La fine del progetto non era nemmeno prossima quando venne ufficialmente abbandonato a gennaio 2005 perché era diventato un fiasco completo. Oltre allo spreco di almeno 100 milioni di dollari USA, l'errore generò vaste critiche all'agenzia e al suo direttore.

Un secondo progetto venne avviato nel 2006, con simili risultati disastrosi. I due progetti impiegarono un approccio Big Design Up Front e la metodologia di sviluppo Waterfall, con un classico evento di go-live Big Bang pianificato. Finirono con un niente di fatto e una spesa di centinaia di milioni di dollari.

Diagram shows the government agency project timeline.

Perché questi tentativi non sono riusciti?

  • Big design up front: un team di 200 persone ha impiegato sei mesi per creare i requisiti.
  • Cambio di priorità: a un certo punto del progetto si è verificato un disastro nazionale che ha causato una modifica massiccia dell'ambito, oltre a coinvolgere un altro team di 300 persone per sei mesi, il che ha prodotto 600 pagine di requisiti.
  • Spreco di lavoro e rielaborazione hanno causato il mancato rispetto delle scadenze e all'esaurimento delle energie del team, ossia alla scrittura e riscrittura di 700.000 righe di codice.

Nel dicembre 2010 è stato configurato e collocato uno studio Scrum. Il personale è passato da 400 persone dei progetti originali a 40. La progettazione è passata da 600 pagine di requisiti a 670 storie degli utenti. Il team ha inviato il codice e ha dimostrato nuove funzionalità ogni due settimane. Dopo alcuni sprint, è stato possibile prevedere una sequenza temporale di massima e pianificare modifiche aziendali incrementali. Il codice è stato completato entro dicembre 2011.

Ma perché è difficile pianificare bene in modo dettagliato?

Alan Turing durante la Seconda guerra mondiale ha sviluppato un computer per decifrare il dispositivo di crittografia noto come Enigma.

Turing ha dovuto decifrare costantemente nuovi codici per salvare vite. Invece di rinunciare a causa della complessità apparentemente infinita, Turing sapeva che avrebbe dovuto decifrare solo piccoli dettagli per rivelare risultati più grandi:

"Riusciamo a vedere solo un breve tratto davanti a noi, ma lì vediamo che c'è molto da fare".

I progetti software ambiziosi sono sempre complessi. Ma non bisogna lasciarsi sopraffare dalla complessità. Invece, bisogna intervenire laddove vi sia chiarezza: nel breve termine.

Pianificare in modo continuo ed efficace con una direzione chiara, focus e agilità, basandosi sugli OKR (Objectives and Key Results, obiettivi e risultati chiave)

Prima di definire la pianificazione continua, è necessario introdurre un concetto e un framework importanti che aiutano a pianificare in modo continuo ed efficace con una direzione chiara, focus e agilità.

OKR (Objectives and Key Results, obiettivi e risultati chiave) è un framework di definizione degli obiettivi progettato per collegare gli obiettivi strategici definiti dalla leadership alle attività quotidiane dei team di esecuzione.

Importante

Gli OKR aiutano a individuare il risultato migliore possibile e a creare chiarezza sul vero successo.

Gli OKR vengono in genere definiti su base trimestrale per focus e agilità chiari.

L'obiettivo è la direzione e il risultato chiave deve essere misurabile. Alla fine, è possibile esaminare e senza discussioni stabilire: l'obiettivo è stato raggiunto o no? Sì? No? Semplice. Senza alcun giudizio.

Gli OKR sono localizzati in tutti i team a tutti i livelli dell'organizzazione per dimostrare allineamento e trasparenza.

Che cosa sono gli OKR?

Esistono tre aspetti fondamentali degli OKR:

  • Costituiscono un framework per la definizione di obiettivi chiari, perché fanno chiarezza sulla finalità e sulla direzione a tutti i livelli dell'organizzazione.

  • Sono rinforzati con risultati chiave misurabili. I risultati chiave sono i risultati in base ai quali viene misurata la riuscita.

  • Promuovono una cultura orientata ai risultati, che consente un passaggio chiaro da una mentalità orientata all'output a una mentalità orientata al risultato.

Esempio di OKR

Ecco un esempio di OKR:

Obiettivo: portare un astronauta sulla luna entro il 1970.

Risultati chiave:

  1. Creare una navicella spaziale di peso inferiore alle 18 tonnellate entro il 1965.
  2. Eseguire il training degli astronauti per l'atterraggio sulla luna entro il 1967.
  3. Far arrivare correttamente la navicella spaziale sulla luna.
  4. Riportare gli astronauti alla terra in tutta sicurezza.

Questo esempio di OKR identifica l'obiettivo di portare un astronauta sulla luna entro il 1970.

Nota

Gli obiettivi devono essere facili da comprendere, definire una direzione chiara e fornire la motivazione.

In questo esempio, i risultati chiave sono le misure dell'avanzamento che misurano il successo dell'obiettivo.

Nota

I risultati principali devono essere misurabili e identificare come raggiungere l'obiettivo.

Vantaggi principali degli OKR

Gli OKR offrono cinque vantaggi principali:

  • Focus: ogni obiettivo deve rientrare in una sola riga. Per quanto riguarda i risultati chiave, è necessario non definirne più di cinque per ogni obiettivo.
  • Allineamento: sia i manager che i collaboratori collegano le proprie attività quotidiane alla visione generale dell'organizzazione. Il termine per questo collegamento è allineamento e il suo valore non sarà mai sottolineato abbastanza.
  • Impegno: i piani e le risorse verranno adattati per garantire che tutti gli impegni concordati vengano rispettati.
  • Il rilevamento degli OKR dall'output al risultato è il motivo per cui la gestione per obiettivi è così popolare tra le aziende di alto livello. Ogni OKR deve poter essere rilevato tramite le metriche definite al momento della loro scrittura.
  • Estensione: gli OKR spingono intrinsecamente le organizzazioni a migliorarsi sempre di più, in modo da ottenere più di quanto ritenevano possibile.

Confrontare la pianificazione continua e statica

La pianificazione continua è una procedura che richiede a responsabili della pianificazione, architetti e team agili di integrare i propri piani nell'azienda su base costante.

Nella pianificazione continua, i metodi di pianificazione e i progetti emergenti basati su Scrum consentono ai team di affinare la pianificazione nel livello di esecuzione.

È importante disporre di un piano di alto livello resiliente alla modifica, ma guidato da una visione e uno scopo chiari.

Il triangolo di ferro dei vantaggi e degli svantaggi della metodologia di sviluppo Waterfall rispetto a quella Agile illustra il confronto tra la pianificazione continua e quella statica.

Nella metodologia statica, la pianificazione dell'ambito è fissa. Si stabilisce il tempo necessario per il progetto e il suo costo.

Nella metodologia Agile, che usa i principi della pianificazione continua, il tempo per raggiungere gli obiettivi aziendali è fisso. L'unico elemento negoziabile è l'ambito.

Diagram shows the iron triangle of tradeoffs for Waterfall vs. Agile development methodologies.

Il triangolo di ferro in genere mostra tempo, risorse e funzionalità. Gartner ha aggiunto la qualità a questa rappresentazione perché la durata e i costi sono correlati e la qualità spesso si perde.

E se si analizza il successo delle due pratiche?

Diagram shows a comparison between the success rates of Agile and Waterfall projects. 9% of the Agile projects failed, 39% succeeded, and 52% were challenged. 29% of the Waterfall projects failed, 11% were successful, and 60% were challenged.

Uno dei motivi per cui i progetti Agile sono più efficaci è perché le release di batch piccoli aumentano le possibilità di acquisire conoscenze.

È importante tenere a mente quattro cose:

  • Le esigenze aziendali cambiano continuamente e con breve preavviso.
  • Agile dispone di meccanismi di pianificazione che consentono di stare al passo con le modifiche aziendali.
  • I team con prestazioni elevate possono andare rapidamente anche nella direzione sbagliata.
  • L'acquisizione di conoscenza riduce i rischi.

Le metodologie Waterfall che Agile sono entrambe limitate. Agile riesce solo nel 30% dei casi in più.

Esplorare i sei principi della pianificazione continua

La pianificazione continua si basa su sei principi:

  1. Dare valore alla semplicità
  2. Il manifesto per lo sviluppo agile di software
  3. Pensiero orientato alla progettazione
  4. Sviluppo iterativo e incrementale
  5. Gestione semplificata
  6. Accuratezza della stima

1° principio della pianificazione continua: Dare valore alla semplicità

Il primo principio della pianificazione continua è dare valore alla semplicità.

"Se non riesci a spiegarlo in modo semplice, non l'hai capito abbastanza bene".

- Albert Einstein

2° principio della pianificazione continua: Il manifesto per lo sviluppo agile di software

Il secondo principio della pianificazione continua è il manifesto per lo sviluppo agile di software.

Il manifesto riguarda la distribuzione di software. Ha a che fare con lo sviluppo del software, non con la progettazione o la gestione dei progetti. Si trova al centro della pianificazione continua e di DevOps.

Stiamo scoprendo modi migliori per sviluppare software facendolo e aiutando gli altri a farlo. Grazie a questo, abbiamo imparato a dare valore a quanto segue:

  • Gli individui e le interazioni più che i processi e gli strumenti
  • Il software funzionante più che la documentazione esaustiva
  • La collaborazione col cliente più che la negoziazione dei contratti
  • Al rispondere al cambiamento più che all'attenersi a un piano

3° principio della pianificazione continua: Pensiero orientato alla progettazione

Il terzo principio della pianificazione continua è il pensiero orientato alla progettazione.

Il pensiero orientato alla progettazione richiede un approccio all'innovazione incentrato sull'essere umano. Si concentra sull'intersezione tra realizzabilità, fattibilità e auspicabilità per definire i limiti e ridurre gli sprechi.

Diagram explains design thinking. Design thinking establishes the boundaries of the product early (often called the minimal viable product or “MVP”). It focuses on the intersection between business viability, technical and budget feasibility, and desirability. This intersection is where innovation happens.

4° principio della pianificazione continua: Sviluppo iterativo e incrementale

Il quarto principio della pianificazione continua è lo sviluppo iterativo e incrementale.

Alcuni temono di non sapere che cosa otterranno. Lo sviluppo iterativo risolve questo problema perché mette i requisiti e le priorità nelle mani degli stakeholder in un ciclo di feedback iterativo. Ogni iterazione è completa, utilizzabile e utile per gli utenti. Aggiunge altre funzionalità, preferibilmente dando priorità alle funzionalità più importanti.

5° principio della pianificazione continua: Gestione semplificata

Il quinto principio della pianificazione continua è la gestione semplificata.

Il valore viene definito a partire dal punto di vista del cliente finale. Nel processo, vengono identificati i flussi di valore e i passaggi in cui il valore non arriva al cliente vengono identificati come sprechi e quindi rimossi.

Il processo inizia nuovamente, puntando a uno stato di perfezione tramite il miglioramento continuo.

Diagram shows the stages of the process: identify value, map the value stream, create flow, establish pull, and seek perfection.

6° principio della pianificazione continua: Accuratezza della stima

Il sesto principio della pianificazione continua è l'accuratezza della stima.

Una stima è una previsione analitica del tempo necessario per l'esecuzione di un'operazione, del relativo costo o del numero di funzionalità che è possibile fornire. Questa presenta due attributi: accuratezza e precisione, che sono completamente indipendenti tra loro. Le stime sono di proprietà del team di progettazione.

Un obiettivo è una dichiarazione delle esigenze aziendali: quanto tempo si intende impiegare per ottenere qualcosa, quale costo si intende stabilire o quante funzionalità si intende fornire. Gli obiettivi sono di proprietà dell'azienda.

Un impegno è una promessa di fornire funzionalità e qualità entro una determinata data. Gli impegni sono di proprietà comune.

Importante

L'obiettivo della pianificazione continua consiste nel mantenere l'allineamento tra le stime, l'obiettivo e l'impegno. In caso contrario, le aspettative interne ed esterne all'organizzazione non verranno soddisfatte.

Spiegare la relazione tra OKR e Scrum

Dopo aver compreso il motivo e il funzionamento degli OKR, oltre ad alcuni concetti sulla pianificazione continua, viene illustrato il collegamento tra i due.

La strutturazione del lavoro con tecniche quali gli OKR ridurrà l'incertezza, almeno nel breve periodo. Poiché gli OKR devono essere definiti a cascata, questo inizierà a modificare il modo in cui i manager mostreranno il proprio stile di gestione.

Tecniche come gli OKR costituiscono un modo rapido ed efficiente per iniziare ad allontanarsi dallo stile di gestione autoritario.

Objectives and key results lead to epics. Epics help define features, which involve user stories, and result in a development task.