Mobbprogrammering - The DMU Way

Lennart Fridén introducerade oss på DMU till mobbprogrammering i november 2015. Vi har därefter använt dessa kunskaper på olika sätt inom våra team där vissa team mobbprogrammerat nästan varje dag och andra inte alls. De problem vi försökt lösa i mobben har varit både underhållsgrejer och nyutveckling. Mobbsessionen brukar oftast gå till på så sätt att vi sätter oss i en grupp om tre personer eller fler, ställer en timer för att hålla koll på när drivern ska bytas ut. Tiden som drivern sitter har varierat från fem till tio minuter. Alla övriga agerar sedan navigator och diskuterar tillsammans fram lösningen, även om det är en person som har kunskap om hur det ska lösas. Vi har även låtit den som vet hur problemet bäst löses vara driver. I brist på utrymme har vi inte haft möjlighet att skapa ett dedikerat mobbprogrammeringsrum och har därför fått boka olika mötesrum för varje session. DMU har alltså antagit en ganska liberal approach till mobbprogrammering.

Hur ser en by-the-book mobbprogrammering ut?

Det finns många regler för hur mobbprogrammering faktiskt ska utföras. Allt från vilken utrustning man bör ha till vilka roller som finns. När det kommer till utrustningen rekommenderas det att rummet man sitter i är tillägnat endast mobbprogrammering. Detta för att all utrustning alltid ska finnas på plats. Rummet bör innehålla en whiteboard, bekväma stolar, en dator med extern skärm, tangentbord och mus, stor skärm/projektor och duk för övriga förutom drivern att titta på samt bra luft. Roteringen i mobben ska vara snabb, fyra minuter är lagomt för att alla deltagare ska hålla sig alerta och fokuserade. Vid rotation så ställer sig alla upp och byter till stolen bredvid, navigatorn blir driver och drivern blir en del av mobben. Tiden kan mätas med telefon eller valfri online timer, signalen får gärna ha en behaglig ton.

Rollerna i en mobb ser ut som följer:

Facilitator - I början innan man är riktigt van att arbeta i en mobb så är det på sin plats att ha någon som håller koll på att alla steg och procedurer följs. Det rekommenderas även att den som antar rollen inte utför någon programmering. Undantaget är om man vill introducera en ny idé och behöver anta rollen som navigator. För att vara facilitator finns det inget krav på att kunna programmering, det är heller ingen team lead-position. Viktigast av allt, när allt går bra i mobben så gör facilitatorn inget alls!

Driver Den person som för stunden skriver kallas driver. Drivern ska inte tänka, vilket innebär att om något ska hända så måste man kommunicera. Det är viktigt att drivern litar på navigatorn och gör sitt bästa för att lyssna och göra så som den blir ombedd att göra.

Navigator Navigatorn är den person som i huvudsak programmerar. Den personen tar emot idéer och hjälp från mobben men är den som har sista ordet när det kommer till beslut om vad som ska göras. Navigatorn ska helst prata på en så hög abstraktionsnivå som möjligt, men i början ligger den ofta på syntax och programmeringsstrukturer.

Mobben Mobbens uppgift är att kontrollera navigatorn och komma med input när det är lämpligt. Genom att göra snabba rotationer så tvingas personerna i mobben att vara fokuserade.

Vad ska vi jobba på?

Som första uppgift rekommenderas det att man väljer något enkelt. Detta kan vara en enkel grej som redan finns i teamets backlog, refaktorering av stora metoder eller kodkator. För att lyckas med en mobbsession är det viktigt att ha en tydlig bild som delas av personerna som deltar. Genom att programmera enligt consume first istället för build-up-stilen så säkerställer man att alla har en glasklar bild av vad och hur problemet ska lösas.

Build Up - exempel public int x; public int y;

Navigatorn har en plan men så länge övriga deltagare inte kan ta del av dennes tankar så kommer det vara väldigt otydlig vad som ska göras samt om det ens är korrekt.

Consume First - exempel Point p = new Point(10, 20);

Vad behövs nu? Vad måste vi göra för att kunna gå vidare? Jo, vi måste skapa funktionen Point för att programmet ska kompilera.

public Point(int x, int y)
{
}

Vad behöver vi göra härnäst? Vi får inte tag på våra variabler!

this.x = x;
this.y = y;

Kanon, har vi några fler problem? Det kompilerar inte, det finns inga this.x och this.y.

public int x;
public int y;

Om man, som i det här fallet, har helhetsbilden i åtanke så blir det mycket enklare att byta navigator. Dessutom, om det visar sig att en annan variabeltyp skulle ha använts, hade vi fångat det på engång och kunnat byta ut den. På så sätt kan man undvika sådana enkla misstag.

Yes, and …

I en mobb är det viktigt att följa “Yes, and …” regeln som återfinns i improvisationsteater. Tanken är att man fortsätter med det man redan har. Att helt ta bort och göra om det som tidigare navigators gjort är inte tillåtet. Däremot går det bra att refaktorera. Genom att följa detta arbetssätt så görs framsteg kontinuerligt samt att man förhindrar att deltagare i mobben blir “avstängda”. Följs den här regeln så kommer varje rotation ta mobben ett steg längre för varje gång.

Sammanfattning

Som tidigare nämnts så har DMU en liberal syn på vad mobbprogrammering är och jag tror stenhårt på att regler i det här fallet ska ses som riktlinjer. Men innan man kan börja tumma på dessa regler så bör man ha provat på att följda dem först. För vidare läsning på ämnet så finns en uppsjö av material, jag har i det här fallet läst The Mobprogramming Guidebook, ur vilken även exemplena kommer ifrån.

