Perché e come gestire i rischi nello sviluppo del software
Pubblicato: 2021-10-05In questo articolo, discutiamo gli approcci alla gestione del rischio nel processo di sviluppo del software. Prestiamo inoltre attenzione all'importanza della gestione del rischio dal punto di vista del business e dello sviluppo e forniamo persino un esempio di un piano di gestione del rischio.
Il 12 novembre 2019, Disney ha lanciato Disney Plus, un servizio di streaming simile a Netflix con contenuti originali. Migliaia di utenti erano pronti a pagare $ 7 al mese o più per godersi i contenuti di Pixar, Marvel, Star Wars e molti altri franchise.
Gli spettatori desiderosi sono rimasti delusi di guardare gli schermi di interruzione per giorni invece dei contenuti per cui avevano pagato. Le lamentele spaziavano, dalle difficoltà di accesso all'impossibilità di eseguire lo streaming, gli errori delle app e gli spettacoli e i film che scomparivano dalla libreria.
La Disney ha attribuito questi problemi alla domanda che supera le sue "alte aspettative".
Questo è un classico esempio di cattiva gestione del rischio tecnico nello sviluppo del software .
La Disney avrebbe potuto evitare queste interruzioni? Sì.
Potete evitare problemi simili? Anche sì.
In questo articolo, ci addentreremo nella gestione del rischio e nella mitigazione del rischio nello sviluppo del software.
L'importanza della gestione del rischio
Ogni azienda è unica e non tutti i rischi possono essere anticipati completamente. Ma ci sono alcuni approcci che aiutano a identificare i colli di bottiglia, calcolare la possibilità che si verifichino rischi e prevedere l'impatto negativo se si verificano.
La gestione del rischio è un insieme complesso di attività che le aziende possono svolgere al fine di evitare o migliorare gli effetti dei rischi.
Lo scopo della gestione del rischio è sapere cosa può andare storto, perché può andare storto, quale sarebbe l'impatto se lo facesse e come risolverlo. Uomo avvisato mezzo salvato.
Il vantaggio di una corretta gestione del rischio è che aiuta un'azienda a soffrire di meno anche quando si materializza un rischio.
La gestione del rischio può portare i seguenti vantaggi:
- Risparmi sui costi tagliando le spese in caso di emergenze prevedibili ed evitabili
- La capacità di lavorare più velocemente consentendo ai team di sviluppo di concentrarsi sullo sviluppo, non sulla risoluzione di problemi imprevisti
- Spesa più intelligente non avendo bisogno di attrarre finanziamenti aggiuntivi per risolvere problemi imprevisti
- Una migliore reputazione garantendo ai clienti di avere tutto sotto controllo anche in caso di emergenza
Tipi di rischi
Un imprenditore inesperto spera che non accada nulla di male alla sua attività. Un imprenditore esperto sa che accadrà qualcosa di brutto e si prepara in anticipo.
Quindi cosa potrebbe andare storto? Fondamentalmente, qualsiasi cosa. Vari approcci di gestione del rischio coprono vari tipi di rischi. Le categorie di rischio più comuni per le imprese sono:
Rischi umani — La malattia improvvisa, la gravidanza, l'arresto, la morte o il cambiamento di carriera di un membro del team possono portare a numerose conseguenze, dai ritardi nelle prestazioni alla delega di funzionalità ad altri membri del team.
Posizione o rischi geografici : ogni posizione ha i suoi problemi specifici come il clima, la situazione politica, il fuso orario e le tradizioni lavorative che possono influenzare il flusso di lavoro.
Rischi strategici — Cose come problemi di pianificazione, scelta della strategia sbagliata e cattiva gestione non possono essere previste fin dal primo giorno, ma dovrebbero sicuramente essere considerate come un importante fattore di rischio.
Rischi operativi o gestionali : sono molto vicini ai rischi strategici ma riguardano più l'esecuzione: problemi di implementazione, dipendenze errate dal lavoro, cattiva gestione, lentezza nel processo decisionale, errata definizione delle priorità e molti altri problemi operativi possono ritardare lo sviluppo del business o costare una fortuna superare.
Rischi legali — È bene studiare leggi e regolamenti di particolari regioni almeno per scoprire se è possibile fare affari lì. Inoltre, le leggi tendono a cambiare, il che spesso può portare a modifiche fiscali e problemi di formalizzazione. I rischi legali includono anche modifiche alle norme e ai regolamenti di piattaforme aziendali come Amazon, Apple App Store e Google Play.
Rischi tecnici — Una tecnologia scelta può sembrare perfetta sulla carta ma comportarsi diversamente in azione. Aggiornamenti costanti, cambiamenti negli ambienti operativi, problemi di manutenzione e molti altri aspetti tecnici possono avere un grande effetto sull'azienda.
A seconda del tipo di attività, possono comparire molti altri fattori di rischio e i fattori sopra elencati possono cambiare. Ma conoscere questi rischi ti aiuta a scegliere una strategia di gestione del rischio adeguata.
Strategie di gestione del rischio
Gli approcci alla gestione del rischio differiscono in base a numerosi fattori, ma ecco alcune delle strategie di gestione del rischio più comuni:
Prevenzione del rischio
Questa è una strategia radicale in cui un'azienda si rifiuta di correre un rischio e rifiuta di svolgere un'attività.
Ci sono tipi di rischi in cui il prezzo di un errore è troppo alto. Ad esempio, se si conoscono i limiti delle capacità tecniche di una soluzione, è consigliabile non sovraccaricare la soluzione con un progetto ad alto carico. In questo caso, il costo del fallimento può essere superiore al possibile ricavo.
Insomma, a volte va bene non impegnarsi in alcune attività commerciali per non fallire.
Pro: Veloce da implementare: basta rifiutare o accettare l'attività.
Contro: lascia sul tavolo le potenziali entrate.
Buono per: aziende con più filiali e fonti di reddito.
Utilizzare quando: il danno derivante dal possibile rischio è maggiore del possibile profitto dall'attività.
Mitigazione del rischio
Questa è una strategia per rendere le conseguenze negative meno gravi piuttosto che evitarle del tutto.
Quando gestisci un'attività più complicata della vendita di limonata in giardino, potresti dover affrontare problemi che non puoi evitare. In questo caso, si consiglia di identificare e mitigare le conseguenze di tali rischi.
Funziona per rischi specifici noti, specialmente nei progetti software. Avvisa i tuoi clienti dei problemi imminenti o offri una soluzione temporanea. I clienti potrebbero non andarsene soddisfatti, ma almeno sentiranno la cura che hai per loro . Ad esempio, McDonald's distribuisce un coupon per un gelato gratuito se aspetti più di 90 secondi per un ordine.
Pro: non sprechi le tue risorse per eliminare il rischio. Invece, lavori con le sue conseguenze, cercando di renderle meno gravi, cosa che spesso è molto più facile da fare.
Contro: Tu e il tuo cliente dovete ancora affrontare le conseguenze negative del rischio.
Buono per: aziende con clienti fedeli, aziende sensibili ai tempi, fornitori di servizi.
Utilizzare quando: il rischio non può essere evitato completamente ma il servizio deve essere comunque erogato in tempo; situazioni di emergenza.
Trasferimento del rischio
Con questa strategia, paghi qualcun altro per affrontare le conseguenze negative.
Se la tua azienda non è in grado di gestire un determinato rischio, chiedi aiuto. Questo può essere un approccio molto costoso alla gestione del rischio nello sviluppo del software, ma i risultati possono soddisfare le aspettative del cliente e mantenere la tua attività in movimento. È anche utile nel contesto di liberare il tuo equipaggio dal lavoro sporco che non vuole fare, portando a una migliore concentrazione e con conseguente migliore qualità.
Pro: Semplice e soprattutto veloce da eseguire.
Contro: può costare una fortuna e avrai meno controllo su parte della tua attività.
Buono per: aziende con un carico elevato su alcuni dei suoi componenti o per l'implementazione di funzionalità per le quali non si dispone di molta esperienza.
Utilizzare quando: un'attività deve essere svolta bene e velocemente, senza il tempo di acquisire le proprie competenze o formare i propri professionisti.
Accettazione del rischio
Come suggerisce il nome, con questa strategia accetti semplicemente tutte le conseguenze negative di un rischio.
Ci possono essere casi in cui il profitto di un'attività commerciale è molto maggiore dell'impatto del possibile rischio. In questo caso, va bene che un'azienda accetti solo il rischio. Ma gli utenti dovrebbero essere avvertiti delle conseguenze dell'accettazione del rischio.
Microsoft utilizza questa strategia quando smette di mantenere vecchie versioni di prodotti, come Windows XP.
Pro: non richiede quasi risorse.
Contro: Hai tutte le conseguenze negative.
Buono per: aziende consolidate in cui l'implementazione di nuove funzionalità è più importante del supporto di quelle vecchie.
Utilizzare quando: un'attività non arreca danni alla maggior parte degli utenti o quando il profitto dall'attività erogata per l'utente è superiore al possibile inconveniente.
Nota che nessuna di queste strategie è una panacea. Qualsiasi altro tipo di rischio può andare di pari passo con il rischio tecnologico e influenzare il risultato del tuo lavoro. E nella maggior parte dei casi, la strategia di gestione del rischio per un particolare progetto sarà una combinazione delle strategie di cui sopra , tenendo conto degli aspetti speciali del business.
Come gestire i rischi utilizzando una metodologia agile (esempio)
Ecco come una strategia di gestione del rischio di sviluppo software può guardare a Mind Studios.
Fase 1. Identificazione del rischio
Quando: Durante la fase di valutazione del progetto
Durante questa fase, il project manager riunisce il team di sviluppatori e designer per una sessione di brainstorming, cercando tutti i possibili rischi e cosa può scatenarli.
Passi necessari:
- Ricorda i problemi che abbiamo avuto nei progetti precedenti; prova a scoprire tutte le incognite conosciute
- Definire le aree in cui è probabile che si verifichino rischi di qualsiasi tipo in questo particolare progetto
- Valuta l'impatto di ogni fattore che potremmo affrontare durante lo sviluppo del prodotto
Fase 2: analizzare e valutare i rischi
Quando: subito dopo la fase di valutazione del progetto
In questa fase i rischi vengono identificati e poi categorizzati. Qui, i project manager analizzano anche il possibile impatto di un rischio e la probabilità che si verifichi. In questa fase, è bene tenere conto della complessità del progetto, delle qualità dei test e delle dipendenze tra i team di sviluppo.
Il risultato di questa fase è un elenco di conseguenze definite per ogni tipo di rischio:
- Possibili perdite per il cliente
- Possibili problemi per l'azienda
- Perdite di reputazione
- Questioni legali
Fase 3: creare un piano di gestione del rischio e approvarlo con il cliente
Quando: subito prima dell'inizio dello sviluppo
Durante questa fase, i project manager formalizzare le attività di gestione del rischio in piani. Di solito, il piano di gestione del rischio per un progetto è una tabella con le seguenti colonne:
- Definizione di rischio
Definiamo il problema che potrebbe verificarsi e li descriviamo in una breve frase. La definizione dovrebbe essere chiaramente compresa anche a colpo d'occhio, quindi tendiamo a descrivere il problema nel modo più breve possibile: "mancanza di potenza del server", "impossibilità di caricare i contenuti dell'utente", "ritardo di rilascio del Play Store" e descrizioni simili sono chiaro e focalizzato sul problema.
- Grilletto
Descriviamo come possiamo sapere se il rischio si è materializzato. Cosa ci dirà esattamente del problema e come potrebbe apparire? Se l'innesco può provenire da fonti diverse, dovremmo nominarle tutte. Va bene dare la priorità all'elenco delle origini trigger in base alla probabilità o al valore.
- Probabilità (punteggio)
Definiamo la possibilità che si verifichi un rischio. A seconda del numero e dell'importanza dei possibili rischi, suggeriamo il punteggio massimo e minimo, ad esempio 100 e 1. Un rischio più probabile ottiene un punteggio più alto.
- Impatto (punteggio)
In questa colonna, assegniamo un punteggio alla gravità di ciascun tipo di rischio.
- Valore (punteggio)
Definiamo quanto sia significativo un particolare rischio per il progetto. Un numero più alto significa una priorità più alta. In Mind Studios, di solito definiamo il valore di un rischio moltiplicando i suoi punteggi di impatto e probabilità. Ma sei libero di definire questo valore come desideri in base ai requisiti e alle particolarità della tua attività.
- Strategia principale
Denominiamo la strategia o l'approccio principale che utilizzeremo per gestire il rischio, ad esempio trasferire, mitigare o accettare.
- Strategia alternativa (se disponibile)
Nel caso in cui la strategia principale non sia accettabile, chiamiamo una strategia secondaria. Ad esempio, se un rischio non può essere trasferito al momento, possiamo avviare il processo di mitigazione. Consigliamo di creare quante più strategie possibili per ogni tipo di rischio.
- Piano d'azione per la strategia scelta
Questa è la parte più dettagliata della strategia, in cui creiamo una guida passo passo per la sua attuazione. Di conseguenza, dovremmo ottenere un piano chiaro per ciò che faremo nel caso in cui si verifichi ogni tipo di rischio. Numeriamo i passaggi, includiamo i contatti delle persone coinvolte e responsabili e scriviamo ogni passaggio nel modo più chiaro e dettagliato possibile.
Creiamo piani d'azione per tutte le strategie principali e alternative che consideriamo per i nostri progetti.
Ecco un esempio del piano di gestione del rischio tecnico che utilizziamo presso Mind Studios:
[Fogli Google]
Fase 4: Monitorare i rischi
Quando: in background dal primo giorno; controlla dopo ogni sprint di sviluppo
Non c'è alcuna garanzia che un rischio risolto non si ripresenti. Ecco perché il monitoraggio del rischio dovrebbe essere integrato nell'elenco delle attività per i progetti software. I trigger possono essere identificati anche dal feedback degli utenti e dai report QA. Includere attività di monitoraggio del rischio in ogni ulteriore sprint di sviluppo.
Tutte le attività di gestione del rischio devono essere concordate con il cliente, in particolare quando si esternalizza lo sviluppo del software. Tutti i costi, le probabilità di materializzazione e i gradi di gravità dovrebbero essere il più chiari possibile: il cliente dovrebbe sapere per cosa sta pagando e chi è responsabile di ogni tipo di rischio. Trova un compromesso accettabile con le aspettative del cliente e il budget del cliente .
Rischi aziendali
La conversazione sulla gestione del rischio non può essere completa senza menzionare i rischi aziendali. È positivo quando hai affrontato rischi di progetto come quelli menzionati sopra. Ma immagina di essere nel mezzo dello sviluppo e scoprire che il tuo concorrente rilascerà un prodotto simile più velocemente o con una funzionalità killer. Trovarti in questa situazione significa che hai dimenticato di prenderti cura dei tuoi rischi aziendali anche se non sei andato bene anche con i rischi del tuo progetto?.
Un rischio aziendale è qualsiasi cosa al di fuori della tua attività che minacci gli obiettivi o gli obiettivi della tua attività. Potrebbe trattarsi di un cambiamento improvviso di un concorrente, di un organismo di regolamentazione, dell'economia o di un numero qualsiasi di altre cose.
La gestione dei rischi aziendali comporta tutta una serie di altri passaggi e fasi che valgono un altro articolo. Ma ecco alcuni suggerimenti generali:
- Tieni d'occhio il mercato
Avere una brillante idea imprenditoriale non garantisce che qualcun altro non abbia un'idea simile. Fai regolarmente ricerche di mercato e analisi per conoscere lo stato del mercato e tenere d'occhio i tuoi concorrenti potenziali e attivi.
- Lavora sull'adattamento del tuo prodotto al mercato
Assicurati che il tuo prodotto soddisferà la forte domanda del mercato. Se le nuove condizioni di mercato influiscono sulle prestazioni della tua attività, dovresti riconsiderare l'adattamento del tuo prodotto al mercato. Sii agile non solo nello sviluppo del prodotto, ma anche nello sviluppo del business. Migliora, innova e non esitare a fare perno.
Mitigazione del rischio nello sviluppo del software: conclusioni
In generale, una corretta gestione del rischio ti aiuta a concentrarti sul lavoro sul tuo prodotto. Con una corretta gestione del rischio, più risorse sono concentrate sulla creazione di migliori funzionalità e prodotti di qualità superiore invece di superare le conseguenze dei rischi.
Gli sviluppatori che eseguono la gestione del rischio possono lavorare di più su ciò che amano e gli imprenditori che eseguono la gestione del rischio ottengono clienti più felici, una reputazione migliore e più spazio per la creatività.
Sei ancora curioso di sapere come gestire i rischi nella tua particolare attività? Possiamo aiutare!
Se sei preoccupato per i rischi nei tuoi progetti software, i project manager di Mind Studios saranno felici di condividere la loro esperienza! Mettiti in contatto.
Scritto da Tymur Solod e Alexander Vasyliev.