Wednesday, January 14, 2009

Ta med Människan i laget

Så där ja, där satt den! Alla uppgifter är avklarade, koden är städad och snygg, unit-testerna lyser grönt och sajten finns ute i molnet. Det känns fint, så när som på en sak. Det är en grej som inte fick plats i det här projektet. Eller jag menar, det var egentligen en människa som fattades i laget. Vi som systemutvecklare har sedan tidigt i projektet nämligen slutat att vara människor. Vi är robotar, som inte förstår mänskligt beteende. Vi tror att fraser som "felaktigt lösen" och "editera" är något som människan använder i sin vardagliga kommunikation.

Vårt mål i projektet har varit att bli klara med våra uppgifter och leverera något som fungerar. En människa vill ha något som är enkelt att använda. Vad kan vi göra? Vi behöver ett blandat lag, vi behöver testare och folk som skriver användarmanualer. Som ifrågasätter och påminner oss om att vi faktiskt bygger saker för människor, inte robotar.

Utan testare kommer vi att stå där och hoppa bakom personen, som stirrar på sin skärm och slumpmässigt tycks skicka muspekaren fram och tillbaka på helt fel ställen. Våra armar måste hållas tillbaka för att inte vifta och visa: "Där, där, där! MEN KLICKA DÅ. Snälla, klicka på länken 'verifiera dina användarinställningar'".

Åh nej, vi har misslyckats. Människan förstår inte vårt GUI (webbsida på människospråk). I ett svep blir den så tvärsäkre Terminatorn nu förbytt till den deppige roboten Marvin från böckerna om Liftarens guide till galaxen. Nu är det försent, produkten är i drift och kundservice tar emot samtal efter samtal från människor som behöver hjälp med produkten.

Jag tror att vi behöver team som består av olika typer (robotar och människor), som pratar med varandra varje dag och tillsammans kommer fram till bra lösningar. Tvärfunktionella team är en riktigt bra grej.

I'll be back!

Monday, January 12, 2009

Rör inte min design, kompis!

Om dagarna sysslar jag med att utveckla mjukvara och ofta är det ett kul jobb! Ibland känns det som att jag befinner mig i ett flow och tangentbordet smattrar av programmerarfingrar, hjärnan kokar av idéer och lösningar på, ja nästan alla, problem. Det är en skön känsla att vara kreativ och en problemlösare, delaktig i en uppgift som känns betydelsefull.

Det personliga engagemang som finns i arbetet har massvis med bra och en del mindre bra konsekvenser. Jag erkänner att det är en nästan daglig inre kamp jag för med mig själv att sluta tycka att det är min design, min idé, min kod, som finns där lagrad på en surrande server hos företaget. Det är inte alls konstruktivt utan bara egoistiskt.

Jag tycker mig se det här hos många och tror att en hel del känner igen sig i beskrivningen, kanske hos sig själva eller hos kompisar på jobbet. När man arbetar i team som inte jobbat tillsammans tidigare blir det speciellt tydligt. Alltför mycket tid av dagarna går åt att argumentera för sin sak och för sina idéer och man litar bara på sin egen kompetens. Man kanske kan säga att medlemmarna i teamet befinner sig i en fas som brukar kallas för "Storming"*. Visst låter det som att det riskerar att bli några övertidstimmar veckan innan leverans med ett sådant här gäng?

Hur gör man då för att komma vidare?

Jag tror att varje team behöver komma överens om vad som förväntas redan från början i ett projekt. Det behövs team-regler som man kommer överens om och kanske till och med skriver upp på en tavla. Ska man klara av att leverera något på några veckor, som i projekt drivna med Scrum, behövs ett team som klarar av att samarbeta varje dag. Varje person i laget utför dagligen arbete som tar hela laget små steg närmare en färdig produkt och det är ju faktiskt vi som levererar.


* Läs mer om: Forming Storming Norming Performing