Søg på DotNyt:
Denne blog er flyttet til www.nielsbrinch.com


fredag den 19. marts 2010

Hurtige prototyper

skrevet af Niels Brinch

Enhver softwareudvikler har hørt påstande som lyder noget i retningen af, at det tager 10 gange længere tid at rette en fejl end det tager at forhindre den. Der er en række andre variationer af påstanden, men pointen er overordnet set, at man skal tænke sig om først i stedet for senere.

Et af de områder man skal sikre er så korrekt som muligt inden man går i gang, er kravene der er til den software man skal udvikle. Kravene stilles typisk af en kunde som er specialiseret inden for sit eget forretningsområde, som ikke er softwareudvikling. Det kræver meget stor abstraktionsevne at opstille krav. Man skal kunne se det endelige produkt for sig og vurdere om det er det man har brug for, uden at kunne se det.

Måske har den primære opgavestiller en meget høj abstraktionsevne, men så kan der være andre interessenter som også har indflydelse, men som ikke har samme egenskaber eller ikke har brugt så lang tid på at definere kravene. Det scenarie man bevæger sig hen imod er et hvor software-leverandøren leverer det som er aftalt i kravene, men det var ikke det som kunden havde håbet at modtage.

Slutresultater er en utilfreds kunde, uanset hvor nøjagtigt kravene er opfyldt.

Hurtige prototyper kan hjælpe. Man kan udarbejde en prototype på en brøkdel af den tid det tager at udvikle det endelige produkt. Alle er ofte ikke enige om at der skal laves komplette prototyper, specielt hvis der er et meget begrænset budget, for prototypen har ingen værdi i sig selv. Når projektet er slut, bliver prototypen smidt ud. Men når man har prototypen kan den præsenteres for kunden og ikke bare giver det klarhed overfor den primære opgavestiller og sikkerhed om forståelse af kravene for leverandøren, men det giver også de mindre engagerede kunderepræsentanter mulighed for at deltage aktivt, kommentere på prototypen og være med til at fjerne misforståelser. Det giver dem også mulighed for at ændre kravene.

Det er et stort arbejde at ændre krav, for i mange tilfælde skal aftalen også ændres. Men, med reference til min indledende sætning, er det bedre at ændre krav baseret på en prototype, end baseret på det endelige produkt.

---

Jeg anvender værktøjet ForeUI til prototyper. Det er et tegneprogram specielt velegnet til prototyper. Det har linjer og rektangler til at lave simple tegninger og dertil en række standard-elementer, såsom knapper, rullemenuer og afkrydningsfelter. Formålet er ikke at skabe noget der er vellignende, men bare noget som viser det essentielle. Her er f.eks. en prototype af Googles forside.

image

Men det er meget mere end et tegneprogram. Programmets styrke ligger i muligheden for at sætte hændelser på alle elementer. F.eks. kan jeg opsætte en regel der siger, når der tastes i feltet, skal der komme et rektangel med tekst frem, akkurat som Googles egen forslagsfunktion. Jeg opsætter den til at dukke frem hvis jeg skriver ‘dot’ i feltet.

image

Endnu vigtigere er det at man ved klik på diverse elementer, kan få vist en ny side, hvilket betyder man kan opbygge alle produktets sider og illustrere hvordan man navigerer ved hjælp af prototypen.

Programmet har nogle svagheder. Betingelserne er ikke altid lige logiske. F.eks. er der kun en “Key Down”-betingelse til indtastning, hvilket betyder jeg er nødt til at lave betingelsen på ‘do’ i stedet for ‘dot’, fordi den kigger på feltets indhold på Key Down, men det indtastede bogstav først kommer på Key Up.

Desuden er håndteringen af etiketter ret ringe. Specielt linjeombrydning fungerer dårligt. Jeg indsætter en etiket og giver den en specifik størrelse.

image

Når man indtaster teksten i etiketten, viser den det ikke som det bliver vist, men med en horizontal scrollbar, umuligt at overskue. Man kan indsætte sine egne linjeskift, men det er der lidt for meget skrivemaskine over, synes jeg.

image

Når jeg er færdig med at skrive, er etikettens størrelse ændret.

image

Alt i alt alligevel et anbefalelsesværdigt værktøj, som er hurtigt at komme i gang med og gør det særdeles hurtigt at lave prototyper.

Nogen der kan anbefale andre værktøjer?

3 kommentarer


 
Til forsiden

Niels Brinch

- Seneste indlæg