Lean software development
Il Lean Software Development è una traduzione della Produzione Snella (in nglese lean manufacturing o lean production) e dei principi e pratiche del Lean IT nel dominio dello sviluppo software. Adattato dal Toyota Production System, una sottocultura pro-lean sta rapidamente emergendo dall'interno della comunità Agile
Origini
Il termine Lean Software Development ha avuto origine in un libro omonimo, scritto da Mary Poppendieck e Tom Poppendieck. Il libro presenta i tradizionali Principi Snelli in forma modificata, così come un insieme di 22 tool che vengono confrontati e comparati con le pratiche agili. Il coinvolgimento di Mary e Tom nelle comunity legate all' Agile software development, incluso la loro presenza come relatori a numerose conferenze Agili, ha fatto si che tali concetti fossero più ampiamente accettati e condivisi all'interno della comunità Agile.
Principi Lean
Lo sviluppo Lean potrebbe essere riassunto da sette principi, molto vicini concettualmente a quelli della Produzione snella.
Eliminare gli sprechi
Tutto ciò che non aggiunge valore al cliente va considerato come uno spreco (muda). Questo include:
- codice e funzionalità non necessarie
- delay in the software development process
- requisiti incerti
- burocrazia
- lenta comunicazione interna
Amplificare l'apprendimento
Lo sviluppo del software è un processo di apprendimento continuo con la sfida aggiuntiva dei team di sviluppo e delle dimensioni del prodotto finale. L'approccio migliore per migliorare un ambiente di sviluppo software è quello di massimizzare l'apprendimento.
Decidere il più tardi possibile
Dato che lo sviluppo del software è sempre associato con qualche incertezza, i risultati migliori dovrebbero essere raggiunti con un approccio basato sulle opzioni, rinviando le decisioni il più possibile fino a che non può essere effettuata sulla base di fatti e non su previsioni ed ipotesi incerte.
Consegnare il più velocemente possibile
Nell'era della rapida evoluzione tecnologica, non è il più grande che sopravvive, ma il più veloce. Quanto prima il prodotto finale viene fornito senza difetti considerevoli, tanto prima posso essere ricevuti i feedback, ed inseriti nella prossima iterazione. Quanto più corte sono le iterazioni, tanto migliore sarà la formazione e la comunicazione all'interno del team.
Autorizzare il team
Per lungo tempo c'è stata un'opinione diffusa, nella maggior parte delle aziende, riguardo al processo decisionale per l'organizzazione: i dirigenti erano abituati a dire ai lavoratori come svolgere il proprio lavoro. Nella tecnica work-out, i ruoli si trasformano: ai manager si insegna ad ascoltare gli sviluppatori, in modo da poter essere in grado di spiegare meglio le azioni che possono essere adottate, nonché fornire proposte di miglioramento.
Integrità nella costruzione
Il cliente deve avere una esperienza complessiva del sistema - questa è la cosidetta integrità percepita: il modo in cui viene pubblicizzato, consegnato, diffuso, accesso, quanto intuitivo è il suo utilizzo, il prezzo e quanto risolva dei problemi.
Vederre il tutto
I sistemi software al giorno d'oggi non sono semplicemente la somma delle loro parti, ma anche il prodotto delle loro interazioni.
Voci correlate
Note
Collegamenti esterni
- Poppendieck LLC website - sito di Mary e Tom Poppendieck (in inglese)
- Intervista con Mary Poppendieck (in inglese)
- Lean Software Institute
- Introduzione al Lean Software Development - H. Kniberg (in inglese)
- Metodologia "Lean Software Development" - descrizione della metodologia nel sito di Open Ware.