Att integrera interaktionsdesign i agila utvecklingsprojekt

2013-01-15 Artikelbanken Test Läst 9598 gånger

Agila utvecklingsmetoder som SCRUM har blivit mycket populära i olika IT-projekt. En intressant fråga som har uppstått är hur användarcentrerat arbete som till exempel interaktionsdesign kan kombineras med den agila utvecklingsprocessen.

Det har hittills inte gjorts särskilt mycket forskning på hur man använder sig av interaktionsdesign i agila projekt och detta leder till flera utmaningar både gällande det traditionella sättet att se på agila utvecklingsprojekt och utmaningen som interaktionsdesigners ställs inför gällande själva designprocessen. I den här artikeln kommer jag att beskriva och diskutera utmaningarna med att integrera interaktionsdesign i agila projekt, effekten av att göra det samt interaktionsdesignerns roll i det agila teamet.

Bakgrund

Agila utvecklingsprojekt som arbetar enligt exempelvis XP eller SCRUM har de senaste åren anammats av många organisationer med anledning av metodernas fördelar över traditionella utvecklingsmetoder. Fördelarna med agila utvecklingsprojekt är bland annat regelbundna leveranser och anpassning till förändringar som uppstår under processens gång.

Styrkan inom agila utvecklingsprojekt är det iterativa tillvägagångssättet och regelbundna leveranser. Samtidigt leder detta till att det blir kort om tid till nästa deadline vilket kan vara ett problem vid användbarhetsrelaterat arbete som interaktionsdesign. Tiden det tar att förstå användarnas behov och därefter visualisera detta i form av prototyper blir helt enkelt lidande på grund av det snabba tempo som agila utvecklingsprojekt medför.

Interaktionsdesign är ett begrepp som grovt kan översättas till design av interaktiva produkter, system och enheter. Interaktionsdesign har stort fokus på användarcentrering där syftet är att tillfredsställa användarnas behov och önskemål.

Användarcentrerat arbete kännetecknas av flera olika tillvägagångssätt och metoder, bland annat skapandet av personas som representerar den tilltänkta målgruppen och prototyping som är en metod där man visualiserar den slutgiltiga produkten eller systemet. Prototyping är egentligen den primära metoden som interaktionsdesigners använder sig av i syfte att bland annat ta reda på om man bygger rätt system.

Interaktionsdesign kan grovt delas in i 2 områden:

Gränssnittsdesign som innebär att visa på funktioner och att utforma den grafiska layouten, till exempel areaindelning på en webbplats.

Beteendedesign som innebär att designa en produkts eller ett systems funktioner och visa hur dessa ska uppföra sig vid användning, exempelvis hur navigeringen ska utformas och fungera för att en användare på ett enkelt sätt ska kunna navigera runt på webbplatsen.

Interaktionsdesignern är den person som ansvarar för att ett användarcentrerat tillvägagångssätt inkluderas i ett projekt.

Interaktionsdesign och agil utveckling strävar egentligen mot samma mål men har olika perspektiv på mjukvaran. Interaktionsdesign har fokus på slutanvändarna och hur de kommer att interagera/arbeta med mjukvaran, medan agil utveckling har fokus på hur mjukvaran skall konstrueras med avseende på implementation av kod under sprintarna. Gemensamt för både interaktionsdesign och agil utveckling är synsättet att skapa användbara system/produkter samt tonvikten på utvärdering av kundens tillfredsställelse.

Utmaningar för interaktionsdesign och interaktionsdesignern i den agila världen

Teamet i agila projekt består av olika roller; vanligtvis produktägare, utvecklare, testare och en projektledare/Scrum Master. Agila projekt medför flera utmaningar för interaktionsdesigners förutom det pressade tidsschemat, exempelvis nya arbetssätt som interaktionsdesigners måste anpassa sig till och inte minst anpassning till teamet som är ett kärnbegrepp i den agila filosofin.

En utmaning är att skapa interaktionsdesign parallellt med att mjukvaran implementeras vilket kan medföra negativa effekter. Detta gör att interaktionsdesign kan komma att ses som en flaskhals för utvecklingsteamet eftersom utvecklarna helt enkelt måste vänta på att designen först skapas för att därefter implementeras vilket går emot den agila approachen.

