
I den här artikeln undersöker jag hur olika metoder för mjukvaruutveckling överlappar varandra för att belysa de gemensamma principerna.
För mer än tio år sedan studerade jagiterativa metoderoch använde ”Rational Unified Process – RUP” i mina uppgifter på fakulteten. Det var sista gången jag skrev otaliga dokument innan jag började med själva designen och kodningen. Jag ler när jag minns hur jag ritade dussintals detaljerade UML-diagram.
När jag började arbeta heltid var ett av mina första projekt att ta fram en uppsättningScrum-verktygför att underlätta ledningen av mjukvaruutvecklingsteam. Vi följde upp arbetsuppgifter, buggar, nedlagd tid, velocity och så vidare, med målet att skapa en bättre process. Scrum kändes alltid lite för mycket som en koreografi, och jag är inte säker på att de flesta någonsin förstod de underliggande principerna och värdet.
När jag gick över från projektinriktade företag till produktinriktade företag fick jag bekanta mig med metodernaKanban, Lean Startup,Design Thinking ochDesign Sprints. Det som imponerar mest med dessa metoder är framför allt de korta iterationerna och avsaknaden av strikta regler, vilket känns befriande. Dessa metoder fick mig att återigen fokusera på verkligheten genom konkreta mätvärden.
Nyligen upptäckte jagbegreppet ”kontinuerlig leverans”och det var en riktig aha-upplevelse. Jag insåg att det är den mest avancerade metoden för att regelbundet leverera värde och samtidigt automatisera repetitiva arbetsuppgifter.
I skärningspunkterna mellan olika metoder kan vi hitta liknande idéer:
Det här är inte alla principer som är gemensamma för olika metoder, men de viktigaste.
Skulle du kunna ta fram en egen metod genom att kombinera principerna ovan på olika sätt?Ja.
Kärnan i bra utvecklingsprocesser ligger i kombinationen av grundläggande principer, vilket också är en anledning till att det agila manifestet är lika relevant idag som det var 2001.
Och slutligen: spelar det verkligen någon roll vilken metod du använder, så länge du levererar verkligt värde regelbundet?