Quali sono alcuni metodi per misurare il ROI per DevOps?


24

DevOps è complesso e coinvolge molti aspetti non deterministici come la cultura e il processo.
Quali sono alcuni modi per misurare le iniziative DevOps per il successo?
Come dimostrate a un'azienda che l'investimento che hanno fatto sta restituendo (o risparmiando) dollari reali?


Ehi Dave, mi chiedo cosa significhi "tu" per "misurazione", come per uno dei tag che hai usato nella tua domanda. IMO (non più di quello), sarebbe più appropriato usare solo il tag "metrica" ​​(esistente). No? Se non sei d'accordo (il che è ok ...), ti dispiacerebbe (brevemente) spiegare quale pensi che la differenza tra quei 2 tag sia (o dovrebbe essere)?
Pierre.Vriens

@ Pierre.Vriens Suppongo che la misurazione sia l'atto di raccogliere dati, mentre una metrica è qualcosa che misuri. Ho rimosso il tag "misura" perché probabilmente è ridondante.
Dave Swersky,

Risposte:


16

Ottima domanda! Molti di noi sanno che investire nelle pratiche DevOps è una ricerca estremamente utile per una miriade di ragioni; spesso non giustificiamo DevOps sull'impatto solo sulla linea di fondo.

Nota : questa è una domanda supponente, e anche la mia risposta è supponente.

Tensibai suggerì saggiamente di trovare le giuste metriche e usò il time-to-market come esempio. Questo è un grande approccio generale.

Come approccio alternativo, la mia esperienza con i bean-counter è che non hanno bisogno di - o necessariamente vogliono - conoscere il quadro generale, vogliono solo prove di responsabilità fiscale. Vogliono vedere una tendenza nella giusta direzione.

Ecco solo alcune vincite fiscali:

  • calcolare i costi del server risparmiati sfruttando il ridimensionamento automatico nel cloud
  • per i siti che generano reddito, estrapolare il costo al minuto dei tempi di inattività, quindi mostrare miglioramenti in MTTI e MTTR
  • ancora una volta, per i siti che generano reddito, stimare il costo per minuto risparmiato sfruttando l'architettura ad alta disponibilità basata sugli incidenti passati
  • se hai migliorato la tua pipeline di build e deploy, mostra che hai ridotto regressioni ed errori nella produzione causati da guasti già tracciati
  • se hai apportato miglioramenti agli ambienti di test degli sviluppatori, o anche agli strumenti e alla configurazione sui laptop degli sviluppatori, guarda le cronologie di commit per vedere se i nuovi ingegneri stanno dando i loro primi contributi prima di aderire
  • eseguire un confronto completo dei costi tra cloud e on-prem, proprio come ha fatto di recente Gitlab , per giustificare la spesa per l'infrastruttura (ovvero i risparmi!)

Dimostrare di essere consapevole del denaro e di avere alcune vincite chiare è spesso sufficiente. Ho sicuramente perso alcuni esempi ovvi; sentiti libero di aggiungere commenti qui sotto.


2
Sono dietro al 1000%. Penso che siamo sulla cuspide di un grande cambiamento nel monitoraggio: non mi importa più di quanta CPU o RAM è in uso in una determinata istanza, mi importa di quanto sto pagando per un gruppo di istanze di ridimensionamento automatico col tempo. Non mi interessa quante richieste un'istanza può gestire, mi importa quanto costa gestire una richiesta. Questo cambiamento nel modo di pensare può davvero aiutare a guidare metriche migliori per DevOps, incluso il ROI.
Adrian

12

La metrica chiave per una pipeline DevOps è Cycle Time (chiamato anche Lead Time ). Questo è il tempo necessario per una modifica (o una richiesta di modifica, tenendo traccia fino all'inizio dell'idea). La migliore illustrazione di questo concetto che conosco proviene dal libro "The Goal", che ne parla in un contesto produttivo.

Anche la frequenza di distribuzione è utile. Vogliamo che le distribuzioni siano frequenti in una pipeline DevOps. Non esiste una misurazione magica "1 giorno è buono, 2 giorni sono cattivi"; questo avrà bisogno di un contesto storico sul tuo progetto per essere significativo.

Dimensione di distribuzione : misurata in ogni caso, gli sviluppatori misurano il lavoro: storie degli utenti, punti della storia, quatloo, qualunque cosa. Ancora una volta, vuoi vedere le tendenze nel tempo, non il valore assoluto.

Tra frequenza e dimensioni c'è una storia da raccontare. Le nostre pubblicazioni stanno diventando più rare e più grandi? perché? Stanno diventando più piccoli e più frequenti? Ancora una volta, perché?

Spiegando se l'andamento della frequenza / dimensione è buono, avremo anche bisogno della percentuale di implementazioni non riuscite . Scoprire il "perché" in queste tre metriche ti dirà molto sulla salute del progetto.