En annan utmaning är relaterad till kraven. Interaktionsdesigners kan sägas anamma en så kallad ”holistisk approach” där kraven oftast redan är färdigställda innan implementationen tar vid. Holistisk approach kan sägas vara ett synsätt där interaktionsdesigners antar att kraven redan är färdiga och att de kan användas som underlag för att skapa en design, vilket interaktionsdesignern gör. I ett typiskt projekt, i detta fall ett vattenfallsprojekt, där interaktionsdesign är i fokus kan till exempel se ut på följande sätt:

1. Kravdokumentationen gås igenom
2. Skapandet av flöden och systemets beteenden
3. Konsensus och godkännande
4. Skapandet av wireframes, det vill säga en low-fidelity representation av systemets layout
5. Presentation av wireframes, konsensus och godkännande
6. Skapandet av detaljerad prototyp
7. Presentation av prototyperna, konsensus och godkännande

I den agila utvecklingen som anammar en inkrementell approach börjar utvecklarna redan från start med implementationsarbetet innan alla kraven är kända och där nya krav kan framkomma under projektets gång.

Lösning och strategier, interaktionsdesign i agila projekt

Det finns flera strategier på hur man kan introducera användbarhetstrelaterat arbete, i det här fallet interaktionsdesign i agil utveckling. Här kommer jag att presentera två förslag:

1. Design up front
2. Sammanfogad process

Det finns inte en optimal universallösning som passar i alla situationer utan projektets omfattning, budget och tidsram är avgörande för vilken strategi som passar bäst.

Design Up Front är en sekventiell approach där en stor del av designen är skapad up-front innan implementationen tar vid och guidar resten av utvecklingsaktiviteterna. Interaktionsdesign i det här fallet blir en separat process i den agila utvecklingen där designen som skapas syftar till att täcka majoriteten av sprintarna framöver. Interaktionsdesignaktiviteterna är bland andra kartläggning av användarnas behov och mål, konkreta designaktiviteter, beteendedesign samt gränssnittsdesign.

Fördelar med det här synsättet är att systemet/produkten är designad innan implementationen påbörjas vilket gör att teamet får en bild över det som ska utvecklas och de får en mer solid grund att stå på. Att design up front innan implementationen påbörjas kan leda till positiva effekter eftersom beställarens samt slutanvändarnas behov och mål redan har kartlagts vilket får positiva effekter på slutresultatet. Andra fördelar är att själva interaktionsdesignen som skapas är kostnadseffektiv då de skapade prototyperna till skillnad från koden relativt lätt kan omarbetas och ändras i efterhand. Det är alltid enklare och billigare att förkasta ett visualiserat förslag gjort i till exempel Adobe Fireworks, Mockups eller Visio än att ändra i koden i efterhand.

En utmaning med att design up front är relaterat till ändringarna som kan uppstå under utvecklingens gång. Kraven kan helt enkelt komma att ändras i den agila processen vilket gör att designen i sin tur kan komma att ändras beroende på kravändringens storlek. Detta leder till den viktiga frågan om hur mycket av systemet som faktiskt borde designas up-front. Ett förslag är att designen inte bör vara klar till 100 %, utan kanske upp till 70 % – 80 % vilket ger utrymme för ändringsförslag under sprintarna där detaljer som till exempel färgval för knappar och mindre designändringar kan ändras i efterhand under sprintarnas gång.

En annan utmaning med den här approachen är att interaktionsdesign i sig inte bara handlar om konkret designarbete utan involverar nära sammarbete med flera olika aktörer, bland annat slutanvändare, produktägare och kravanalytiker. Att skapa användbar gränssnittsdesign och beteendedesign genom att använda den här approachen kräver information från flera olika intressenter och är nödvändigt i syfte att minimera risken där ”fel” design skapas som i sin tur gör mer skada än nytta i utvecklingsprojektet. Detta gör att en relativt stor del av tiden måste allokeras för detta arbete vilket inte alltid är möjligt.

I det här fallet är interaktionsdesignern inledningsvis till stor del avskärmad från teamet. När utvecklingsarbetet påbörjas och designen till stor del är skapad är interaktionsdesignern en del av teamet och fungerar som stöd till utvecklarna och ansvarar för skapandet av nya designrevisioner.

Interaktionsdesign och agil utveckling som en process är en strategi där interaktionsdesign och agil utveckling sammanfogas och gemensamt bildar en process. Synsättet här är att aktiviteterna som en interaktionsdesigner utför görs parallellt med de agila utvecklingsaktiviteterna. Designen skapas under sprintarnas gång och är ett tillvägagångssätt där designen växer i relation till hur mycket som implementeras, det vill säga en slags evolutionär design. Designen som skapas i det här fallet är, till skillnad från Design up front strategin, begränsad på det sätt att bara det som skall implementeras vanligtvis för de närmaste en till två sprintarna framåt är designat samtidigt som det som är implementerat senast utvärderas.

