Il Lean è una cultura orientata a comprendere le esigenze del cliente, ridurre gli sprechi e ottimizzare i processi, una filosofia che potremmo riassumere nel motto “massimo risultato con il minimo sforzo”.
E’ una teoria di organizzazione aziendale che integra al suo interno varie metodologie gestionali.
Obiettivo del Lean è produrre di più con un minor consumo di risorse.
Il termine “lean production” – produzione snella – è stato coniato in riferimento al sistema Toyota, l’azienda automobilistica giapponese caratterizzata da processi industriali ad altissima efficienza rispetto ai principali produttori mondiali di automobili.
Tra i concetti chiave del Lean c’è l’idea del miglioramento continuo (“Kaizen”) perseguito mediante l’applicazione di un processo ciclico in 3 fasi: sperimentazione, misurazione dei risultati e apprendimento (build, measure, learn).
Nel famoso libro di Eric Ries “Lean Start-up” viene più volte ribadito che l’acquisizione di conoscenza è cruciale per il successo di un’iniziativa imprenditoriale:
“Questo è il modo giusto di pensare alla produttività in una start up: non in termini di quanta roba stiamo producendo, ma di quanto apprendimento validato stiamo incamerando per i nostri sforzi.
Ogni bit di conoscenza che raggiungiamo ci suggerisce nuovi esperimenti da fare che muovono le nostre metriche più vicine ai nostri obiettivi.”
Un processo Lean prevede i seguenti step:
- Identificare cio’ che vale per gli utenti (per cosa sono disposti a pagare un prezzo?)
- Identificare il flusso del valore
definire la sequenza ottimale delle attività per creare valore - Far scorrere il flusso del valore
eseguire le attività di valore senza inutili interruzioni - “Pull” e non “push”
fare scorrere il flusso del valore in base alla domanda, non all’offerta - Puntare alla perfezione come punto di riferimento in un contesto di miglioramento continuo
Se applichiamo i principi Lean al mondo del software e in generale della progettazione ritroviamo gli step ciclici di build, measure, learn.
Dobbiamo identificare un problema o un’opportunità di sviluppo e verificare che abbia davvero valore per gli utenti (per questo è necessario acquisire conoscenza dei loro bisogni e e necessità).
Modifichiamo il nostro punto di vista e proviamo a ridefinire il problema dal punto di vista degli utenti. Mettiamoci “nei loro panni”.
Solo a questo punto – quando siamo stati in grado di avere empatia nei confronti di coloro per cui stiamo progettando – siamo in grado di fare brainstorming in maniera proficua e portare soluzioni creative.
Una volta definite la nostra idea ne verifichiamo le assunzioni (cosa stiamo dando per scontato senza averne alcuna prova?) conducendo degli esperimenti.
Possiamo creare un prototipo – il più “lean” possibile – per mettere alla prova l’idea in poco tempo e con il minimo delle risorse per testare la soluzione sul campo e raccogliere feedback quanto prima.
Il confronto reale con i propri utenti ci permette di validare l’idea iniziale raffinandola ulteriormente, di aggiustare il tiro o – in alternativa – di non proseguire oltre.
Anche una soluzione che si rivela totalmente sbagliata è un insegnamento di successo: ci evita lo spreco di realizzare un prodotto/servizio che non ha valore per l’utente finale e ci offre l’opportunità di investire meglio le nostre risorse.
A conti fatti se non puoi fallire, non puoi imparare.
Build, measure, learn