Tag Archives: programmering

Programmer productivity: SP < PR < PP < MP

Posted on by

In my experience, when it comes to programming productivity, mob programming beats the rest. Of course the definition of productivity in this context is debatable and these are just my observations. Thus, it is not a proper scientific study but bear with me anyway.

I wish to compare one aspect of productivity, how we work together. I look at single programming, pull requests, pair programming and mob programming.

read more »

Hur man får bättre kodkvalitet

Posted on by



De flesta och vanligaste misstagen man gör när man programmerar är konstruktionsfel, tankefel, designfel, eller vad man nu vill kalla dem. Det är mer vanligt att en programmerar skriver exakt den kod han vill skriva (men det är fel ändå), än tvärt om.

Men om vi ändå skall börja med kodkvalitet är snabba återkopplingscykler och disciplin viktigast. Därför förordar jag (i slumpmässig ordning):

  • Parprogrammering (snabba återkopplingar + en massa annat bra)

  • Kodningsregler (spelar nästa ingen roll vilka, bara det finns en uppsättning regler som alla följer)

  • CI-server (återkopplingar igen) med stop-the-mill-mentalitet (släpp allt annat och fixa felet CI-servern rapporterar)

  • Automatisk kodgranskning medan du kodar (á la IntelliJ eller med någon pluggis till Eclipse). Acceptera bara "grön" kod.

  • TDD

  • Putsa på koden. En del säger att man inte skall ändra sådant som funkar och det är ju rätt i många fall, men man kan ändå alltid rätta stavfel i kommentarer, ändra dåliga variabelnamn och metodnamn, lägga till kommentarer. Det här tar ingen tid eftersom det är något man gör när man läser/bläddrar igenom gammal/andras kod för att förstå den.

Lyfter man blicken från tangentbordet bör man rikta den mot whiteboarden. Det ritas alldeles för litet på tavlan nuförtiden tycker jag. Det är inte BDUF bara för att man ritar ett UML-diagram innan man kodar! Däremot kan man kanske tänka bättre med bubblor, pilar och pseudokod innan man uttrycker sin design i Java-syntax. Det här gör man också lämpligen i par så det är inget annat än parprogrammering, fast framför tavlan.

Man skulle kunna kräva att man har ett klassdiagram och en domänmodell för den lilla del man tänker koda idag innan man sätter sig vid tangentbordet. Att rita på papper eller tavla räcker för tankeprocessen. Något av det hela kan också bli dokumentation (nu svor jag visst i agilkyrkan), men få saker kan få mej att snabbt sätta mej in i kod som ett par rutor och pilar som beskriver den övergripande konstruktionen.

Sammanfattningsvis innan du kodar:

  • Rita på tavlan innan du kodar.

  • Skapa början till och bygg sedan gradvis vidare på en domänmodell.

  • Se till att alla kan domänmodellen.

Vilka är dina bästa tips?