torsdag 26 december 2019

Öka psykologiska tryggheten i teamet med Orangino Work

Hur väl känner du ditt team och dina teammedlemmar?

Hur väl känner du ditt team? Vet du vad dina teammedlemmar värdesätter? Har ni några diskussioner om hur ni beter er som team och som individer?

Att ha koll på vad dina kollegor värdesätter och hur de tänker kan leda till att du känner dig tryggare med dem. Och ju tryggare ni känner er med varandra, desto smidigare går förmodligen ert samarbete.

Orangino Work är ett spelifierat kommunikationsverktyg som hjälper er att komma igång med de diskussioner som kan hjälpa er att uppnå en högre psykologisk trygghet.

Jag har nyss gått en kurs för att leda processen. Hittills har jag endast lett en enda workshop inom systemutvecklarteamet jag ingår i, så det är för tidigt för mig att komma med nån riktig utvärdering, men under den timmen vi hade på oss så förde vi diskussioner vi förmodligen aldrig skulle haft annars och lärde känna varandra lite bättre. Det känns lovande!



Hur går det till?

Under kursen gick vi igenom två varianter av vad verktyget kan användas till: teamdialog och parvis feedback. För båda dessa används de två korttyper som man får med sig i en liten "spellåda".



Den ena korttypen är skattningskort med siffrorna ett till fyra, som motsvarar:
  1. Stämmer inte
  2. Stämmer till någon del
  3. Stämmer i huvudsak
  4. Stämmer helt
Varje person behöver två grupper av dessa kort, så korten i lådan räcker till åtta personer.



Den andra korttypen är beteendekort, som har ett ord för ett beteende som åtföljs av en kort definition. Det finns 220 stycken.

Några exempel:

  • Kort 1: Helhetssyn
    Jag har förmåga att fokusera på helheten
  • Kort 10: Dynamisk
    Jag får saker att hända
  • Kort 15: Ifrågasättande
    Jag tar inget för givet utan att vända och vrida på frågan och motivet bakom
  • Kort 17: Ber om hjälp
    Jag vågar be andra om hjälp i mitt arbete när så behövs




Teamdialog

Kort beskrivet går en teamdialog till enligt nedan.

Steg 1: skattning
  • Teamet sitter tillsammans. Varje person har dubbla uppsättningar av skattningskort.
    • En uppsättning till vänster som används för att skatta sitt eget beteende
    • En uppsättning till höger som används för att skatta teamets beteende
  • Personen som leder processen väljer ett beteendekort och läser upp kortet för teamet.
  • Varje teammedlem skattar nu med hjälp av skattningskorten, dolt och under tystnad för att inte påverka varandra, hur pass väl överens denne tycker att beteendet stämmer överens med hur teamet agerar.
  • På samma sätt skattar man sedan hur väl man tycker att beteendet stämmer överens med hur man själv agerar.
Steg 2: delning
  • Alla vänder upp den skattning man gjort för teamet.
  • Var och en motiverar varför man har satt den skattning man har gjort
  • När alla motiverat så är det fritt att diskutera tankar som uppstått när man hört vad de andra delat.
  • Alla vänder upp den skattning man gjort för sig själv.
  • Var och en, som vill, kommenterar/motiverar varför man satt den skattning man har gjort. 
Steg 3: reflektion
När skattning och delning gjorts för ett antal kort, förslagsvis tre till sex stycken, så är det dags för reflektion kring de beteenden som behandlats.

Parvis reflekterar man bland annat över:
  • Teamets syn på olika beteenden, samstämmighet eller olika syn?
  • Vilka beteenden är viktigast för ett gott samarbete?
  • Hur samtalen gick:
    • Fick alla lika mycket tid?
    • Kände man sig lyssnad på?
    • Öppenhet?
Det paren kommit fram till delas sedan i gruppen.

