Hva er Lean Software Development?
Lean Software Development er et paradigme som beskriver et teoretisk ideelt sett med omstendigheter for programvareoppretting. Det er viktig å tenke på Lean Software Development som bare en av mange teorier om programvareutvikling, med hver sine fordeler og ulemper. Når du bruker Lean Software Development-modellen, er det syv viktige punkter å forstå: eliminere avfall, forsterke læring, sen beslutningstaking, rask levering, team empowerment, integrity building, og visualisering av helheten.
Eliminering av avfall er både et mål og tidsbesparende mål. Ved å redusere mengden av overskuddskode og overflødige funksjoner i Lean Software Development, sparer programvareutviklingsteamet penger og leverer strammere kode til sluttbrukeren. Dermed er programmer laget med Lean Software-modellen mindre ressurskrevende og mer fokuserte.
Læringsforsterkning i Lean Software Development refererer til konseptet å bruke korte sykluser mellom testfaser. I teorien gir dette mer konstant tilbakemelding til ingeniørene, som igjen gjør det mulig å identifisere problemer tidligere i utviklingskjeden. Sluttbrukerne er inkludert i disse fasene, og sikrer at beta-versjonene av programmet tilfredsstiller deres behov.
Sen beslutningstaking gir ekstra fleksibilitet i designplanen, slik at beslutninger bare kan tas når det maksimale antall fakta er samlet. For eksempel kan det forekomme som en god ide å bestemme seg for utvikling av at X skal ha funksjoner A, B og C, før inntesting på bakken avslører at disse funksjonene ikke er mulig å fullføre i tide. I Lean Software Development ville beslutningen om å inkludere A, B og C bli forsinket til det var sikkert om det faktisk var mulig.
Rask levering refererer til en preferanse for å gi sluttbrukeren en fungerende betamodell så raskt som mulig - muligens når programmet er 85 til 90 prosent komplett - og fortsette å lappe og oppgradere den modellen i løpet av programmets levetid. Dette står i kontrast til å vente til programmet er 100 prosent komplett og levere det da. I teorien gjør dette at sluttbrukeren kan presse mer liv ut av programmet, sammen med at utviklingsgruppen gir ytterligere tilbakemeldinger fra de fungerende betamodellene.
Team empowerment betyr å gi teamet mer autonomi under programmeringsprosessen. Som et resultat vil de teoretisk sett bli mer investert i prosjektet. I tillegg betyr det å gi dem tilgang til kundene, nøyere samsvar med forventningene til faktisk levering.
Til slutt fokuserer integritet på å se helheten og se på programmet som en enhet. Kontrast dette med andre systemer, som ser på et program som en patchwork-samling av forskjellige systemer. Denne "store bilde" tankegangen teoretisk gir et mer komplett produkt, ettersom hele teamet er på samme side når det gjelder det ferdige produktet.