Hvad er Lean Software Development?
Lean Software Development er et paradigme, der beskriver et teoretisk ideelt sæt omstændigheder til oprettelse af software. Det er vigtigt at tænke på Lean Software Development som blot en af mange softwareudviklingsteorier, hver med deres fordele og ulemper. Når du bruger Lean Software Development-modellen, er der syv vigtige punkter at forstå: eliminere spild, forstærke læring, sen beslutningstagning, hurtig levering, team empowerment, integritetsopbygning og visualisering af helheden.
Eliminering af affald er både et tids- og penge-besparelsesmål. Ved at reducere mængden af overskydende kode og overflødige funktioner i Lean Software Development sparer softwareudviklingsteamet penge og leverer strammere kode til slutbrugeren. Programmer, der er oprettet ved hjælp af Lean Software-modellen, er således mindre ressourceintensive og mere fokuserede.
Læringsforstærkning i Lean Software Development refererer til begrebet brug af korte cyklusser mellem testfaser. I teorien giver dette mere konstant feedback til ingeniørerne, hvilket igen giver mulighed for at identificere problemer tidligere i udviklingskæden. Slutbrugerne er inkluderet i disse faser, hvilket sikrer, at beta-versionerne af programmet imødekommer deres behov.
Sen beslutningstagning giver mulighed for yderligere fleksibilitet i designplanen, hvilket gør det muligt kun at træffe beslutninger, når det maksimale antal fakta er samlet. F.eks. Kan det forekomme som en god ide at beslutte, inden programmet X begynder at udvikle, at program X skal have funktioner A, B og C, indtil on-the-ground-test afslører, at disse funktioner ikke er mulige at gennemføre til tiden. I Lean Software Development ville beslutningen om at inkludere A, B og C blive forsinket, indtil det var sikkert, om det faktisk var muligt.
Hurtig levering refererer til en præference for at give slutbrugeren en fungerende betamodel så hurtigt som muligt - muligvis når programmet er 85 til 90 procent komplet - og fortsætte med at lappe og opgradere denne model i løbet af programmets levetid. Dette står i kontrast til at vente, indtil programmet er 100 procent komplet og leverer det derefter. I teorien giver dette slutbrugeren mulighed for at skubbe mere liv ud af programmet sammen med at give udviklingsholdet mulighed for yderligere feedback fra de fungerende betamodeller.
Team empowerment betyder at give teamet mere autonomi under programmeringsprocessen. Som et resultat vil de teoretisk blive mere investeret i projektet. Derudover betyder det at give dem adgang til kunderne, så de bedre tilpasses forventningerne til den faktiske levering.
Endelig fokuserer integritet på at opbygge og se helheden på at se programmet som en enkelt enhed. Kontrast dette med andre systemer, der betragter et program som en patchwork-samling af forskellige systemer. Denne "store billed" måde at tænke teoretisk giver et mere komplet produkt, da hele teamet er på den samme side, når det kommer til det færdige produkt.