19.12.2012 Views

Affärsnytta i fokus för sammankopplade system sid 7 ... - Contoso.se

Affärsnytta i fokus för sammankopplade system sid 7 ... - Contoso.se

Affärsnytta i fokus för sammankopplade system sid 7 ... - Contoso.se

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

metoder&modeller<br />

tvåsamheten har många utmaningar<br />

En annan orsak finns hos <strong>system</strong>utvecklarna själva. Att visa någon<br />

annan hur man ut<strong>för</strong> sitt arbete kan i början kännas ungefär som<br />

att stänga in sig i en provhytt med någon som man knappt känner<br />

och ta av sig alla kläder. Samtidigt har många utvecklare negativa<br />

erfarenheter av att arbeta nära en del kollegor, som tyvärr kan<br />

vara prestigefulla och håna svaghet och okunskap. Det här kan<br />

vara symptom på dålig laganda, och i de fallen är det en fråga <strong>för</strong><br />

ledningen att ta tag i.<br />

Dessutom är parprogrammering svårt att lyckas med och<br />

därmed även svårt att trivas med. jag har upplevt många frustrerande<br />

stunder när jag suttit som ett åskmoln och bara längtat efter<br />

en kopp kaffe. Här följer några av mina bästa knep <strong>för</strong> att lyckas<br />

med parprogrammering.<br />

Korta ner intervallen<br />

Det vanligaste felet som jag <strong>se</strong>r är personer som håller tangentbordet<br />

<strong>för</strong> länge, det vill säga längre än 5-10 minuter. Så kort ska<br />

nämligen ett pass som <strong>för</strong>are vara. Det är oerhört lätt hänt, jag<br />

råkar fortfarande göra det själv ibland. Men det duger inte. Att<br />

sitta och titta på när någon programmerar i en timme är tråkigt<br />

intill döden, trots att du <strong>för</strong>söker göra allt <strong>för</strong> att engagera dig.<br />

testa lite pingpong<br />

Pingpong-programmering 2 är en bra teknik <strong>för</strong> att komma ihåg att<br />

byta <strong>för</strong>are. Det fungerar så här:<br />

1. Du skriver ett exempel på önskvärt beteende som <strong>system</strong>et<br />

inte stödjer i form av ett test.<br />

2. Växla <strong>för</strong>are. Din partner ska nu skriva enkel kod som får<br />

exemplet att fungera.<br />

3. Partnern <strong>se</strong>r till att koden är enkel och läsbar, du verifierar.<br />

4. byt roller och börja om. Nu är det din partners tur att skriva<br />

ett test och din tur att få att fungera.<br />

Pingpong-programmering är mycket enkelt och det fungerar<br />

faktiskt! Inte nog med att tangentbordet naturligt byter ägare med<br />

några minuters mellanrum, dessutom blir båda parter mer engagerade<br />

<strong>för</strong> snart är det din tur att skriva igen.<br />

Byt partner lite oftare<br />

Ett annat vanligt fel som många gör, är att de behåller paren<br />

alldeles <strong>för</strong> länge. Många verkar tro att man ska sitta med samma<br />

partner under flera dagar i sträck. Det kan möjligen kännas tryggt<br />

att hitta någon som man trivs med, men det vanligaste är att man<br />

irriterar sig på varandra.<br />

I längden blir det faktiskt kontraproduktivt då parprogrammering<br />

också ska vara ett sätt att flytta runt personer så att alla<br />

i laget lär sig flera delar av <strong>system</strong>et. Och vad händer egentligen<br />

med lagandan när ni har ett litet team i teamet?<br />

Promiskuös parning<br />

En teknik <strong>för</strong> att bryta upp dessa ”kärlekspar”, som jag kallar dem,<br />

är att använda Promiskuös parning 3 . Det kan låta lite märkligt på<br />

en arbetsplats, men det fungerar så här:<br />

1. Du väljer själv din nästa uppgift från den plan som ni har <strong>för</strong><br />

iterationen. Välj gärna en uppgift inom ett <strong>system</strong>område som du<br />

kan ganska lite om.<br />

2. För att lösa uppgiften måste du be någon om hjälp. Och vice<br />

versa, om någon ber dig att hjälpa till måste du tacka ja.<br />

3. Ett par får bara arbeta tillsammans i maximalt 90 minuter.<br />

Sedan måste ni byta partner.<br />

På en dag kan du alltså ha tre-fyra partners, vilket kanske känns<br />

spännande bara det. På detta sätt kan ni sprida kunskaper i teamet<br />

maximalt och styra undan de värsta situationerna.<br />

