Proprio come un progetto è usato nella costruzione, e una ricetta è seguita quando si prepara un pasto, ci sono principi da seguire per un efficace sviluppo del software. Questi principi si riducono a ciò che di solito viene chiamato una metodologia di sviluppo del software. Una metodologia di sviluppo del software è imperativa in quanto contiene procedure che portano al successo di un progetto di sviluppo del software.
Senza seguire un progetto nella costruzione, i risultati sono disastrosi, e lo stesso vale per la costruzione di un prodotto software senza seguire i principi giusti. Mancherete molti passi cruciali e alla fine avrete una miriade di problemi di qualità del software. Come project manager, è vitale sapere che ci sono molti approcci da seguire per un progetto software, incluso l’approccio di sviluppo snello e che, se scelto correttamente, una metodologia di sviluppo software produrrà sempre un prodotto software di alta qualità.
Lean Software Development
La metodologia di sviluppo snello è un tipo di approccio agile che è stato fondato sui principi della produzione snella. La produzione snella comprende principi di grande successo che sono stati utilizzati per la prima volta dal Toyota Production System come pratica per gestire e ottimizzare il processo di produzione dei veicoli per aumentare il valore del cliente e ridurre al minimo gli sprechi.
Quindi, se i principi snelli hanno a che fare con la produzione di veicoli a motore, dove entra in gioco lo sviluppo del software? Sappiamo che la produzione e lo sviluppo del software sono diversi – la produzione comporta la creazione di prodotti fisici mentre il prodotto dello sviluppo del software è intangibile e il suo valore può essere percepito e creato solo all’interno delle menti del team di sviluppo.
La mappatura tra la produzione snella e lo sviluppo del software snello è nata nel 2003 in un libro intitolato “Lean Software Development: An Agile Toolkit” di Mary e Tom Poppendieck. Nel libro, i Poppendieck interpretano come i principi della produzione snella possono essere applicati in modo produttivo allo sviluppo del software. Sia la produzione che lo sviluppo del software seguono procedure ripetibili e necessitano di precisi standard di qualità. Fanno anche affidamento sul lavoro di squadra per essere portati a termine. Quindi, i sette principi di produzione snella possono essere applicati ed utilizzati nello sviluppo del software.
Sette principi snelli da seguire per lo sviluppo del software
Per consentire un modo più veloce di sviluppare prodotti software, gli approcci di sviluppo agile sono popolari per molte aziende di sviluppo. Tali aziende stanno già implementando i principi di sviluppo snello. Ecco i 7 principi lean che puoi applicare nei tuoi progetti di sviluppo software:
- Eliminare gli sprechi
Il primo principio da seguire nello sviluppo lean è quello di eliminare tutto ciò che non porta valore all’utente finale. Nello sviluppo del software, questo principio può essere implementato identificando prima il valore del prodotto software da costruire. Una volta fatto questo, diventerà più facile individuare gli ‘sprechi’ – tutto ciò che non aggiunge valore al prodotto ed eventualmente agli utenti, incluso il codice non necessario, i requisiti poco chiari, le caratteristiche extra, i processi, ecc. Anche altre fasi della metodologia che non portano valore devono essere rimosse. Ci sono strumenti che aiutano ad identificare gli sprechi nello sviluppo del software, inclusa la Mappatura del Flusso di Valore.
- Creare Conoscenza
Lo sviluppo del software è di per sé una progressione che genera conoscenza. Il principio di creare conoscenza incoraggia quindi i team di sviluppo ad avere le strutture giuste per permettere un apprendimento adeguato. Sembra semplice, ma il principio richiede una concentrazione e un impegno totali. Può essere implementato attraverso l’esecuzione di training, revisioni del codice, commenti adeguati al codice, programmazione a coppie, documentazione del progetto, sessioni di condivisione e altro ancora.
- Build Quality In
Un team di sviluppo snello dovrebbe assicurarsi che la sua attenzione sia sullo sviluppo della qualità nel prodotto. Non dovrebbero quindi dipendere dalla nozione di assicurare un prodotto finale non difettoso. Al contrario, i team dovrebbero continuare a migliorare il processo di sviluppo e smettere di disperdere i difetti nel prodotto fin dall’inizio per un prodotto finale funzionale.
- Fast Delivery
Le tecniche di sviluppo agile si concentrano sulla consegna del software il più velocemente possibile. Il Lean development, essendo un approccio agile, enfatizza anche la consegna veloce del software. Significa che un team di progetto deve consegnare un componente mirato agli utenti al momento giusto. Per il tuo team, crea flussi di lavoro uniformi e stabili che derivano dalla comprensione del valore del processo per facilitare risultati più veloci.
- Empowering Your Team
Empowering your project team richiede che tu rispetti tutti – le persone che lavorano insieme come una squadra dovrebbero rispettarsi a vicenda. Quando le cose vanno male, e la maggior parte delle volte lo faranno, non incolpare le persone. Come sostituto, controlla le lacune nel processo che potrebbero portare a sfide e conflitti. Creare un ambiente di lavoro favorevole per tutti e dare l’esempio. Inoltre, permetti ai membri del team di scegliere e identificare gli approcci e gli strumenti giusti per qualsiasi compito assegnato.
- Ritardo nel prendere decisioni
So che questo suona controverso poiché convenzionalmente tendiamo a lavorare con il prendere decisioni il più velocemente possibile. Come principio lean, decidere in ritardo non significa essere irresponsabili nel prendere decisioni. Invece, incoraggia un team di progetto a tenere le opzioni aperte per un periodo più lungo per raccogliere più dati e informazioni che possono aiutarli a prendere decisioni cruciali. Ritardare a prendere una decisione dà più tempo per imparare e acquisire più conoscenza che si traduce in decisioni ancora migliori. Di conseguenza, il vostro progetto non subisce gli impatti negativi che potrebbero derivare da un cattivo processo decisionale. Pensateci, preferireste prendere una decisione avventata e pentirvene dopo, o prendervi del tempo per raccogliere informazioni e prendere la decisione giusta?
- Ottimizzare il tutto
Per ottimizzare sempre l’intero processo di sviluppo e non solo i sottoprocessi. Se si aggiunge valore solo a uno o pochi processi, il prodotto finale ne risentirà e i risultati saranno sub-ottimizzati. Non dovreste lanciare un prodotto inferiore perché non avete avuto abbastanza tempo. Per affrontare la sub-ottimizzazione, il principio dell’ottimizzazione nel suo insieme incoraggia l’eliminazione dei viziosi cicli di sviluppo e test e invece di operare con capacità di lavoro molto migliori. Ottimizzare l’insieme permette l’identificazione dei flussi di valore del processo per una squadra completa che permette una consegna più veloce e preziosa. Quindi, concentrarsi sull’intero flusso di valore dall’inizio alla fine per raggiungere l’ottimizzazione.