Steg 4(?): förbättringsarbete
Något som jag ser i de papper jag fått efter kursen, men som jag inte minns att vi gick igenom under kurstillfället är reflektion med fokus på förbättringsarbete. Förmodligen är det aktiviteter som kan göras när teamet har hunnit gå igenom en lite större mängd kort, kanske efter tio och över.
  • Framsållning av de beteenden som teamet anser viktiga för teamet, som man redan är bra på.
  • Framsållning av de beteenden som teamet anser viktiga för teamet, som man behöver förbättra.
  • Framtagning av förslag på aktiviteter för att förbättra de beteenden man nyss kommit överens om behöver förbättras.

Parvis feedback

Parvis feedback går till på liknande sätt som teamdialog.

Skattning
  • Två personer väljer var för sig ut ett par beteendekort de vill ha feedback på.
  • De sätter sig tillsammans och väljer ut ett av de nyss utvalda beteendekorten.
  • Båda har dubbla uppsättningar skattningskort och skattar först dolt sin syn på hur beteendet stämmer överens med den andra personen och lägger kortet till höger.
  • Sedan skattar man sig själv och lägger kortet till vänster.
Delning
  • Båda personerna vänder upp den skattning de gjort för sig själva.
  • Båda motiverar sin skattning.
  • Båda personerna vänder upp den skattning de gjort för den andra personen.
  • Båda ger den andre feedback.

Forskning

På hemsidan för Orangino Work står det att nedanstående forskning påverkat utformningen av verktyget.
Verktyget har även varit med i forskning utförd av Lunds universitet.

Finns det en koppling mellan sällskapsspelet Orangino och Orangino Work?

Det finns ett sällskapsspel som heter Orangino som är mycket likt Orangino Work i uppbyggnad. Jag hörde talas om sällskapsspelet före kursen, dels från teamet och dels var det med i tv-serien Sjölyckan. 

I Sjölyckan slutade en spelomgång med att spelarna blev rejält osams, det hade kanske inte så mycket med spelet som de spelande personerna och deras relationer att göra. Men något verkar det ligga i det, eftersom jag vet en person som blivit avrådd av en expedit att köpa spelet med orden "Tänkte du spela det där med släkten i jul? Gör inte det, ni blir bara osams!"

I alla fall, enligt kursledaren är upphovsmakaren bakom båda produkterna densamma, Ulla Osterman. Om jag förstod rätt så hade Ulla en sömndröm om att familjen satt och spelade ett lär-känna-varann-bättre-spel och gjorde sedan verklighet av det och resultatet blev sällskapsspelet Orangino. När hon sedan fick höra att det var vanligt att spelet togs med till jobbet och spelades där så kände hon typ att "Nä, det var inte så det var tänkt och det passar inte så bra på det sättet, en sån produkt kan göras bättre!" och utvecklade då det arbetslivsanpassade Orangino Work för den målgruppen.

Hur jag ramlade över Orangino Work

Som det står i min profilbeskrivning här på bloggen så gillar jag verkligen när det uppstår synergieffekter vid teamwork. Därför är jag nyfiken på hur man får till och ökar de synergieffekterna. 

En bästsäljare inom ämnet är Patrick Lencionis The five dysfunctions of a team: A leadership fable, där denna pyramid presenteras och gås igenom:


Den boken presenterar mest problemen och ger få svar, så frågestormen från läsarna till Lencioni ledde till uppföljaren: OVERCOMING the Five Dysfunctions of a Team.

Jag uppfattade det som att uppföljarboken, gällande psykologisk trygghet, lade en stor tyngdpunkt på ett personlighetstest av typen Myers-Briggs, som författaren anser är det mest vetenskapliga. Han skriver att ämnet "tillit" är ett av de viktigaste, men verkar tycka att nedanstående övningar räcker för att uppnå en bra nivå av tillit/psykologisk trygghet: 
  • gör personlighetstestet
  • dela och diskutera resultatet med varandra
  • berätta några saker om dig själv
    • var jag växt upp
    • hur många syskon jag har och i vilken ordning jag själv kom
    • min svåraste eller viktigaste utmaning som barn
