Smidige utviklingsprosjekter
For meg handler smidige utviklingsprosjekter om å gi kunden maksimal verdi fra programvaren som utvikles gjennom å oppfordre til- og ta imot endringsønsker etter hvert som kundens og utviklingsteamets forståelse av programvaren endrer seg. For å oppnå smidighet til og raskt legge til ny, eller endre eksisterende funksjonalitet, benytter vi oss av smidige metodikker som XP, Scrum eller Lean. Smidige metoder hjelper oss å organisere og prioritere oppgavene som skal løses, håndtere endringsønsker, planlegge iterasjoner og bygge inn kontrollpunkter hvor kunden får demonstrert programvaren som utvikles. For å oppnå nødvendig endringsevne i koden benyttes ofte teknikker som testdrevet utvikling. Men hva kan vi gjøre for å bli mer smidig i måten vi jobber med brukeropplevelse?
Smidig utvikling av brukeropplevelse
Brukeropplevelse er et vidt begrep som blant annet omfatter skjermbildestruktur, hjelpetekster, bruk av bilder og symboler, responstid, animasjoner, interaksjon mellom elementer og skjermbilder, og det grafiske uttrykket til applikasjonen.
I dag er brukeropplevelse ofte en nedprioritert del av utviklingsprosjekter. Kunden uttrykker ofte ønsker om at programvaren skal være brukervennlig og se bra ut, uten å sette målbare krav for om dette oppnås. Sjelden benytter vi oss av interaksjonsdesignere, grafiske designere eller eksperter på brukskvalitet. Brukeropplevelsen blir det som regel opp til utviklerne å realisere etter beste evne. Som regel betyr dette at man går rett i gang med implementering av skjermbildene i kode. Enten som HTML og CSS om man bygger en webapplikasjon, XAML og Flash om man lager en rik internettapplikasjon, eller C# og Java om man bygger en desktop-applikasjon. Ved slutten av en iterasjon demonstreres funksjonaliteten som er implementert og kunden får mulighet til å komme med tilbakemeldinger. Erfaringer fra slike demonstrasjoner er ofte at kunden henger seg opp i uviktige detaljer som at en knapp må 25px til venstre, eller at tittelen må være ”større og blåere”. Sjelden får vi mer fundamentale tilbakemeldinger om omorganisering av skjermbildestruktur, navigasjonsstruktur eller hvordan brukeren løser en oppgave i et skjermbilde. Så lenge det fungerer, og tittelen er stor og blå, er kunden fornøyd.
Om tilbakemeldingene skulle gå på større omstruktureringer av brukeropplevelsen i applikasjonen er ofte utviklerne lite villige til å gjøre dette. De har tross alt lagt ned mye arbeid i å implementere løsningen. Brukergrensesnittkode er ofte vanskeligere å endre siden vi som regel ikke har samme testdekning eller refaktoreringsstøtte som for forretningslogikken.
Papirprototyper
En mye brukt teknikk fra brukskvalitet fagfeltet er papirprototyper. Teknikken går ut på å lage enkle papirprototyper av skjermbildene som skal lages. Skjermbildene kan testes ut på brukere som blir bedt om å utføre oppgaver. Flyten mellom bildene ”styres” manuelt ved at man bytter ut arkene etter hvert som brukeren forsøker løse oppgaven. På denne måten kan man identifisere svakheter i designet og prøve ut nye ideer. Siden kosten av å lage nye forslag og prototyper er ekstremt lav kan vi forkaste ideer som ikke fungerer.
Om du ikke ønsker å tegne prototypene for hånd har det den siste tiden kommet flere gode verktøy som baserer seg på de samme prinsippene som papirprototyping. Et utmerket eksempel på dette er Balsamiq. Ved hjelp av et stort bibliotek håndtegnede komponenter kan du sette sammen en skjermbildeprototype i løpet av minutter. Ved å begynne arbeidet med brukeropplevelsen i et verktøy som Balsamiq kan du få viktige tilbakemeldinger fra kunden mye tidligere, samtidig som du kan lage flere alternativer enn om du begynner å lage skjermbildene direkte i kode. Det håndtegnede utseende på prototypene gjør at kunden ikke tror dette er det endelige designet, men en prototype som kan forkastes uten at mye arbeid går tapt.
Fra statiske skjermbilder til interaktiv prototype
Statiske skjermbilder er ikke alltid nok til å teste brukeropplevelsen i en applikasjon. For å virkelig kunne prøve ut ideer trenger vi interaktive prototyper. Her finnes det også verktøy som kan være til stor hjelp. Nylig lanserte Microsoft verktøyet SketchFlow. Som navnet tilsier er dette er verktøy som lar deg prototype flyten mellom skjermbildeskissene dine. I SketchFlow kan man importere skannede papirprototyper eller importere prototypene man har tegnet i Balsamiq eller andre verktøy. Deretter kan man tegne opp et skjermbildekart som kobler sammen de forskjellige skjermbildene i applikasjonen. På hvert skjermbilde kan man legge inn animasjoner eller andre former for interaktivitet som viser hvordan den endelige applikasjonen kan fungere.
For noen deler av applikasjonen kan det være nødvendig å lage en mer komplett funksjonell prototype. Siden SketchFlow baserer seg på Silverlight 3 kan man kan raskt gjøre om enkeltskjermbilder til en interaktiv applikasjon. Her kan man bruke vanlig C# programmering til å virkelig illustrere hvordan den endelige applikasjonen kan oppføre seg.
Når prototypen er ferdig kan den eksporteres som en webapplikasjon og gjøres tilgjengelig for kunden. SketchFlow har innebygget funksjonalitet for å samle inn tilbakemeldinger i form av kommentarer eller tegninger og markeringer dirrekte på skjermbildene. På denne måten kan vi samle inn viktige tilbakemeldinger før vi begynner implementeringen av den endelige applikasjonen.
Oppsummering
For å oppnå størst mulig effekt i smidige prosjekter må vi hele tiden se på hva vi kan forbedre. Jeg tror vi kan lære mye fra andre fagområder som brukskvalitet og interaksjonsdesign. Bruken av prototyper, enten på papir eller på skjerm, er et eksempel på noe som kan gi stort gevinst i smidige utviklingsprosjekter til en lav pris. Vi kan involvere kunden tidligere og tettere i design av brukeropplevelsen. Vi kan kjøre kortere iterasjoner siden nye skjermbilder lages i løpet av minutter, noe som fører til større smidighet i måten vi jobber med brukeropplevelsen av applikasjonen som utvikles.
Har du lyst å lære mer om skjermbildeprototyping, Balsamiq og SketchFlow? I så fall håper jeg å treffe deg på Smidig 2009 konferansen 22-23 oktober i Oslo. Her vil jeg holde en lyntale om skjermbildeprototyping i smidige prosjekter.