Partnerbyte i fikarasten<br />

Men hur ska vi komma ihåg att bryta upp? I Sverige har vi en<br />

enorm <strong>för</strong>del jäm<strong>för</strong>t med andra länder: Fika! tiofikat och trefikat<br />

är perfekta tider <strong>för</strong> att byta partner. lägg till ett byte vid lunch<br />

och du har delat in dagen i fyra, bra perioder. Eftersom en lagom<br />

storlek på en uppgift är 1-2 timmar och promiskuös parning tillåter<br />

90-minuters<strong>se</strong>ssioner så fungerar det utmärkt.<br />

Ännu bättre är om ni då och då kan fika tillsammans hela laget.<br />

Var<strong>för</strong> inte bli lagets ”Moccamaster” genom att brygga en kanna<br />

åt gänget ibland? Många <strong>för</strong>etag har tyvärr glömt av traditionen att<br />

ta en paus tillsammans då och då.<br />

Femton sköna minuter av projektmys räcker <strong>för</strong> att vara högproduktiv<br />

igen när du kommer tillbaka.<br />

Ett problem med korta <strong>se</strong>ssioner är att många känner att<br />

de inte får chan<strong>se</strong>n att avsluta det de påbörjat. Flytet är viktigt,<br />

<strong>för</strong>visso, men teamflytet är ännu viktigare. Problemet är att om<br />

ni <strong>för</strong>länger <strong>se</strong>ssionerna stör ni rytmen <strong>för</strong> de andra i laget som<br />

vill och behöver byta partner. Och flera personer än ni behöver<br />

<strong>se</strong> den där smarta koden som ni håller på med. Det kommer fler<br />

heldagar tillsammans.<br />

Parprogrammeringsplan, P3, <strong>för</strong> varje <strong>se</strong>ssion<br />

Vad du kan göra <strong>för</strong> att alltid skapa en känsla av avslut, är att<br />

arbeta med en parprogrammeringsplan, en ”P3”, <strong>för</strong> varje <strong>se</strong>ssion.<br />

jobbar du lättrörligt redan idag vet du att det handlar om att<br />

detaljplanera i rätt tid, det vill säga precis när det behövs.<br />

En P3 kan beskrivas som den mest detaljerade formen av plan.<br />

Den är mycket enkel, det vill säga inget annat än de deluppgifter<br />

som ni behöver ut<strong>för</strong>a <strong>för</strong> att klara av den uppgift ni åtagit er.<br />

Börja arbetet med att skriva en lista av punkter, vanligen en<br />

handfull. lämna lite utrymme mellan dem <strong>för</strong> saker som ni kommer<br />

på under arbetets gång. låt den som är kartläsare sköta<br />

planen. När ni flyttar tangentbordet byter ni också blocket.<br />

Poängen med det är att även om ni stött på problem och bara<br />

hunnit med några punkter på listan kommer ni ändå känna att ni<br />

har klarat av någonting. Ni kan utan problem gå vidare till nästa<br />

<strong>se</strong>ssion. Ett par saker är bortstreckade i alla fall – inte illa!<br />

Roligare arbetsliv med parprogrammering<br />

jag skulle vilja påstå att tDD och parprogrammering har <strong>för</strong>ändrat<br />

mitt arbetsliv till det bättre. Förut kände jag ofta en gnagande oro<br />

<strong>för</strong> att jag skulle göra bort mig; in<strong>för</strong>a någon svår bugg eller inte<br />

klara av ett problem. jag tror att fler än jag är bekanta med denna<br />

dagliga oro.<br />

Nu<strong>för</strong>tiden är jag helt lugn, och har tvärtom haft några av mina<br />

roligaste stunder som utvecklare när jag har parprogrammerat.<br />

För det är en fantastisk känsla att tillsammans lösa ett knepigt<br />

problem; att dela den där svindlande känslan när det fungerar<br />

med någon. Wow!<br />

jOAKIM HOlM | tERRIER SOFtWARE | BlOgg: jOCKEHOlM.WORDPRESS.COM<br />

Referen<strong>se</strong>r:<br />

1 Steve McConnell ”Code Complete: A Practical Handbook of Software<br />

Construction”, som i sin tur hänvisar till Shull et al ”What we have<br />

learned about fighting defects”, 2002<br />

2 Dave Hover: redsquirrel.com/blog/archives/00000170.html<br />

3 Arlo Belshee: mitchlacey.com/docs/XR4PromiscuousPairingandBeginnersMind.pdf<br />

22 Informators tidning om utveckling och kunskap. Nummer fem. Hösten 2008.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!