Hur kan Agila metoder hjälpa oss att undvika misslyckade utvecklingsprojekt?

Systemutveckling är ett komplex åtagande och under framtagandet av nya tjänster fås hela tiden nya insikter kring behov och möjliga lösningar samtidigt som interna och externa förutsättningar förändras. Det är kanske därför inte så konstigt att historien är kantad av misslyckade utvecklingsprojekt i olika former – IT-projekt där kostnaderna skenat, systemen inte motsvarat användarnas förväntningar eller där projekten dragit ut på tiden och tvingats avbrytas utan leverans.

Hur kan agila metoder hjälpa oss undvika misslyckade utvecklingsprojekt?

En av anledningarna till att kyrkogården med misslyckade utvecklingsprojekt är så full är att man många gånger försökt angripa systemutvecklingsprocessen som om det varit ett förutsägbart husbygge som kan utföras sekventiellt bara man följer en på förhand framtagen ritning.

Som ett svar på den sekventiella utvecklingsprocessen brister (mest känd som vattenfallsmodellen) föddes under 90-talet det agila tankesättet med mål att ge inblandade bättre verktyg att hantera den komplexitet som uppstår i samband med systemutveckling.

Agil utveckling

Det Agila arbetssättet är uppbyggt av en samling värderingar definierade i Manifesto for Agile Software där individer och interaktioner prioriteras framför processer och verktyg. Det centrala i det agila arbetssättet är att skapa för kunden värdefull programvara. Värde skapas främst genom att individer kontinuerligt jobbar tillsammans mot ett gemensamt mål. Fokus ligger på att ge de inblandade verktyg för att enklare kunna samarbeta och ger dem mandat att göra informerade vägval. Fokus är på transparens, deltagande och samspel.

I en agil utvecklingsprocess prioriteras fungerande programvara framför omfattande dokumentation då det är svårt, om inte omöjligt, att på förhand dokumentera vad som kännetecknar en framgångsrik tjänst på det sätt som den traditionella vattenfallsmodellen förespråkar. Istället väljer man att dela upp arbetet i mindre delar (iterationer om ca 3-4 veckor) för att efter varje iterations slut leverera efterfrågad funktionalitet som berörda intressenter kan utvärdera på egen hand. På så vis kan användarna ge värdefull feedback tidigt så att tjänsten kan förbättras kontinuerligt.

Kundsamarbete prioriteras framför kontraktsförhandling.
Det är genom att team-medlemmar från olika discipliner kontinuerligt samarbetar med kund som värde skapas och nya insikter fås. Genom att lära känna och sympatisera med de för vilka man tar fram IT-tjänsten ökar sannolikheten att ett bra jobb görs. Att som i traditionell systemutveckling involvera berörda intressenter i början och slutet av projektet räcker inte för att skapa tjänster som motsvarar deras behov och önskemål.

Anpassning till förändring prioriteras framför att följa en plan. När interna och externa förutsättningar ständigt förändras under tiden man tar fram en komplex mjukvarutjänst är det kritiskt för inblandade parter att kunna agera snabbt på förändring. Agila metoder rätt implementerade fungerar som en GPS som kan justera kursen när destinationen förändras. Teamet inspekterar var man är och vad som har hänt och har förmågan (i form av mandat och rätt verktyg) att agera snabbt och produktivt på förändring.

Slutord

Konceptet agilt arbetssätt handlar om att vara lättfotad och att snabbt anpassa utvecklingsarbetet när förutsättningarna förändras. Genom att arbeta agilt kan två av de vanligaste fällorna vid systemutveckling undvikas – att utvecklarna inte förstår varför och vad användarna vill åstadkomma med systemet och att beställarna har svårt att uttrycka sina behov då de inte vet vad de kan begära och vad de kan få.

Detta är ett av flera inlägg som kommer behandla olika aspekter av agil utveckling. Om någon har några frågor eller funderingar tveka inte att kontakta oss på Creating Value.

Image courtesy of jesadaphorn at FreeDigitalPhotos.net

FacebooktwitterFacebooktwitter

Lämna ett svar

Din e-postadress kommer inte publiceras.