Lean Software Development - An Agile Toolkit av Mary och Tom Poppendieck
Redan några sidor in i boken inser jag att det här kommer att bli en av klassikerna i systemutvecklingshyllan. Det är klart att den varma rekommendationen från en vän hjälpte till men boken är ovanligt välskriven. Lean Software Development – An Agile Toolkit lyfter blicken från detaljerna i olika utvecklingsmetoder som Scrum, XP, RUP etc till att diskutera principerna bakom dessa. Parallellt ger författarna en rad verktyg som med fördel kan användas vid mjukvarutceckling.
Exempel på verktyg är välkända agila tekniker som refactoring, iterationer och enhetstestning. Mindre kända tekniker (åtminstone för mig) är t ex set based development (grundidén är att man anger inom vilka ramar en lösning kan fungera istället för att specificera mer exakta villkor) eller pull systems. Verktygen är såpass generella att de kan användas i flera olika sammanhang och anpassas efter situationen.
Den tes som ligger till grund för boken är att traditionell systemutvecklingsmetodik och projektstyrning – med alla Gantt-diagram, Critical paths etc – är inspirierad av tillverkningsindustrin så som den såg ut för ca 30 år sedan. Emedan tillverkningsindustrin sedan länge lämnat detta bakom sig så står mjukvaruindustrin kvar i det gamla tänket. Visserligen pratas det mycket om agila metoder och många företag har börjat använda t ex Scrum för utveckling men intrycket är ändå att många framför allt i chefsposition ännu inte kommit så långt. Det kan också vara så att olika branscher har kommit olika långt i ett agilt tänkande.
Den stora förändring inom tillverkningsindustrin som ligger till grund för boken är det som kallas lean manufacturing. Lean manufacturing är baserat idéer från Toyota och andra Japanska biltillverkare vilka sopade mattan med sina amerikanska konkurrenter. Genom ett flexibelt och intelligent ledarskap lyckades japanerna tillverka bättre bilar, till ett billigare pris och dessutom mycket snabbare.
Paret Poppendieck är noga med att poängtera att biltillverkarnas processer och metoder inte går att applicera på mjukvarutveckling rakt av men däremot är de principer som dessa baseras på antagligen universella för framgångsrik utveckling inom ett snabbrörligt område (traditionella metoder som CPM mfl är mer lämpade i en mer statisk miljö). Dessa principer är
- Eliminate waste
- Amplify learning
- Decide as late as possible
- Deliver as fast as possible
- Empower the team
- Build integrity in
- See the whole
Boken är speciellt lämpad för chefer, beställare och andra beslutsfattare. Till skillnad från annan Agile-litteratur så lyckas den verkligen förmedla varför agila metoder är bra även ur ett affärsperspektiv.