måndag, 21 december 2009

Interaktionsdesign och agil systemutveckling

Går det att kombinera interaktionsdesign med agil systemutveckling?

Den senaste tiden har jag jobbat i projekt där det har varit väldigt mycket fokus på användarupplevelse. Det har varit i anslutning till att jag har jobbat med en produkt från Microsoft som heter Microsoft Surface. Microsoft Surface är en kombination av hårdvara och mjukvara i formen av ett bord som man kan styra med händerna.

Det ger helt nya utmaningar till mjukvaruutveckling eftersom att man kan vara flera personer som interagerar med en applikation samtidigt och på ett väldigt naturligt sätt. Då Surface har just formen av ett bord måste man tänka på hur man bygger ett gränssnitt som är lika tillåtande från alla sidor.

Man kan aldrig veta från vilket håll en användare kommer att använda applikationen. Traditionella mjukvaruapplikationer är ofta gjorda för att användas av en användare i taget, eller i alla fall en användare per dator. Det finns ett tangentbord, en mus och relativt begränsad med utrymme framför skärmen. Är man flera personer samtidigt blir det ofta en situation där en användare driver eller är förare och den andra blir en passagerare. Med Microsoft Surface måste man designa för att man ska kunna ha flera förare – samtidigt.


Som traditionell utvecklare kommer ofta användarupplevselsen lite i skymundan. Det är mycket fokus på funktionella krav som kommer direkt ifrån beställaren. I våra Surfaceprojekt har vi på Connecta samarbetat med ett annat företag som är specialister på just användarupplevelser vilket har varit en nyckel till framgång.

Interaktionsdesign (IxD) kan beskrivas som läran om produkter eller system som en användare kan interagera med. IxD definierar det beteende (interaktion) som ett system eller en artefakt ger som respons till sina användare. Enligt Wikipedias definition rör det framförallt datoranvändare men det kan också handla om mer traditionella produkter, tjänster eller organisationer.

Så nu är då frågan hur kan man kombinerar IxD med agil systemutveckling?
Man säger att ett agilt team ska vara tvärfunktionellt vilket då innebär att teamet ska innehålla all den kompetens som behövs för att uppfylla den vision som produktägaren har. Allt ifrån utvecklare, testare, arkitekter och databasspeciallister. Min syn på ett agilt team är att, om IxD är en viktig del av projektet så ska även Ix-designers vara en del av teamet. Olika projekt kräver olika sammansättningar av kompetens och i de Microsoft
Surface-projekt jag har jobbat i har det varit väldigt stort fokus på användarupplevelse.

Just därför har vi också haft stor andel Ix-designers i teamet. I mitt senaste projekt var det två Ix-designers och tre utvecklare.

En del argumenterar för att IxD alltid måste ligga en sprint före och skapa designspecifikationer som utvecklingsteamet ska implementera under kommande sprint. Jag håller med om att IxD måste ligga steget före men man får också vara försiktig. Det som blir den stora nackdelen är att det kan blir två olika team som jobbar parallellt istället för ett team som jobbar tillsammans.

Därmed blir det svårare att skapa ett effektivt samarbete där man lär av, och hjälper varandra. Det gör det svårare för produktägaren att ändra sig och en det ger en tröghet hela processen att realisera visionen. För att komma så nära det som beställaren vill ha när projektet är klart, måste man snabbt kunna ta emot förändringar.

Man skulle kunna se en del av IxD som en stödfunktion till produktägaren. Dvs det blir en del i den vision som han eller hon vill förmedla till teamet. Första delen av ett projekt, med stor fokus på användarupplevelse, handlar ofta om användarstudier om konceptutveckling. Leverabler kan vara personas, interaktionskartor,
konceptbeskrivningar, prototypskisser och skisser på användargränssnitt.

Parallellt med det kan en del av implementationsteamet börja jobba med en teknisk förstudie som kan handla om plattformsval eller verifiering av teknisk lösning. Den största delen av den totala tiden i denna fas läggs dock på IxD. När den första delen av projektet är klar flyttas fokus mer och mer mot implementationsteamet.

De börjar skriva user stories, skapa en produktbacklog och planera arbetet i sprintar. Under denna fas måste IxD leverera en så pass detaljerad specifikation så att implementationsteamet kan börja jobba i en första sprint. När första sprinten startar ligger fokus framförallt på implementationsteamet men i detta läge är det otroligt viktigt att IxD är med i utvecklingsarbetet och att alla jobbar som ett team.

Parallellt med jobbet i den aktuella sprinten måste också IxD jobba med det som kommer i följande sprint samt utvärdera det som levererades i föregående sprint. Jag tycker dock att fokus ska vara på den innevarande sprinten för att inte lägga för mycket jobb på det som kommer framöver. Det svåra blir att hitta en bra balans mellan att leverera idag och designa för imorgon.

Det går absolut att kombinera designers och utvecklares arbete i ett agilt projekt men det kräver en del eftertanke och planering för att få till ett bra arbetsflöde.

Mvh Björn Eriksen
Björn jobbar till vardags på Connecta som systemarkitekt.

 

Av Björn Eriksen 07:45

KOMMENTARER

Inlägget har 0 kommentarer

Skriv kommentar


 


 

Användarverifikation
Bild för användarverifikation