Crisp Home

Hans Brattberg

Hans Brattberg

Crisps egen lilla mysfarbror

Properties of a good daily stand-up

I had a conversation with some of my colleagues** about what makes a good daily stand-up, here are some properties:

  • Time-boxed (15 minutes)
  • Everyone is engaged
  • Synchronization is taking place
  • Attention to problems
  • People ask for help
  • The conversation is about stuff that matters to most people, individual issues are postponed
  • Anyone can lead the meeting, not just the Scrum Master / Team Coach
  • The meeting is the starting point for the day, afterwards everyone feels energized and can start working right away
  • Ends with a punch that marks the end of the meeting and the start of the day*

* The team has dumbells by the scrum board. The rule is that if you feel the current speaker is monopolizing the meeting, you can hand the speaker a dumbell. Now the speaker can keep talking only as long as they can hold up the dumbbell with an outstretched arm.

** Thanks to Alexander Tarnowski, Jan Grape, Reza Farhang and Yassal Sundman.

Scala Code Kata Roman Numerals

There’s a Scala User Group in Gothenburg that had several meetings during this summer.  In one of the meetings the group solved a Kata named KataRomanNumerals (A Kata is a small problem that you do over and over again to learn)

The KataRomanNumerals says you should write a function to convert from normal numbers to Roman Numerals: e.g.
     1 –> I
     10 –> X
     7 –> VII

Unfortunately I could not attend at this meeting, so I had to do it on my own during a few summer nights when my family finally was asleep :-) .

