Skriv inga funktionsspecifikationer

Den 9 feb­ru­a­ri 2005 skrev Jason Fri­ed en arti­kel på 37signals.com om Get­ting Real, Step 1: No Fun­c­tio­nal Spec.

Det var med nyfi­ken­het jag läs­te vad Jason Fri­ed hade skri­vit om att man inte skall skri­va någ­ra funk­specar. Efter hand som jag läs­te arti­keln så fick jag näs­tan käns­lan av att han sut­tit och tit­tat över min axel när jag job­bat.

Vad är det då han skri­ver? Jo, att en funk­spec ald­rig är ett kon­trakt, utan sna­ra­re en slags flum­mig och vag för­teck­ning om vad man har kom­mit fram till med kun­den. Man i det här fal­let är mer eller mind­re all­tid våra pro­jekt­le­da­re och/eller inter­ak­tions­de­sig­ners och kun­den, och mer eller mind­re ald­rig är någon annan inblan­dad. Som Jason Fri­ed skri­ver, funk­specar hand­lar om att fat­ta beslut innan du har till­räck­ligt med infor­ma­tion för att beslu­ta.

Själv upp­le­ver jag det här i de fles­ta pro­jekt jag varit med i. Inte säl­lan läser jag (som utveck­la­re) doku­men­tet, både före och under tiden jag utveck­lar. Jag tol­kar saker­na på sätt som är spe­ci­fi­ka för mig, och är något oklart så frå­gar jag vår gräns­snitts­ut­veck­la­re och hur han har tol­kat det. Ibland har vi tol­kat det på sam­ma sätt, men inte all­tid. Frå­gar vi då en AD om saken så har han/hon en annan tolk­ning, så vi frå­gar pro­jekt­le­da­ren, som har sin tolk­ning av tex­ten. Vi bestäm­mer oss gemen­samt för hur tex­ten i frå­ga skall tol­kas, men när vi läg­ger ut en test så att kun­den kan tes­ta, så får vi veta att kun­den har tol­kat tex­ten på ett helt annat sätt.

Vad skall man göra istäl­let för funk­specar? Jason Fri­ed tyc­ker att man istäl­let skall skri­va ett doku­ment på max en sida, som beskri­ver vad siten skall göra. Det är för kom­plext skri­vet om det krävs mer än en sida, eller så har du inte skri­vit till­räck­ligt tyd­ligt. Efter det doku­men­tet är klart, så bör­jar man utveck­la gräns­snit­tet. Gräns­snit­tet i sig blir funk­spe­cen, och behö­ver inte inne­hål­la någon egent­lig kod, bara man kan klic­ka sig ige­nom den och få ett grepp om hur det kom­mer att fun­ge­ra.