Det kändes inte så uttömmande och i kombination med blogginlägget om off-sites av Michael Lopp, där han beskriver personlighetstest som fusk enligt nedan, så kändes det som att det fattades nåt viktigt.
Personality tests. If you’re working the team bonding off-site, personality tests are going to be tempting. The idea of starting the off-site with perspective-altering personality tests feels… right. I want them to better understand each other, so have them answer a bunch of questions and we’ll explain ourselves to each other and — WHAM — understanding. Personality tests in their endless variety do exactly that. They tell you which well-defined bucket you comfortably belong in and explain to others your bucket’s intricacies. These buckets become social tent poles of the off-site and suddenly everyone erroneously believes they’ve figured each other out. And while, yes, they now have convenient labels for each other, they haven’t really figured each other out: they’ve cheated. You’ve bypassed the process of learning via a set of clever labels.If you want to understand someone, my advice is to sit next to them and solve a very hard problem together. You will learn who they are by watching how they think.
Jobbar och löser svåra problem tillsammans gör vi i stort sett dagligen och visst lär man sig saker om varandra då, men kanske inte på den nivå som behövs, så Michaels tips kommer man inte långt med heller. Så jag började googla efter andra sätt att jobba med tillit och psykologisk trygghet och hamnade rätt snart på Orangino Work, trots att det är så pass nytt och ännu rätt begränsat i spridning. Det verkar ha hittat sin nisch, ett enkelt verktyg för att få igång de diskussioner som behövs för att lära känna varandra och jobba bättre ihop.

Nu ska det bli intressant att se hur det utvecklas, både verktygets fortsättning hos teamet jag ingår i samt vilken effekt det har hos andra team i världen. Väntar på att få läsa om hur det funkar i verkligheten hos nån annan!



torsdag 19 september 2019

Kan du sätta ord på dina känslor?




Jag har lett några förbättringsmöten (retrospectives) på sistone och inlett dem med aktiviteten One Word check-in med frågan: "Hur skulle du beskriva senaste sprinten med en känsla?"

Det verkar inte vara helt lätt att hitta orden för att beskriva sina känslor. Så här nedan kommer en lista med känslor. De kommer från en kortlek jag har haft sen jag lärde mig om nonviolent communication (nvc) eller giraffspråket. Eftersom nvc fokuserar mycket på både känslor och behov och båda fanns med i kortleken så fick det här inlägget därför en lista med behov som bonus!

En senare version av kortleken finns att beställa här.

På nätet hittade jag en sida som listar känslor man kan ha när ens behov är tillgodosedda och en sida för känslor när det är tvärtom.

Lista med känslor

Korten i kortleken var färgkodade som en slags gruppering. Ingen gruppering var dock namngiven, men det kanske är hyfsat tydligt ändå. Orden inom parentes antar jag är synonymer eller i alla fall ligger nära det första ordet.
  • Entusiastisk
  • Full av energi (energisk, livfull)
  • Glad (nöjd)
  • Lugn (avspänd, centrerad)
  • Lycklig (lekfull)
  • Lättad
  • Redo (startklar, i form)
  • Stolt (nöjd)
  • Säker
  • Tillfreds (fridfull)
  • Vaken (alert)

  • Berörd (lättad)
  • Förvånad (nyfiken)


  • Deprimerad
  • Förbannad (arg)
  • Hat (hämndlysten)
  • Naken (blottad)
  • Skuld
  • Sur (bitter)
  • Svartsjuk (avundsjuk)

  • Arg (irriterad)
  • Bekymrad (olycklig)
  • Besviken
  • Blyg (generad)
  • Ensam (liten)
  • Förakt (avsky)
  • Förtvivlad
  • Förvirrad (perplex)
  • Hungrig (sugen)
  • Illamående (äckel, avsmak)
  • Irriterad (frustrerad)
  • Ledsen (sorgsen)
  • Likgiltig (uttråkad)
  • Låg (energilös)
  • Maktlös (låg)
  • Nervös (spänd, orolig)
  • Otrygg (orolig)
  • Otålig (rastlös)
  • Panikslagen
  • Paralyserad
  • På dåligt humör (låg, nere)
  • Rasande
  • Rädd (ångestfylld)
  • Skamsen (ångerfull, skam)
  • Smärta
  • Sorgsen (deppad, nere)
  • Splittrad (disträ, kluven)
  • Sömnig (trött)
  • Trött (slutkörd)
  • Tveksam (splittrad, osäker)
  • Törstig
  • Utmattad (slut)

