Effektivitetsoptimering och kostnadsminimering är två viktiga komponenter i Lean-metoden för mjukvaruutveckling, som redan har testats av många IT-företag i praktiken.
Rötterna till denna metod går tillbaka till den välkända biltillverkaren Toyotas historia och bygger på dess problemlösningsmetoder. Det handlar om att endast göra de förändringar som är fördelaktiga och som samtidigt kräver minimala kostnader och inte tar för lång tid att genomföra.
I samband med programvaruutveckling behandlades Lean-metodiken för första gången av Mary Poppendieck och Tom Poppendieck, som publicerade boken “Lean Software Development” 2003. I boken beskrivs de traditionella principerna för lean produktion i förhållande till programvaruutveckling, liksom en uppsättning av 22 verktyg (metoder) och deras jämförelse med agil utvecklingsmetodik.
Lean Software Development – är inte en metodik för förvaltning av projektutveckling, vilket den kan tyckas vara vid första anblicken. Det är en uppsättning principer som används i olika projekt för att förbättra utvecklingsprocessen och öka dess effektivitet.
De 7 principerna för lean mjukvaruutveckling
I kärnan av lean utveckling ligger ett antal viktiga principer som förblir praktiskt taget oförändrade under de senaste åren. Låt oss försöka förklara dem med korta och enkla ord.
1. Eliminera slöseri. Inom apputveckling är slöseri allt som inte ger kunden något affärsmässigt värde och som inte förbättrar kvaliteten på den produkt som utvecklas eller snabbar upp projektets lanseringstid.
Med andra ord är det här det som vi spenderar pengar på och som vi inte får någon vinst från. Till exempel oanvänd kod och onödiga funktioner som inte tillför ytterligare värde för både användaren och verksamheten, men som kräver tid för diskussion, utveckling, testning och dokumentation.
2. Förstärk lärandet. För att teamet ska kunna utveckla ett system som ger kunden ett affärsmässigt värde måste de ha ett brett spektrum av färdigheter. Teamet måste samla kunskap och dela med sig av den, till exempel i form av en genomgång i slutet av iterationen.
En del av det nya lärandet kommer att vara tekniskt och andra, tvärtom, klassificeras som icke-funktionella krav. Till exempel att ha en förståelse för vad en affärsanvändare verkligen vill ha, och inte vad utvecklarna föreställer sig. Därför måste teamet ständigt utvecklas, lära sig och samla kunskap. På så sätt kan teamet undvika problem i framtiden.
3. Bestäm dig så sent som möjligt. Huvudtanken här är att vänta till sista stund innan man fattar något beslut, särskilt oåterkalleliga beslut. Detta gäller särskilt när vi talar om beslut som kan ha en betydande inverkan på utvecklingens framgång.
Alla beslut måste stödjas av analysdata och resultat från processövervakningen, annars riskerar teamet att absorberas av alltför många förändringar och kanske glömma projektets huvudsyfte.
Desto senare du fattar ett beslut, desto mer färdigheter och förståelse har du, och desto mindre behöver du göra om senare.
4. Leverera så snabbt som möjligt. Detta är grunden för iterativ utveckling. Ju snabbare du visar ditt grundarbete för kunden, desto snabbare får du hans återkoppling och därmed kommer han att få produkten med de nödvändiga förbättringarna mycket tidigare.
En intressant affärsfunktion som gick i produktion på några månader kan i slutändan visa sig vara helt värdelös. Men om den släpptes inom två veckor kan den visa sig vara till nytta för kunden.
5. Stärk teamet. Programvaruutveckling är en process av mentalt arbete, så behandla människor som kompetenta, motiverade yrkesmänniskor, snarare än yrkesmänniskor med smala färdigheter i att skriva kod eller rita diagram.
För att människor ska kunna ta ansvar, vara motiverade och arbeta som ett stabilt team, bör de vara medvetna om sitt bidrag till den produkt som håller på att utvecklas. Det är nödvändigt att skapa förutsättningar där varje person kan fokusera på att arbeta med den aktuella affärsuppgiften.
Förtro ditt team och respektera det. Den mänskliga faktorn är en av de viktigaste faktorerna för framgångsrik programvaruutveckling.
6. Bygg integritet i. Enligt principerna för leanutveckling kan ett problem antingen upptäckas efter att det har uppstått, eller så kan du eliminera orsakerna som leder till ett problem i förväg.
Författarna till Lean Software Development föreslår att du löser kvalitetsproblemet direkt när det börjar dyka upp – till en början genom att lägga kvaliteten i produkten och inte lämna identifieringen och korrigeringen av fel till testning eller produktion. För detta är det värt att röra sig i små steg och kontrollera kvaliteten efter varje steg.
7. Se helheten.
Det viktigaste sättet att lösa problem är att bryta ner dem i mindre problem och konsekvent eliminera orsakerna till att de uppstår. Men för att kunna se roten till problemet bör teamet ha en god övergripande förståelse för den aktuella utvecklingsprocessen, konceptet och strategin för den produkt som utvecklas.
Sammanfattning
I den här artikeln får du veta mer om principerna för Lean Software Development, som du kan tillämpa när du arbetar med projekt i ditt team. Det kan mycket väl vara så att du på så sätt kan förbättra effektiviteten och optimera processerna.
Det är nödvändigt att förstå att vi talar om principer och inte strikta regler. Därför måste man anstränga sig lite för att effektivt anpassa dem till specifika förhållanden i ditt projekt.
Vill du starta ett projekt?
Vårt team är redo att genomföra dina idéer. Kontakta oss nu för att diskutera din färdplan!
>