Here’s my solution:

  object Program extends Application {

    class RomanInt(number: Int) {

      def toRomanString() = {
        val ones = List("", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX");
        val tens = List("", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC");
        val hundreds = List("", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM");
        val thousands = List("", "M", "MM", "MMM");

        thousands(part(1000)) + hundreds(part(100)) + tens(part(10)) + ones(part(1))
      }

      def part(digit: Int) = {
        number % (digit * 10) / digit
      }

    }

    implicit def Int2RomanInt(number: Int) = new RomanInt(number)

    println(154.toRomanString()) // prints ‘CLVIII’

  }

Here’s the code with better formatting.

Please comment and correct if I didn’t write idomatic Scala or if you have suggestions for improvements.

/Hans

Emo-lines

If you coach a scrum team but you’re not around to observe them during the sprint, how do you know how they felt about it?

Ask them.

You can interview them individually or as a group. Both approaches have their problems and limitations. Individual interviews take a lot of time, and sometimes you can’t share the results without breaking confidence. If you ask them as a group you usually only get answers from the most outspoken people because:

It’s hard to talk about your feelings among strangers.

One of the teams I coach had mixed feelings about Scrum. Some were healthily skeptical, and some positive. The first sprint went very well, with a good sprint planning, a lot of initial energy and a demo that actually showed customer value. But I felt that some of the team members were not too sure how the others felt about the whole thing. I wanted to help them with that and also get some feedback myself (I admit I was a bit nervous about not being around).

I used Emo-lines.*

Here’s how you do it. First draw a time-line representing the whole sprint and ask everyone to put up notes, marking memorable or unusual events. The team’s looked something like this:

Then you prepare for the Emo-lines, start by drawing a line directly underneath the time-line. The line represents neutral feelings, with feeling good above, and feeling bad below:

Next, have each person draw how they felt during the spring using different colored markers, starting at the sprint planning and ending with the sprint demo. Here’s a simplified version of the team’s chart:

The team members’ feelings varied greatly, you can see from the chart that the sprint demo went well though because everyone felt pretty good at the end.

The next step is to ask each person to comment on his/her line. Here’s what the team said:

Mr Green – a skeptic at first.

Mr Green is a very influential person in the group and the architect, he was the first to go. He said that he was a bit skeptical at first (as everyone had noticed during the scrum training right before the sprint started). He was worried that sitting and working in a team room would interfere too much with his flow and his privacy. As the sprint went on, he came to appreciate how quick and easy communication was with the new setup and realized that it was rather fun working that way. And when the first demo went well, well…

Mr Blue – a scrum advocate who got lonely.

Mr Blue was one of the driving forces in introducing Scrum to the company and the only one who was a certified scrum master. So I was a bit surprised and worried that he had such a dip after the first week. As it turns out, during the second week he had to work from home because his kids were sick, so he felt isolated and unproductive.

Mr Orange – an enthusiast both when skeptical and when not.

Mr Orange was also one of the skeptical-at-first but enthusiastically so. At the beginning of the sprint he felt that it was fun and that it worked for him. The problem was that they actually completed the whole sprint backlog mid-sprint and he thought that was boring and unproductive. As soon that they got some extra work from the product owner he was happy again.

Are Emo-lines useful?

The team thinks so, and they decided to use them at the next retrospective. The second time they got even more out of the chart, each line showed more variation and the explanations were more detailed.

They are also valuable to me as a coach. Even when I am not with the team during the sprint I get detailed feedback about how the team feels at the end of each sprint.

I also noticed more than one surprised look on the other team members’ faces when Mr Green talked about his line, and I think some team building took place.

Here’s a picture of the whiteboard:

*If someone has another name for these, please let me know, I heard about them from my colleague David Barnholdt, and he didn’t have a name either.

Emo, see http://en.wikipedia.org/wiki/Emo

Parprogrammering med Niclas Nilsson

Jo, jag vet, fel dag att skriva blogginlägg, detta är inte ett aprillskämt.

Niclas Nillson, Factor10, har just publicerat ritningar för sitt parprogrammeringsbord, det inte bara fungerar, det är snyggt också!

Niclas och jag ska hålla en parprogrammeringssession på Öredev i november, mer info om det senare. www.oredev.org/

ScrumMaster på svenska?

Vad borde ScrumMaster heta på svenska, och varför heter det ScrumMaster och inte Scrum Master på engelska?

Enligt en anekdot jag hört så var ursprungsnamnet Scrum Slave, men Ken Schwaber och Jeff Sutherland insåg tidigt att det inte skulle vara så säljande. :-)

Hur översätter vi då Scrum Master till svenska?

Enligt lexin så har Master har som vanligt en massa översättningar till svenskan, och frågan är vilken av följande synonmyer som man borde fokusera på:

  • Herre, mästare, överman, härskare
  • Lärare, läromästare, lärofader
  • Mästerlig
  • Orginal
  • Styresman, föreståndare

OK, jag spånar ihop några kombinationer så får vi se vad det blir
Scrumherre, Scrumhärskare, Scrumlärare, Scrumläofader, Scrummäster, Scrumoriginal, Scrumstyresman, Scrumföreståndare.

Vilket av dessa? Vi måste nog krypa under skinnet på vad man förknippar för egenskaper med själva ScrumMaster rollen. En ScrumMasters uppgifter är enligt Mike Cohn:

Vara ledningens förlängda hand i projektet

  • Se till att Scrums värderingar och principer följs rigoröst
  • Tar bort hinder
  • Se till att teamet är fullt fungerande och produktivt
  • Möjliggör tätt samarbete mellan alla roller och funktioner
  • Skyddar teamet från externa störningar

Från dessa skulle man kunna tänka sig
Scrumchef, Scrumledningsrepresentant, Scrumpolis, Scrumhinderborttagare, Scrumlagkapten, Scrumfacilitator, Scrumstötdämpare.

Själv tycker jag att en ScrumMasters främsta roll är att främja kommunikation. Och enligt wikipedias artikel om scrum så är en synonym till ScrumMaster facilitator. Facilitator betyder enligt lexin "en person som hjälper andra att diskutera effektivt", vilket skulle kunna vara en konfliktmedlare eller kanske snarare en diskussionsledare.

Scrummedlare, Scrumdiskussionsledare.

Sen har vi naturligtvis möjligheten att helt enkelt använda en försvenskad variant av ScrumMaster, Scrummaster.

Hur ska jag avgöra det här då, äsch, ni som läst hit får vara med och rösta!
Mejla scrummaster@erudio.se det alternativ nedan som du tycker man borde använda i svenska texter när man pratar om ScrumMaster. När jag fått 100 röster så ska jag redovisa resultatet här. Välj mellan:

  • Scrumherre
  • Scrumhärskare
  • Scrumlärare
  • Scrumläofader
  • Scrummäster
  • Scrumoriginal
  • Scrumstyresman
  • Scrumföreståndare
  • Scrumchef
  • Scrumledningsrepresentant
  • Scrumpolis
  • Scrumhinderborttagare
  • Scrumlagkapten
  • Scrumfacilitator
  • Scrumstötdämpare
  • Scrummedlare
  • Scrumdiskussionsledare.
  • Scrummaster

Förövrigt så heter det ScrumMaster men Produkt Owner, kan det vara så att det är Trade Marked eller något? Har förjäves försökt googla på det men inte hittat något svar, om ni har något, mejla gärna mig på hans.brattberg@crisp.se.