Som jag redan tidigare har beskrivit är detta en utmaning eftersom arbetet med att skapa interaktionsdesign kan ses som en flaskhals under processens gång. Lösningen och tricket för att lyckas med detta är att interaktionsdesignen måste vara före utvecklingen genom att täcka det som skall utvecklas i exempelvis de kommande två sprintarna. Till exempel kan det vara så att under sprint 3 jobbar utvecklarna med implementationsarbetet där interaktionsdesign som skapades i sprint 1 och 2 används som underlag. Interaktionsdesignern i sin tur skapar interaktionsdesign för sprint 4 och 5.

I det här fallet, liksom i den tidigare strategin, är det viktigt att den design som skapas inte försöker täcka 100 % av de framtida sprintarna. Detta för att ge utrymme för ändringsförslag för ändringar som kan uppstå.

Även i det här fallet involverar interaktionsdesignsarbetet mer aktiviteter än enbart konkret design. Det är viktigt att interaktionsdesignern på något sätt gör en utvärdering över de skapade lösningarna och helt enkelt får feedback från dels produktägaren och dels slutanvändarna. Detta kan göras med hjälp av användbarhetstester på prototyperna vilket är en mycket effektiv metod för att identifiera potentiella användbarhetsproblem. Detta är självklart direkt beroende på sprintarnas längd - om sprintarna är korta kan det bli väldigt kort om tid för att utföra dessa typer av tester.

I det här fallet är interaktionsdesignern en självklar del av det agila teamet och är en tillgänglig resurs som fungerar som stöd för teamet.

Oavsett vilken strategi och tillvägagångssätt som används för att introducera interaktionsdesign i agila projekt kommer detta med största sannolikhet att ge mervärde i form av önskade effekter. Det finns mycket man skulle kunna skriva om ämnet i fråga och i den här artikeln har jag mer eller mindre enbart nuddat vid ytan på hur man skulle kunna göra. Att anpassa interaktionsdesign i agila projekt är inte lätt på grund av olika utmaningar som finns. Det som är anmärkningsvärt med agila utvecklinsprojekt är styrkan med fokus på teamet och teamets sammarbetet för att nå användbara system. Läggar man till ytterligare en instans i teamet i form av en interaktionsdesigner och överbryggar dessa utmaningar, finns mycket som talar för att produkterna eller systemen som utvecklas blir mer användbara i slutändan.

Sammanfattning

Det finns starka paralleller mellan integration av testrollen i agila projekt och interaktionsdesign i agila projekt. Till exempel har det historiskt sett funnits en organisatorisk gräns mellan utveckling och test med skilda avdelningar, men dessa organisatoriska gränser har börjat suddas ut genom att test och utvecklingsarbetet planeras och utförs i nära relation. I scrumprojekt är detta tydligt där testarna är spridda i utvecklingsteamet som ansvarar för att mjukvaran är utvecklad och testad. Man har lärt sig med till exempel scrum i spetsen hur test förhåller sig till utveckling där testaren tillsammans med utvecklarna levererar resultat. Jag vill påstå att exakt detsamma gäller för interaktionsdesign och agila utvecklingsprojekt.

Nästa steg

För att lära dig mer om hur du tar fram personas rekommenderar jag att du läser artikeln Personas - din bild av slutanvändaren i Faktabanken. Om du vill lära dig mer om användningstester rekommenderar jag Bekräfta användarupplevelser tidigt. Om du vill lära dig mer om agila arbetssätt finns Agil test - vilka utmaningar får du? eller Teamet är nyckeln till agil framgång! som kan hjälpa dig på vägen.

Dessutom passar naturligtvis några av våra kurser som nästa steg:

  • Kursen Effektiv kravhantering - lär dig mer om agila arbetssätt inom kravhantering och användning av prototyper i kravarbetet med hjälp av verktyg som Balsamiq Mockups och Microsoft Visio.
  • Kursen Kravledning - metoder för planering, smart kravinsamling, modellering, spårbarhet och effektuppföljning. Inkluderar bland annat tekniken personas.
  • Kursen Agil test - arbetsgång och tekniker för att lägga upp testarbetet i en agil miljö.

KONTAKTA OSS

Har du frågor? Vill du ha hjälp med områden inom kravhantering och test?
Hör av dig till oss! Vi hjälper dig gärna. 

Kontakt 

Dela artikeln