Källa: The Mobprogramming Guidebook, Falco Llewellyn & Pyhäjä, 2016-07-12

Skrivet av:

Beatrice Nilsson

Systemutvecklare Mittmedia

Mer team

Stefan Wallin
Feb 13, 2017

In this first episode of the monthly Hack Day Review, I’ll give you a background on our Hack Day approach and you’ll get to read about what inspiring things our developers and designers explored on their “paid free time”.

Under påsken 2016 drabbades flera svenska nyhetssajter av omfattande DDoS-attacker (se även mitt tidigare inlägg om detta). Efter påsk kallade Alice Bah Kuhnke mediechefer och teknikchefer till ett möte på Rosenbad. Deltog gjorde även inrikesminister Anders Ygeman. Mötet kom att fokusera mycket på en intressant analogi om att staten en gång i tiden ansvarade för det svenska vägnätet där tidningsbilarna körde ut nyheter till folket, och att det idag finns ett digitalt vägnät för distribution av nyheter. Ygeman menade då på att det är upp till medierna att ställa krav på operatörerna för det digitala vägnätets duglighet. Idag måndag 4/7 arrangerade TU ett seminarium i Almedalen med titeln ”IT-attack via Ryssland – nya tidens hot mot medier” där Anders Ygeman deltog så jag passade på att ställa några frågor till honom kring luckorna i hans resonemang. Då tiden var knapp och Ygemans svar avvikande skriver jag därför detta inlägg som Anders Ygeman istället kan läsa och besvara när han får tid.

Korrigering 2016-03-20 12:31: I min originaltext påstod jag felaktigt att Aftonbladet.se som också drabbades av gårdagens DDOS-attack driftas på Basefarm. Har korrigerat detta men poängen som jag vill trycka på i denna text kvarstår. Kuriosa: Schibsted som äger Aftonbladet sålde Basefarm 2009.

Norrland. Denna mytomspunna, näst intill exotiska landsända. Besjungen, bespottad och ständigt aktuell. Fredag den 4 november även omnämnd i Breakits podcast som hemvist för MittMedia. Det stämmer att vi på MittMedia bevakar Norrland, tillsammans med andra duktiga lokalmediekoncerner som t.ex. VK, Norran och NTM. Vi täcker upp knappa hälften av Norrland eftersom Dalarna ej kan räknas in då det tillhör Svealand.

Mathias Nylén
Nov 5, 2015

Behovet att bryta vardagen var förmodligen en av de sämre motiveringar jag kunnat använda i mitt försök att förklara varför vi numera var ett av de inplanerade stoppen på Lennart’s journeyman tour. En kort reflektion av tiden sedan sommarsemestern visade att den s.k. vardagen aldrig riktigt infunnit sig för DMU, Mittmedias enhet för digital medieutveckling. Sedan augusti hade vi välkomnat 10 nya kollegor, formerat nya utvecklingsteam, påbörjat experiment kring arbetsätt och teknik med målet att bli än vassare på att leverera nya digitala upplevelser.

För några veckor sedan pratade jag om vikten av okonventionell erfarenhet på mässan Karriär och Framtid och på allmän begäran kommer hissversionen här som ett blogginlägg.

Oct 2, 2015

Jag loggade in på Medieutredningens forum härom dagen. Under sektionen Teknologi fanns mötesnoteringar rörande vikten av bredband och mobiltäckning. Det värmde. Jag hoppas att dessa två frågor kommer högst upp på Medieutredningens agenda. I det här inlägget tänkte jag trycka på varför tillgång till internet är en central demokratifråga och varför stöd till tidningsdistributionen inte får överskugga detta.

Sep 23, 2015

Herakleitos skrev något i stil med “Det enda konstanta är förändring” och jag har väl aldrig varit så benägen att hålla med honom som nu. Den 26 februari fick min dotter två energiska enäggsbrorsor och sen dess har jag levt i konstant förändring. I små iterationer. Det är även svaret på de frågor jag fått om var de tre sista inläggen i Kringlan-serien tagit vägen…

Peter van der meulen
Aug 27, 2015

Hello world! That’s the term you would normally see in the very first post of a Blog. What then is this text doing in a blog filled with 2 year older articles you ask?

Värdet hos en produkt skapas när den används. Ett paraply blir ett skydd mot regnet när du fäller ut det, en påse blir förvaring när du lägger saker i den. En nyhetssajt består av innehåll och funktionalitet men det är när besökaren använder sajten som värdet skapas. Värde i form av kunskap, idéer och tankar. Engagemang och känslor. Företagskunden använder också sajten för att skapa värde – t.ex. via varumärkesprofilering eller utbudsannonsering.

Torsdag 18/12 2014 var en historisk dag. Inte bara för att vi äntligen kunde presentera nya, förbättrade Mittmedia.se, utan för att vi därmed släckte den sista av våra Polopoly-sajter. Det här inlägget handlar om varför det är viktigt för en mediekoncern att ha stor kontroll över den tekniska plattformen samt ha egen utveckling.

Totalt 16 dagars julledighet blev det denna gång, inte illa! Sexton dagar av julmat och släkt men framför allt av hemmasoftande i mysbyxor, av Pippi Långstrump, häpnadsväckande byggnadsverk i Duplo och massor av böcker. Inte bara barnböcker som tur är utan jag hann även läsa Lee Iacoccas klassiska självbiografi och framför allt The Renaissance Society av Rolf Jensen och Mika Aalto som jag tänkte reflektera lite över i detta blogginlägg.