Lista med behov

  • Acceptans (betydelsefullhet)
  • Att bli förstådd (att bli sedd, empati)
  • Att bli lyssnad på (empati)
  • Att bli sedd (bekräftelse, erkännande)
  • Att följa sin drömmar
  • Att förstå (information)
  • Att ge till andra (att bidra)
  • Att hålla löften (integritet)
  • Att lära sig nåt nytt (utveckling, växande)
  • Att må bra (hälsa, hygien)
  • Att påverka (att göra skillnad, mening)
  • Att sörja (utrymme att sörja)
  • Äventyr (variation)
  • Avslappning (bus, avspänning)
  • Balans (jämvikt, ömsesidighet)
  • Bus (att ha kul, att fira)
  • Fred (harmoni, frid)
  • Frihet (frihet att välja - autonomi)
  • Gemenskap (samhörighet)
  • Hjälp (stöd)
  • Inspiration (kreativitet, att skapa)
  • Intimitet (sexuellt uttryck, sex)
  • Kärlek (värme, närhet)
  • Kommunikation (kontakt)
  • Lugn (ro)
  • Mat och dryck (näring)
  • Omtanke (ömhet, omsorg)
  • Omväxling (stimulans)
  • Ordning (reda, struktur)
  • Respekt (integritet)
  • Respekt (värdighet, självvärde)
  • Rörelse (motion)
  • Säkerhet (trygghet, förutsägbarhet)
  • Samarbete (delaktighet)
  • Sammanhang (mening)
  • Skönhet
  • Tillit (tilltro, förtroende)
  • Trygghet (skydd)
  • Värme (trygghet)
  • Vila (sömn)

lördag 31 augusti 2019

Practice outside-the-box thinking with "Baba Is You"

This is Baba

 

I'm not sure if Baba is a rabbit or a dog or anything we know of at all.

But in the game "Baba Is You", on most levels Baba is YOU!

 

Which means that you can control Baba with your keyboard or game controller.

Make the rules

Baba Is You is a game with lots of levels. On a level, there can be different things, but Baba, a flag, walls and rocks are common. There also are texts. Texts can be pushed. When texts are combined into a meaning, that meaning, if valid, become a rule.

Like when the texts "ROCK",  "IS" and  "PUSH" is formed into the meaning ROCK IS PUSH.
Which means that Baba, or whatever you control for the moment, can push all rocks on the level.

Or WALL IS STOP
Which means that you cannot move past a wall or push anything on it.

FLAG IS WIN means that when you reach a flag, then you've finished the level.

How to play

Here's the first level, it's simple as can be.



The more levels you pass, the more different things and texts you will see. Quite often I've had to think really hard before solving a level (and since I didn't want to spend too much time in the game I've often peeked at parts of solutions on youtube).


You play the game by pushing things around and pushing texts around to alter the rules of the level, until you can reach something that IS WIN.

I think you should try this game of you like logic and bending rules to your favor. There's no stress and a bit similar to coding. And I can promise you that some levels require skills in outside-the-box thinking!

lördag 24 augusti 2019

My two take-aways from the book Getting Things Done



Getting things done
I'm a book reader. It's seldom I quit a book before having read it front to back. But this book bored me so much I couldn't cope finish it. To its defence, I tried to read it on the summer 2018, during my vacation, and maybe I felt a bit too distant from work to think about email organizing and all other organizing tricks the book's about.

But two things stuck and proved useful for my vacation projects and also later at work:

  • Write a list with the things you have to do
  • For each item on the list, find the next action required to move the item closer to completion
