Il tuo carrello รจ attualmente vuoto!
In episodio parliamo di come avviare una iniziativa DevOps.
Come avviare un’iniziativa DevOps
Come decidiamo dove iniziare con un’iniziativa DevOps per innovare la nostra organizzazione?
Quando vogliamo applicare pratiche nuove all’interno di un contesto dobbiamo essere consapevoli che stiamo coinvolgendo persone e le relazioni tra di loro. Ecco quindi delle accortezze per massimizzare le nostre possibilitร di successo e su cosa concentrarci.
In particolare tratteremo di:
- Capire da quale stream di valore partire.
- Capire il lavoro che viene svolto e scegliere i value stream candidati.
- Progettare i team e l’architettura sfruttando la legge di Conway.
- Avviare un’iniziativa รจ un percorso pieno di incognite – stiamo iniziando un viaggio verso uno stato finale che riusciamo a immaginare ma gli step intermedi sono difficili da prevedere.
In questo episodio cerchiamo di anticipare quello che potrebbe accadare e fornire una guida con step pratici da poter applicare.
Capire da quale stream di valore partire
Il value stream da cui avviare l’iniziativa DevOps รจ una scelta delicata. Questa scelta determina la difficoltร della trasformazione sia per l’ambito tecnico per le persone coinvolte.
Una strategia valida รจ quella di scegliere un ambito dove non si creano enormi stravolgimenti ed รจ possibile ottenere dei risultati rapidamente per dimostrare la validitร dell’iniziativa e poter replicare i cambiamenti poi in altre parti dell’organizzazione. Questo puรฒ significare concentrarsi su uno specifico prodotto o piattaforma importante per il business ma non critico.
Ad esempio si potrebbe concentrare l’iniziativa su team specifico per una particolare versione del nostro prodotto/servizio tipo la versione mobile o desktop. In questo modo si ottiene un team dedicato a questa versione con un singolo backlog prioritizzato sui bisogni dei clienti e si evita di avere un team che segue tanti progetti in contemporanea con conflitti di pianificazione.
Scenario greenfield o brownfield
I progetti greenfield sono quelli dove si parte da foglio bianco o quasi. I brownfield sono quelli dove ci sono giร uno o piรน servizi/prodotti usati dai clienti.
Gli scenari greenfield sono spesso usati come piloti per dimostrare la fattibilitร di un’iniziativa DevOps o una nuova iniziativa tecnica (adozione public cloud, esperimenti di automazione, ecc…).
Partire con un progetto greenfield potrebbe essere piรน facile perchรฉ si hanno meno vincoli di progettazione. Inoltre, siccome stiamo partendo da zero, non dobbiamo preoccuparci di codebase legacy, processi giร esistenti o team preformati.
Anche iniziare da uno scenario brownfield puรฒ funzionare. Uno dei risultati del 2015 State of DevOps Report ha dimostrato che l’etร della codebase non รจ un indicatore significativo inquesto ambito; lo sono piuttosto l’architettura (o la possibilitร di essere ristrutturata) in termini di testabilitร e facilitร di deployment.
Comincia col gruppo piรน innovativo
All’interno di ogni azienda ci sono team e persone con un diverso atteggiamento nei confronti del cambiamento e delle nuove idee. Il nostro obiettivo รจ quello di identificare i team che giร hanno bisogno (o pensano di) adottare pratiche DevOps; meglio ancora se hanno giร dimostrato in passato di essere in grado di innovare e migliorare autonomamente i loro processi.
Soprattutto nelle fasi iniziali non si spreca tempo a convertire i gruppi piรน conservativi. Invece, ci oncentriamo sul creare casi di successo con gruppi di persone poco propense al rischio e costruire le basi da qui. Anche se si ha un forte appoggio dal management/leadership รจ consigliato evitare approcci “big bang” dove si applica tutto e ovunque.
Espansione
Porre solide basi per il cambiamento รจ fondamentale e questo si ottiene ottenendo risultati rapidamente, documentandoli e diffondendoli. Questo si puรฒ raggiungere spaccando le attivitร in piccoli step incrementali. Questo non solo dimostra i nostri miglioramenti piรน velocemente, ma ci permette di capire quanto prima gli errori e correggere il percorso.
Mano a mano che otteniamo progressi possiamo espandere l’ambito dell’iniziativa DevOps.
Capire il lavoro che viene svolto e scegliere i value stream candidati.
Una volta che abbiamo identificato lo stream di valore a cui applicare la transofmrazione, il prossimo step รจ quello di capire come il valore รจ rilasciato al cliente finale: che lavoro viene svolto, chi lo fa e quali step possiamo attuare per migliorare il flusso.
Ecco come fare:
- Identificare tutti i team coinvolti nella creazione del valore.
- Creare una mappa del value stream per rendere il lavoro visibile.
- Usare la mappa per guidare il team su come creare valore piรน rapidamente per il cliente finale.
Tipicamente in un flusso del valore anche solo mediamente complesso nessuno conosce tutto il lavoro completo che deve essere fatto per creare il valore per il cliente finale.
Creare una mappa del valore per poter vedere
Una volta identificato chi partecipa alla creazione del valore si disegna una mappa. Nel nostro flusso idale del valore probabilmente il lavoro inizierร da qualcuno (Product Owner) che gestisce richieste cliente o una idea/ipotesi di business. Piรน tardi il lavoro verrร preso in carico da Development che svilupperร e farร check-in del codice. A questo il codice verrร integrato e compilato, testato in uno scenario production-like e infine rilasciato agli utenti finali.
In molte aziende, invece, questo flusso consiste in decine o centinaia di piccoli step che richiedono il lavoro di decine di persone. Per questo costruire una mappa della creazione del valore รจ un workshop che puรฒ richiedere anche piรน di un giorno con rappresentati da ogni reparto in un workshop dedicato.
Lo scopo non รจ quello di documentare tutto nel minimo dettaglio ma di avere un’idea degli step che compongono il nostro flusso e cosa ne impedisce un fluire senza intoppi.
Progettare i team e l’architettura sfruttando la legge di Conway
Negli episodi precedenti abbiamo appreso il legame tra l’architettura software e la topologia dei team che la implementano con la legge di Conway.
Come organizziamo i team ha un profondo impatto sul software che produciamo anche in termini architetturali e di affidabilitร in produzione.
Nell’ambito delle strutture organizzative ci sono 3 principali strutture come definite da Dr. Roberto Fernandez.
- Funzionale. Orientata alla specializzazione, divisione dei compiti e/o riduzione dei costi. Tipicamente con gerarchie forti e molto verticali. Tipiche del mondo Operation – (server admin, network admin, db admin, …)
- Orientate al mercato. Ottimizzate per rispondere rapidamente al bisogno dei clienti. Con gerarchie tendenzialmente piatte e larghe. Suddivse in dipartimenti cross-funzionali – (marketing, engineering, …). Questo รจ l’assetto in cui molte realtร mature in ambito DevOps operano. Speed over cost.
- Matrice. Un ibrido tra funzionale e orientato al mercato. Risultano in gerarchie complesse e dinamiche difficili da organizzare.
- L’obiettivo di una trasformazione dovrebbe essere quello di creare o convertire team verso un approccio orientato al mercato con una preferenza ad ottimizzare per velocitร – invece che per costi. Questo genere di team non รจ solo responsabile dello sviluppo ma anche del testing, messa in sicurezza, operation e stabilitร in produzione. I team sono – multi-funzionali e indipendenti l’uno dall’altro.
Anche team funzionali possono funzionare bene, finchรฉ ognuno รจ consapevole dell’intero flow e ha il valore per il cliente come obiettivo finale ben saldo nella propria mente.
Azioni
Esercizio 1 – Identifica
Identifica un potenziale ambito nel tuo contesto organizzativo dove poter introdurre innovazione tramite principi e pratiche DevOps
Esercizio 2 – Rendi visibile
Rendi visibile il flusso di creazione del valore con un workshop di gruppo.
Esercizio 3 – Analizza le tipologie di team
Analizza i team nel contesto in cui lavori: a quale tipologia sono affini? Cosa cambieresti per renderli piรน affini a una tipologia market-oriented?
Sharing is caring
Se conosci qualcuno che potrebbe trovare utile ricevere e-mail per migliorare l’organizzazione dei team di sviluppo software, DevOps e software engineering in generale inoltragli questo post! Qui puรฒ iscriversi e cominciare a ricevere subito!
Rispondo alle tue e-mail
Nessuno ci fa mai caso ma puoi rispondere a questo messaggio e io lo leggerรฒ! Fammi sapere cosa ne pensi!
Lascia un commento