Il mio preferito personale, sebbene sia una metrica di vanità, è Time for a Trivial Deploy . Se hai trovato la cosa più piccola possibile vale la pena ridistribuire l'intero sito su ... forse un errore di battitura nel nome del CEO ... quanto tempo potresti passare dalla telefonata di panico a un sito distribuito? Dico "vanità" perché in realtà non è così predittivo oltre quello di cui discutono le altre metriche sopra, ma mi fa sentire bene quando mi piace il valore.

Se entriamo nel monitoraggio, ci sono un sacco di cose diverse che possiamo tenere traccia ... da cose onnicomprensive come " Uptime ", a cose di basso livello come il tempo impiegato a rigenerare HTML personalizzato in un ciclo di richiesta-risposta ... ma quelli non sono specifici per istituire una cultura DevOps.

Questi non si legano direttamente ai dollari ... per farlo richiederà più conoscenza della tua organizzazione di quella che posso offrire in un forum come questo; ma sono la chiave per INIZIARE a rispondere a questa domanda. Una volta che sai di essere in grado di rilasciare regolarmente il lavoro in produzione come non-evento, puoi iniziare a vedere quanti sforzi stavi sprecando prima. Come insegna il libro "The Goal" (sulla produzione di condutture - è rilevante), l'ottimizzazione a livello locale può sembrare un risparmio di denaro, ma alla fine crea semplicemente valore che è legato all'inventario (funzionalità non impiegate).

Oltre a questo consiglio, dovresti dare un'occhiata al Rapporto State Of DevOps degli ultimi anni. Questo è pieno di misurazioni su progetti del mondo reale che potresti emulare.


8

Capitano ovvio: riducendo i tempi di immissione sul mercato e i difetti nelle versioni.

Per estendere questo aspetto, la solita trappola è quella di cambiare l'organizzazione senza alcun riferimento.

Coinvolgere una cultura o un cambiamento organizzativo implica alcune spese per la formazione e per introdurre le persone a questo nuovo metodo, questo ha un costo nella formazione ma implica anche una perdita di produttività poiché le persone in una sessione di treno non produrranno nulla. Questa è la parte di investimento del cambiamento culturale.

Per misurare un ROI devi prima trovare alcune metriche pertinenti che dovrebbero essere migliorate (capire costose, costose o fonte di perdita di profitto). Potrebbe essere un time-to-market più breve, meno patch dopo ogni rilascio, un migliore coinvolgimento del cliente all'interno del tuo prodotto. Le metriche pertinenti dipenderanno fortemente dal / i prodotto / i.

Misurare un ROI (la velocità con cui hai coperto le spese di formazione) implica che puoi effettivamente presentare un'evoluzione su tali parametri, quindi prima di attuare qualsiasi cambiamento devi averli definiti e misurati in modo obiettivo.
Una volta che hai una vera evoluzione da mostrare, puoi dire se hai migliorato qualcosa in modo da coprire le spese di formazione e diventare più redditizio di prima.

La solita trappola è impegnare il cambiamento prima di aver definito qualsiasi metrica e quindi di valutare il ROI su un feeling e non su dati concreti.

La produttività può essere una metrica, ma la sua misurazione è di solito molto difficile da eseguire in modo obiettivo e non dovrebbe essere una metrica di prima classe per questo tipo di studio.


1

In ritardo al gioco qui, ma ho pensato di entrare.

Non puoi gestire ciò che non misuri, quindi per cominciare, ecco le metriche chiave che i team di Devops dovrebbero monitorare per la risposta agli incidenti:

  • Uptime% : % totale di tempo disponibile = [tempo totale - tempo di inattività] / [tempo totale]
  • MTTR : tempo medio di risoluzione = [downtime] / [# incidenti]
  • MTTA : tempo medio di riconoscimento = [tempo totale di riconoscimento] / [# numero di incidenti]
  • MTBF : tempo medio tra guasti = [tempo totale - tempo di inattività] / [# di incidenti]

Queste metriche offrono un controllo dello stato di alto livello delle operazioni e aiutano a identificare dove è necessario approfondire ulteriormente.

Dai un'occhiata all'animazione della lavagna qui per uno sguardo più approfondito sull'argomento.

Una volta che conosci le tue metriche, puoi confrontarle con il costo dei tempi di fermo . Puoi iniziare a costruire il ROI del tuo team da lì e impostare alcune metriche quantitative per il miglioramento continuo.


Queste sono metriche di affidabilità, che sono correlate a DevOps ma non sono sufficienti. L'affidabilità è solo un aspetto di DevOps.
Phil

Grazie @Phil. Questo è un buon punto: si tratta in effetti di metriche focalizzate sull'affidabilità, che è una parte importante di DevOps, ma certamente non è tutto. Speriamo che rimanere al top dell'affidabilità sia un buon punto di partenza, ma non fermarti qui!
Yuan Cheng,
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.