Che cos'è lo sviluppo software Lean?
Lean Software Development è un paradigma che descrive un insieme teorico ideale di circostanze per la creazione di software. È importante pensare a Lean Software Development come a una delle tante teorie sullo sviluppo del software, ognuna con i suoi pro e contro. Quando si utilizza il modello di sviluppo software Lean, ci sono sette punti cruciali da comprendere: eliminare gli sprechi, amplificare l'apprendimento, il processo decisionale tardivo, la consegna rapida, l'empowerment del team, la costruzione dell'integrità e la visualizzazione del tutto.
L'eliminazione degli sprechi è sia un obiettivo di risparmio di tempo che denaro. Riducendo la quantità di codice in eccesso e le funzioni superflue in Sviluppo software snello, il team di sviluppo software consente di risparmiare denaro e fornire un codice più stretto all'utente finale. Pertanto, i programmi creati utilizzando il modello Lean Software richiedono meno risorse e sono più mirati.
L'amplificazione dell'apprendimento nello sviluppo di software snello si riferisce al concetto di utilizzo di cicli brevi tra le fasi di test. In teoria, questo fornisce un feedback più costante agli ingegneri, a sua volta, consentendo di identificare i problemi prima nella catena di sviluppo. Gli utenti finali sono inclusi in queste fasi, garantendo che le versioni beta del programma soddisfino le loro esigenze.
Il processo decisionale tardivo consente un'ulteriore flessibilità nel programma di progettazione, consentendo di prendere decisioni solo dopo aver raccolto il numero massimo di fatti. Ad esempio, decidere prima di iniziare lo sviluppo che il Programma X dovrebbe avere le Funzionalità A, B e C potrebbe sembrare una buona idea, fino a quando i test sul campo rivelano che tali funzionalità non possono essere completate in tempo. In Lean Software Development, la decisione di includere A, B e C sarebbe stata ritardata fino a quando non fosse stato certo se fosse effettivamente possibile.
La consegna rapida si riferisce a una preferenza per fornire all'utente finale un modello beta funzionante il più rapidamente possibile - possibilmente quando il programma è completo dall'85 al 90 percento - e continuare a patchare e aggiornare quel modello per tutta la durata del programma. Ciò è in contrasto con l'attesa che il programma sia completo al 100 percento e che poi lo consegni. In teoria, ciò consente all'utente finale di spremere più vita dal programma, oltre a consentire al team di sviluppo un ulteriore feedback dai modelli beta funzionanti.
Responsabilizzazione del team significa dare al team maggiore autonomia durante il processo di programmazione. Di conseguenza, teoricamente diventeranno più investiti nel progetto. Inoltre, significa fornire loro l'accesso ai clienti, adattando più da vicino le aspettative alla consegna effettiva.
Infine, la costruzione dell'integrità e la visione del tutto si concentrano sulla visualizzazione del programma come una singola unità. In contrasto con altri sistemi, che vedono un programma come una raccolta di patchwork di sistemi diversi. Questo modo di pensare "in generale" fornisce teoricamente un prodotto più completo, poiché l'intero team è sulla stessa pagina quando si tratta del prodotto finito.