Vad är Lean Software Development?
Lean Software Development är ett paradigm som beskriver en teoretisk idealisk uppsättning omständigheter för skapande av programvara. Det är viktigt att tänka på Lean Software Development som bara en av många mjukvaruutvecklingsteorier, var och en med sina för- och nackdelar. När du använder Lean Software Development-modellen finns det sju avgörande punkter att förstå: eliminera avfall, förstärka inlärning, sen beslutsfattande, snabb leverans, team empowerment, integritetsuppbyggnad och visualisering av helheten.
Eliminering av avfall är både ett tids- och pengebesparande mål. Genom att minska mängden överskottskod och överflödiga funktioner i Lean Software Development sparar mjukvaruutvecklingsteamet pengar och levererar stramare kod till slutanvändaren. Således är program skapade med Lean Software-modellen mindre resurskrävande och mer fokuserade.
Lärningsförstärkning i Lean Software Development hänvisar till konceptet att använda korta cykler mellan testfaser. I teorin ger detta mer konstant feedback till ingenjörerna, vilket i sin tur gör det möjligt att identifiera problem tidigare i utvecklingskedjan. Slutanvändarna ingår i dessa faser, vilket säkerställer att betaversionerna av programmet uppfyller deras behov.
Sen beslutsfattande möjliggör ytterligare flexibilitet i designschemat, vilket gör att beslut kan fattas endast när det maximala antalet fakta har samlats in. Att till exempel besluta innan utvecklingen påbörjas att Program X ska ha funktioner A, B och C kan tyckas vara en bra idé tills testen på marken visar att dessa funktioner inte är möjliga att fullborda i tid. I Lean Software Development skulle beslutet att inkludera A, B och C försenas tills det var säkert om det faktiskt var möjligt.
Snabb leverans avser en preferens för att förse slutanvändaren med en fungerande betamodell så snabbt som möjligt - eventuellt när programmet är 85 till 90 procent komplett - och fortsätter att korrigera och uppgradera den modellen under programmets livslängd. Detta står i kontrast till att vänta tills programmet är 100 procent komplett och levererar det då. I teorin tillåter detta slutanvändaren att pressa mer liv ur programmet, tillsammans med att utvecklingsgruppen ger ytterligare feedback från de fungerande betamodellerna.
Team empowerment innebär att ge teamet mer självständighet under programmeringsprocessen. Som ett resultat kommer de teoretiskt sett att bli mer investerade i projektet. Dessutom innebär det att ge dem tillgång till kunderna, närmare anpassa förväntningarna till den faktiska leveransen.
Slutligen fokuserar integritet på att bygga och se helheten på att se programmet som en enda enhet. Kontrast detta med andra system, som ser ett program som en lappsamlingssamling av olika system. Detta "stora bild" sätt att tänka teoretiskt ger en mer komplett produkt, eftersom hela teamet är på samma sida när det gäller den färdiga produkten.