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
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.