Write a list
Offload your mind with the things you are thinking about that needs to be done by writing them down somewhere. At that time, for me it was at least the things in the list below that popped up in my mind like an endless, tiresome loop.
  • Fix the snow fences on the roof (you'll see the problem in the image at the top)
  • Fix the hole in the rain water downpipe
  • Defrost the small freezer
  • Buy an extra battery for the lawn mower
Find the next action
Every item on the list looks deviously simple, it is first when you break one down into all the actions that's needed to finish it that you get a feeling for how much effort you will have to put in to be able to check it off.

I first focused on the snow fences. Last winter's snowfall had been greater than usual and when the snow started to melt and slowly move down the roof of the garage it took all three snow fences with it. They had to be replaced before next winter to avoid getting our cars "locked" in or out because of snow blocking the garage doors.
  • How much can be reused of the existing snow fences?
    • Check which parts are fine
    • Check with dad if he got tools to bend back the bent ones
    • Where can I find replacement parts?
      • Google for spare parts
      • Visit the local hardware store
Well, I won't tell you the whole story, the list with actions grew for sure, but those were my first actions to take for that single list item. And it felt like a great help having been forced to analyze it and see it written on paper. So simple and effective, but undervalued and underused?

At work
So, what use did I have for this at work?
I found the question "What is the next action for this?" very useful when cleaning up a cluttered kanban board. Going through the items on the board, one by one, clarifying the purpose of the item, it's status and what action to do with it next.

Although the technique is so simple, I guess there often exists a small resistance to do it. It's probably easier to start with a new item, and that that's a reason work items on a board gets stuck and lump together. I wonder if the kanban rule of setting an upper limit on the number of "Work in progress" just is a help to get over that small resistance.



söndag 19 maj 2019

One way to handle DateTime.Now when unit testing C# code

Hide DateTime.Now behind ITimeProvider?

To make code unit testable there is often a need to break dependencies between classes. This is normally done by hiding concrete implementations behind interfaces and injecting those interfaces  into the class that you want to test.

What if your code is dependent on the static DateTime.Now? Should you hide that behind an interface called ITimeProvider and suddenly have to pass that interface around?

In his book "The Art of Unit Testing", Roy Osherove suggests that you don't and that you use a solution like this class instead:

 public class SystemTime  
 {  
   private static DateTime? _date;  
   
   public static void Set(DateTime custom)  
     => _date = custom; 
   
   public static void Reset()  
     => _date = null;  
   
   public static DateTime Now  
     => _date ?? DateTime.Now;  
 }  

If you create such a class, then you can replace all the calls to DateTime.Now in your code to SystemTime.Now.

And in your unit tests you can use SystemTime.Set() to set what date should be returned from SystemTime.Now. After each test run, make sure to call SystemTime.Reset(). That call is preferably put in a teardown method, like [TestCleanup] if you're using MSTest or [TearDown] in NUnit.



fredag 10 maj 2019

Convert breakpoints to tracepoints when debugging multi-threaded apps in Visual Studio

Breaking the code execution on a breakpoint when debugging a multi-threaded application might change the execution flow of the different threads so much that you get a totally different scenario than you will have in production.

This problem can be remedied by converting breakpoints to tracepoints. A tracepoint can write text to the Output window and continue execution without stopping.

Set a tracepoint by first setting a breakpoint, right click it and select "Actions".

The message to be logged can contain predefined variables like
$CALLER - Name of the function calling the current function
$FUNCTION - Name of the current function
$TID - ID of the current thread

You can also get the value of a variable by using curly braces, like this: {variable_name}

When a breakpoint has been changed to a tracepoint the red bullet is changed to a diamond.



One call to the method in the image above results in this text being logged:

In MineSweeper.Program.TryParseDirection(string, out MineSweeper.Direction), called with directionStr = "S"

tisdag 16 april 2019

How a poorly chosen default value got a farm in trouble

Null Island
Have you heard about Null Island?
You find it southwest of Africa at the coordinates 0,0.

The thing is though, that there is no real island, only a buoy. Null Island is used to find geocoding errors, when finding a position for something fails and the coordinates become (null, null) or (0,0), Null Island is there as a default place for unmappable values.



A story of a poorly chosen default value
If you don't reflect about what default values you use, people can get in trouble, as in this true story.

In short, this is what happened:
  • A company in USA offers a service where you can enter an IP-address and the service responds with a geolocation where the computer is located.
  • When the mapping of a IP-address to a location fails, the company used the middle of USA as a default value.
  • Lots of IP-addresses can't be mapped correctly and are therefore mapped to the default value.
  • People, companies and the police are trying to find people through this service.
    Why trying to find someone via an IP-address? Suppose someone has used a computer to scam or threaten you, or used it for some other shady behaviour.
  • The default value points to a lone farm. A farm that suddenly receives angry phone calls, visits by strangers and the police. The people living at the farm has no clue to why this happens...
The company that offered the service eventually became aware of the problems of the farm and changed the default value to point to the middle of a body of water instead.






lördag 9 februari 2019

Have you tested these types of retrospectives?

The standard retro :)  :(  💡 
In the teams I've been a member of the standard retrospective has been variants of making a list of "What has been good, what has been bad, what can be improved". Sometimes this has been working very well, but sometimes the team runs out of ideas. Then it probably can be inspiring to do the retrospective a bit different than usual.

Activities from the book Agile Retrospectives
I'll use this post to shortly describe the types of retrospective activities that can be found in the book Agile Retrospectives, Making Good Teams Great. So read that book if you want more details.


If you're favourite activity for a retrospective isn't described below, I'd love it if you describe it in a comment to the post! 😃

The meeting structure
This is the meeting structure described in the book. Each stage got a list of activities that is a good fit for that stage. Some activities can be used in different stages of the meeting, but is listed only once.
  1. Set the stage.
    - Check-in
    - Focus on/Focus off
    - Explorer, shopper, vacationer, prisoner (ESVP)
    - Working agreements
  2. Gather data.
    - Timeline
    - Triple nickels
    - Color code dots
    - Mad sad glad
    - Locate strengths
    - Satisfaction histogram
    - Team radar
    - Like to like

    Will be covered in future posts
  3. Generate insights.
    - Brainstorming/filtering
    - Force field analysis
    - Five whys
    - Fishbone
    - Patterns and shifts
    - Prioritize with dots
    - Report out with synthesis
    - Identify themes
    - Learning matrix
  4. Decide what to do.
    - Retrospective planning game
    - SMART goals
    - Circle of questions
    - Short subjects
  5. Close the retrospective.
    - +/Delta
    - Appreciations
    - Temperature reading
    - Helped, hindered, hypothesis
    - Return on time invested (ROTI)
Activities to set the stage
Setting the stage prepares the team for the work they’ll do in the retrospective.

Check-in
Purpose:
Help people put aside other concerns and focus on the retrospective.
Help people articulate what they want from the retrospective.

How:
Ask one question that each person can answer with a word or two.

Examples: 
  • In one or two words, what is happening for you right now?
  • What is one thing that's on your mind?
Note:
It's OK to say "I pass"

Focus on/focus off
Purpose:
Help establish a mind-set for productive communication. Help participants set aside blaming and judgment—and fear of blaming and judgment.

How:
In small groups, discuss, reflect and describe the list of words in the list below. For example ,one pair of words per group. Focus on the first word, focus off the last word.
  • Inquiry rather than Advocacy
  • Dialogue rather than Debate
  • Conversation rather than Argument
  • Understanding rather than Defending

ESVP (Explorer, Shopper, Vacationer, Prisoner)
Purpose:
Focus people on the work of the retrospective. Understand people’s
attitudes to the retrospective. Use this to set the stage in a longer iteration, release, or project retrospective.

How:
Everyone reports anonymously his or her attitude toward the retrospective as one of the types in the list below. 
  • Explorers are eager to discover new ideas and insights. They want to learn everything they can about the iteration/release/project.
  • Shoppers will look over all the available information, and will be happy to go home with one useful new idea.
  • Vacationers aren’t interested in the work of the retrospective, but are happy to be away from the daily grind. They may pay attention some of the time, but they are mostly glad to be out of the office.
  • Prisoners feel that they’ve been forced to attend and would rather be doing something else.
The result is presented. If there is a prisoner or many vacationers that fact could be a topic for the retrospective.

Working agreements
Purpose:
Establish a set of behaviors that will support the team in having productive discussions. Establish that team members are responsible for monitoring their interactions. Provide candidates for day-to-day working agreements if the team doesn’t already have them.

How:
Team members work together to generate ideas for effective behaviors at work then choose five to seven agreements to guide team interactions or processes.

Activities to gather data
Gathering data creates a shared picture of what happened during the iteration, release, or project.

Timeline
Purpose:
Stimulate memories of what happened during the increment of work.

How:
Group members write down events that happened during the selected time period and want to share with the group. Each event is written on a separate paper and then placed on a timeline on a position that represents the time that the event took place.

Can be combined with a curve of how each person felt during the period. Each person can draw a line that stretches for the whole period. For moments that were good, draw the line high, for moments that were bad, draw the line low.



Triple nickels
Can also be used in the Decide what to do phase.

Purpose:
Uncover important topics about the period the retrospective is held for. Can also be used for generating ideas.

How:
Each person writes down topics or ideas on a paper. Then everbody passes the paper to the neighbour that writes down his or her topics or ideas related to the ones that already are on the paper. Repeat until that papers are back where they started.
Read the ideas for the group and discuss. Examples of usable debrief questions
  • Did anything surprise you?
  • Is anything missing?
  • What should we examine further?
I think this activity has been named Triple nickels because a person that used it asked three debriefing questions which she wanted five answers to, like "What five things stand out for you about what you've read?" A nickel is five cents.

Color code dots
Purpose:
Used in conjunction with a timeline to gather and show data about the feelings experienced during the timeline period.

How:
Use different colored stickers to mark the papers that were written for the timeline earlier. The color of the stickers indicate the energy level the person had when doing things related to the thing described on the paper.
Investigate the result, for example, if a paper got lots of high energy stickers, how come? What factors made people feel that way?

Mad sad glad
Purpose:
Get the feeling facts out on the table.

How:
Each person writes a card for every event that happened during the period that made the person mad, sad or glad. Cluster cards that is related to the same event and analyse the clusters.

Locate strengths
Purpose:
Identify strengths so the team can build on them in the next iteration.

How:
Pair up and interview each other with a focus on what went well and factors around it.

Satisfaction histogram
Purpose:
Highlight how satisfied team members are with a focus area. Provide a visual picture of current status in a particular area to help the team have deeper discussions and analysis. Acknowledge differences in perspective among team members.

How:
Each person anonymously grades his/her satisfaction with a certain focus area. Read the answers and draw a histogram to make the data visible.
Focus area examples:

  • teamwork
  • product
  • process
Grade descriptions example when focusing on team work:
  1. = I'm unhappy and dissatisfied with our level of teamwork
  2. = I have some moments of satisfaction, but not enough
  3. = I'm fairly satisfied. We work well together most of the time.
  4. = I am glad I'm a part of the team and satisfied with how our team works together
  5. = I think we are the best team on the planet! We work great together.

For a rather big team, that has a wide range of satisfaction for a topic, a histogram could look like the image below.


Team Radar
Purpose:
Help the team gauge how well they are doing on a variety of measures, such as, engineering practices, team values, or other processes.

How:
Each person grades (0-10) how well the team is performing for different factors. Present the average values in a diagram. Save it to be able to compare to the result next time doing the same activity.


Like to like
Purpose:
Help team members recall their experiences during the iteration and hear that others may have perceived it differently.

How:
Like to like is a team work variant of the game Apples to apples. Each person writes cards with things to stop doing, things to keep doing and things to start doing. These cards are then used in the game, and the players will try to find the best match of their cards to another card presented by a player having the role as judge.
Discuss insights from the game afterwards.




More activities
I'll try to write another post about the remaining activities described in the book later on. I hope this post has given you a sketchy picture of a few activities you'd like to try and/or read more about.

Here's two links to other resources for retrospective activities.
http://retrospectivewiki.org

tisdag 22 januari 2019

Four quick ways to know your peers' opinions: Dot voting, Roman voting, Fists of five and 1-2-4-all

What do your team members really think?

Imagine you are part of a team with six members and that you have an idea of a better furniture arrangement in your team room. You visualise your idea by drawing a sketch of it on the whiteboard and show it to your team. You ask your five peers if they like the idea.

  • One says 'yes',
  • one nods his head vaguely,
  • one turns around to his computer and gets to work again,
  • one sits staring and says nothing,
  • one asks 'When?'
    You answer 'Today, tomorrow? Better sooner than later.'
    She answers 'Perhaps'.


Now what?
Do you have consensus?
Can you go on with your idea and start moving things around?

To find out more what your peers really think, you could ask them to participate in a quick Roman voting.

Roman voting

You can ask 'Do you want to rearrange the furniture according to my idea?' and the people in your team can answer with their thumbs:

  • Thumb up = Yes, absolutely, go ahead!
  • Thumb sideway = Don't know or don't care, works for me.
  • Thumb down = No, absolutely not!

After the vote you will get a better understanding of where people stand. And the persons who vote thumb down can get a chance to make their thoughts heard. Perhaps they can find the idea attractive enough with a few adjustments that better suit their needs?

Fists of five

Same concept as Roman voting, but with more nuance because you use all fingers on one hand to grade what you think.
  • Five fingers: This is a great idea. I wish I’d thought of it.
  • Four fingers: This is a good idea and has my full support.
  • Three fingers: I’m neutral. The idea is OK. Maybe there’s a better idea. Maybe not.
  • Two fingers: I don’t like this idea. I’d prefer we do something different.
  • One finger: This is a project-threatening decision. We need to pursue an alternative.


Dot voting

When there are multiple alternatives to choose among, each person can use a number of dots to distribute among the alternatives that person feels most for. The alternatives with the most dots are the alternatives that the team is most interested in.



1-2-4-all

A technique to try to reach consensus. 
  • Everyone starts to think about what his own thoughts about something are.
  • Then people pair up and try to reach consensus in their two person group.
  • Then the pairs pair up to get groups of four and try to reach consensus in that group
  • Then the whole group tries to reach consensus, by this time lots of pros and cons of different alternatives can have been discussed.

Two young people demonstrating a lively conversation

More info

My initial thought was to make this post about thumb voting only, but then I found this page that describes all four techniques in more detail and also has a decision tree as a help to choose when to use what technique. 

tisdag 15 januari 2019

How to compare text files using Visual Studio Code or Notepad++

The need to compare

Sometimes I've had a need to compare two text files against each other, for example

  • to make sure that they were exactly identical
  • or to spot a minor difference among lots of text 
  • or just to make sure that the differences made sense, like when comparing configuration files for test and production environments.
Back in the days when I was using TortoiseSvn, it was as easy as selecting the two files, right click and select "SVN Diff" from the menu, as described here. Nowadays I do something of the following alternatives.

Compare in Visual Studio Code

Suppose you want to compare two files, "First.txt" and "Second.txt". 
  • Open them in VS Code
  • Make sure the explorer in VS Code is expanded
  • In explorer, right click one of the files and select "Select for Compare"
  • Then right click the other file and select "Compare with Selected"
  • See the diff






Compare in Notepad++

To compare files in Notepad++ you need to install a plugin. This was easily done in the plugin manager before, but it is no longer there, so you have to download the plugin and copy it to the Notepad++ plugin folder.
  • Download the compare plugin
    I'm using the 32-bit Notepad++ so I downloaded the x86 version
  • Unzip to
    C:\Program Files (x86)\Notepad++\plugins
  • Start Notepad++, open the "Plugin" menu and look for "Compare"
  • Open the files in Notepad++, select
    Plugins => Compare => Compare
  • To close the comparison, select
    Plugins => Compare => Clear Active Compare