Regler för parprogrammering

Så du har snöat in på XP och parprogrammering? Kanske provat på lite? Provat med någon du inte känner så bra? Gick det bra?

Faktum är att för att vara en sak som är simpel att förstå så verkar parprogrammering obehagligt enkelt att inte riktigt få till. Många parprogrammeringssessioner är tyvärr oproduktiva, tråkiga eller, till och med, otrevliga.

I vårt team (projekt KOPPS del 2 på KTH) tog vi tag i det efter att ord som “dålig parprogrammeringssession” förts fram några gånger på våra sprintretrospektivmöten (ett internt feedbackmöte efter en iteration). Så jag höll ett litet seminarium och vi läste några artiklar. Och framför allt: Vi diskuterade och enades om några regler som jag tänkte bibringa er här.

OBS! Det här är några regler som vi har kommit överens om och som verkar fungera i vårt projekt. Jag rekommenderar att ni hittar er egen modell, men detta kanske kan fungera som inspiration.

Not: Vi är fem programmerare i teamet, dvs ett udda antal. Därav specialregler för hantering av detta.

(Våra) Regler för parprogrammering

  • En förare (taktik) – En kartläsare (strategi)
  • Flytande par – ej fasta
  • Börja med nedbrytning av varje uppgift. Hitta delmålen.
    Motiv: Med en lista av delmål kan ett par enklare hitta en nöjaktig punkt att avbryta samarbetet och rotera.
  • En person tar ansvar för varje uppgift.
  • För en ny partner, förklara uppgiften och tänkt lösning.
  • Berätta vad du vill göra. Fråga om du ej hänger med.
  • Kom ihåg att det är vi som löser uppgiften.
  • Kritisera inte – samarbeta.
  • För en att-göra-lista parallellt med arbetet. Den ska vara tom för att vara klar.
  • Håll igen något med att påpeka småfel till du är säker på att föraren verkligen missat det.
  • Håll igen med större fel, skriv upp dem på att-göra-listan istället.
  • Tag många pauser, minst 5 min/tim.
  • Checka in ofta, en handfull gånger på en dag är helt normalt.
  • Behöver ej parprogrammeras: “Klurning”, “spikar”, testkod
  • Vid jämna par: Minst byte lunch och kl 15.
  • Vid ojämna par: “Korta byten”, dvs oftare och gärna osynkat mellan paren.
  • Prova på: “Ping-pong”, dvs skriva tester åt varandra i turordning.
  • Prova på: Börja varje mening med “Ja,och…”. Förbjudet att säga “Ja, men…”.
  • Alltid: Ödmjukhet och Respekt.

Vi tar gärna emot tips, vilka regler använder ni?

2 thoughts on “Regler för parprogrammering

  1. Igen om tester: vad menar du med att man inte behöver programmera test-kod i par? Är inte TDD helt om att tillverka test-kod innan man tillverkar produktionskod i väldigt korta intervall om några minuter vardera?

  2. Jag menar testkod som verkligen är verifierande tester eller möjligen att hjälpa en kundrep att automatisera ett acceptanstest. Jag avser alltså inte de “tester” som skrivs som en del av TDD, som eg är en slags minimala designspec:ar. Det är inte testning, det är design.

Comments are closed.