Lean, Agile e DevOps… go Back!

Preparando una serie di slide per i prossimi eventi, mi sono reso conto che il mondo dello sviluppo IT si sta letteralmente “popolando” di metodologie, pratiche e “buzzword” non sempre distinguibili e ben inquadrabili.

Tutto ciò rende estremamente difficile capire quale approccio convenga adottare per il contesto specifico e in cosa le varie opzioni si differenziano tra di loro, soprattutto se si decide di imbarcarsi nel pericoloso fai-da-te senza una chiara visione e strategia degli obiettivi di cambiamento che si vogliono raggiungere.

Lungi dal voler essere esaustivo, vediamo di inquadrare a grana grossa come relazionare tra loro i tre approcci che oggi sono adottati maggiormente nel mondo dell’IT per la gestione dell’Application Lifecycle Management: Lean, Agile e DevOps. Per fare ciò ci baseremo sulla figura seguente:

lean agile devops

Lean & Agile & DevOps

Come si vede, alla base di tutto vi è Lean. Questo perché Lean è orientato all’ottimizzazione olistica dei processi e, nel caso di uno specifico prodotto, alla sua ottimizzazione end-to-end. Sui valori e sui principi Lean troviamo l’approccio DevOps, orientato al Deployment, ovvero alla consegna del prodotto (o soluzione che sia) al cliente. Nel ciclo DevOps, infine troviamo approcci e metodologie specifiche, a partire da Agile, nelle sue varie incarnazioni, fino alle pratiche di Customer Delivery e di Solution Delivery.

Tutte e tre gli approcci sono quindi indispensabili per ottimizzare l’intero flusso di creazione del Valore, perché nessuno di essi, individualmente, copre tutte le fasi annessi:

  • Lean, è alla base di Agile e di tutte le pratiche moderne di creazione di Valore e ottimizzazione del flusso di lavoro
    • Lean Startup e Running Lean si focalizzano sulla validazione applicata dell’idea di business e sulla verifica della sostenibilità economica delle iniziative annesse:
    • Lean Change consente di approcciare al Change Management in chiave di micro-esperimento basati sul fallimento come strumento di apprendimento.
  • DevOps, è focalizzato sulla creazione di una Cultura del Delivery in funzione del business piuttosto che una focalizzata sui dettagli tecnici
    • Continuous Integration, Continuous Delivery e Continuous Deploy sono le fondamenta per creare una solida Agile Deployment Pipeline.
  • Agile, è lo strumento principe per lavorare in chiave adattativo, velocizzando i feedback loop grazie a soluzioni incrementali e funzionanti
    • Scrum ed XP sono le metodologie Agile più utilizzate, con Scrum orientato alla gestione del progetto ed XP all’implementazione.

In abbinamento a Lean, troviamo i framework di Agile@Scaling, Discipline Agile Delivery e Scaled Agile Framework in primis, pensati per offrire un set di strumenti consistenti che consentano di gestire prodotti di media e grande complessità, multi progetto e multi team.

Per maggiori dettagli sulle differenze primarie tra Agile e Lean, vi rimando a questo precedente post Lean e Agile, similitudini e differenze.

 

Per tutto il resto ci vediamo domani, 5-febbraio-2016, al DevOps@Works di Roma J

Comments are closed.