Ken Robinson on Changing Education Paradigms

My friend from the AYE conference, John, just reminded me about the clip below. It has an important message, but there’s another reason to watch it too: the presentation is stunning.

In the clip, Ken Robinson argues that our schools are using methods designed for a different age. Those methods are no longer helpful. We live in different times.

If you want to learn more about the history of our schooling system, and how it could evolve, I recommend Russell Ackoff’s “Turning Learning Right Side Up”.

Sketchnoting a Russell Ackoff talk

Listening to Russell Ackoff speaking, I “sketchnoted” this in Brushes on my iPad. I’m a very visual thinker, so this is a way for me to make things stick a little better in my brain, plus it’s very fun and relaxing to do.

I don’t worry to much about my handwriting and general drawing skills. I just draw. It will be interesting for me to see how my drawings change over time, because my guess is I’ll be doing a lot of this, just for the fun of it.

If you’re interested in the topic of systems thinking, go ahead a watch Ackoff’s talk. I’m afraid my sketchnotes may not be very intelligible for anyone else but me, but I highly recommend the method as a way of taking notes and processing new information.

Big thanks to Esther Derby for telling me about sketchnoting!

Tankar om rollerna i Scrum

Jag skriver på en bok med arbetsnamnet “Nyckeln till Scrum”. Min erfarenhet säger mig att de som lyckas bäst med Scrum är de som inte bara kan metodens praktiska steg, utan som också förstår varför den är utformad som den är. Beväpnad med den förståelsen öppnar sig också vägen framåt, möjligheten att gå bortom Scrum. Det här är ett avsnitt som handlar om roller, som kanske kommer med i boken.

Enligt ordboken på min Mac härstammar ordet ”roll” från det inte längre använda franska ordet ’roule’, som syftade på den rulle med papper som skådespelarens roll stod skriven på.

Till skillnad från andra modeller beskriver Scrum bara några få roller. Tre stycken, närmare bestämt: produktägaren, scrum mastern och utvecklingsteamet. Vi har inga speciella roller för de som deltar i utvecklingsteamet, utan nöjer oss så.

Varför behöver vi roller överhuvudtaget?

Det handlar om förenkling. Över tiden kan vi lära oss att närmast intuitivt agera inom ramen för en viss roll, eller bete oss på ett visst sätt i vårt samarbete med en person som verkar i en viss roll. Vi behöver inte hänvisa till en lång lista som beskriver ansvar och befogenheter. Vi vet vad som gäller, helt enkelt.

Roller som verktyg är ett dubbeleggat svärd. De förenklar, men kan också förenkla för mycket. När du hör att jag arbetat som projektledare associerar du vissa beteenden och mandat med det. Du kanske kan tänka dig ungefär vad jag jobbade med, vilka typer av utmaningar jag brottades med och vilken sorts beslut jag fick ta. Tyvärr har du förmodligen fel. Inga två projektledarjobb är lika varandra.

En fara med namngivna roller är att vi tror att vi vet vad som gäller när vi egentligen inte vet. Eftersom vi tror att vi vet ställer vi inte frågor om rollerna. Vi beter oss som om vi vore överens och blir förvånade när problem uppstår, eftersom vi var så säkra på att vi förstått varandra.

Samma utmaning finns när det gäller rollerna i Scrum. På pappret ser de tydligt definierade ut, men i praktiken är det inte är fullt så enkelt.

När jag undervisar i Scrum brukar jag dela ut varsin specialgjord kortlek till grupperna på kursen. På varje kort står ett ansvarsområde eller en fråga. Jag ber grupperna dela upp korten i tre högar, en för varje roll i Scrum, så att rätt kort ligger på rätt roll. Jag förklarar att de är klara när de är helt överens om sorteringen. Det blir de aldrig.

På ett av korten står ”Kan du förklara den övergripande arkitekturen?”. Gruppen vrider och vänder på argumenten för att lista ut vem som egentligen borde besvara denna fråga. Det brukar bli jämnt skägg mellan produktägaren och utvecklingsteamet. Några hävdar bestämt att det är utvecklingsteamet som borde ta denna fråga. Andra är lika säkra på att det är produktägaren. Det brukar sluta med att man får lägga kortet åt sidan.

När vi efteråt går igenom övningen frågar jag deltagarna om de kan definiera ordet arkitektur. Utan undantag visar det sig att de som tycker att produktägaren borde fått frågan anser att arkitektur handlar om produkterbjudandets olika delar, som produktägaren självklart måste behärska för att kunna förklara produkten. De som röstar på utvecklingsteamet tycker istället att arkitektur handlar om den rent tekniska lösningen, som teamet ansvarar för. Olika definitioner leder till olika syn på ansvarsområdena.

Flera frågekort är svåra att placera eftersom de beror på vilken kompetens som finns var. En fråga lyder: ”Exakt hur är det tänkt att den här dialogrutan är tänkt att fungera?” Somliga svarar snabbt utvecklingsteamet. Produktägaren ska ju inte vara inne och pilla i detaljer, och naturligtvis har vi antingen en separat gränssnittsexpert med i teamet, eller minst en utvecklare som behärskar området bra. Andra protesterar. Deras utvecklingsteam består av programmerare som inte behärskar gränssnittsutveckling, och ser det därför som självklart att produktägaren är den man går till för denna typ av frågor. Ytterligare andra menar att frågan handlar om situationen när teamet inte kan komma överens, och arbetet blir lidande för att ett beslut inte tas. De menar att det är produktägarens jobb att kliva in och ta beslutet. Vid ett tillfälle påpekade någon att det kanske handlar om utveckling av ett gränssnitt för en operatörspanel i ett kärnkraftsverk, och att produktägaren därför är med och bestämmer även om de minsta detaljerna, eftersom de är en sådan avgörande framgångsfaktor för produkten.

Det är sällsynt att någon helt missförstått någon av Scrums roller – ändå blir tolkningarna helt annorlunda. Sammanhanget avgör tolkningen. Vi är inte ute efter den enda sanna tolkningen, vi är ute efter den tolkning som passar bäst, utan att göra våld på rollens grundläggande skrivelse.

En fördel med att inte skriva rollbeskrivningar med extrem detaljskärpa är att de blir brett användbara. Nackdelen, om man får säga så, är att vi måste tänka efter mer själva. Vi måste sätta in rollen i sitt sammanhang, och se vad som händer då. Vi måste applicera metoden i vår kontext, lite på samma sätt som skådespelaren måste tolka sin roll utifrån den scen han står på och den pjäs han spelar. Det finns inte en sann Hamlet, lika lite som det finns en färdig definition av vad det innebär att vara produktägare, scrum master eller medlem i ett utvecklingsteam. Allt vi får är papperet med rollen på, sen är det upp till oss att på darriga ben stappla ut på scenen och agera.

Vilka är dina erfarenheter av namngivna roller på jobbet?

The Power of Completion: Great vs Excellent Teachers

When I practiced aikido, I was struck by the difference between good and excellent teachers. The good teacher would be more than willing to correct me when I did something wrong. Too willing, in fact. So eager were they to instruct me that they would interrupt me mid-motion to show me how to improve. The excellent teachers never did this. They would always let me complete a full technique, only stopping me when it was all done to explain, very briefly, one small thing I could do differently.

The difference was profound. I became annoyed at the instructors who interrupted me. I felt I couldn’t really learn anything when being interrupted all the time. With the good instructors, I would often find out myself what I was doing wrong, and correct myself before they could. I don’t know about you, but I find that things I discover myself stick a whole lot better than things I’m told by others.

What was going on here? I believe that being allowed to complete a full technique, even if that meant doing it less well, made it possible for me to judge the results by myself. The good instructors could spot I wasn’t going to get a great result just from watching my early movement, and stopped me. The great instructors saw this too, but understood that only by discovering this myself would I truly learn.

Systems thinkers will recognize this problem: it is a problem of working on the parts versus working on the whole. The good instructors thought that improving the parts separately could work. The excellent instructors knew that focus needed to be first on the whole, second on the parts.

What kind of teacher are you? What do you do to ensure that you give your students a chance to learn by themselves?

An Exercise for Defining Done for Scrum Teams

In this post, I’m going to share an exercise you could try for helping a team start their journey towards a clear and shared definition of what it means to done with a feature in a software product. I’m looking at this from the perspective of agile development with Scrum, but my guess is you can use this even if you’re not using Scrum. I’ve taken a core exercise I’ve used many times to help teams form a first definition of done, and combined it with some debriefing practices I’ve learned over the years. If you want to use this exercise, go ahead. If you run it a couple of times, you’ll be able to improve on it: then I’d love to learn about how you improved it.

Scrum has taken some flak because many perceive the model as lacking a clear focus on solid development practices such as automated unit testing, refactoring and code or design quality in general.

It’s true that Scrum does not supply us with a detailed definition of exactly how software should be developed. What we get instead are some general admonitions. From these, we need to create our own set of practices that are suitable in our specific context. Here are the general rules that Scrum gives us:

  • Every sprint should end with a done product increment
  • Done means having something potentially deployable, something of business value
  • Potentially deployable implies a well designed and well tested solution, documented with user manuals if those are needed for the product to be usable

As a quick sidenote, let’s explore why we like to say “potentially deployable”, rather than “deployable”. Adding that extra word – potentially – gives us a useful, albeit sometimes risky, window of flexibility. What it means in practice is that, if by the end of the sprint we realize that we could gain from deploying, we should be able to do that deployment with just a little extra work. In an ideal world, we would be able to deploy directly – and some companies can do this. However, a company just starting out with Scrum probably cannot do this. They need to improve the way they develop software until they can be “more done” every Sprint, thus acquiring the ability to capture potential business opportunities by deploying early and frequently. The risky part: some will be satisfied with building “good enough” product increments, forgetting that in the long run, insufficient quality very easily turns into terrible quality.

How does a team move from Scrum’s general definition of done to a detailed description of what done means for them? The team can get there over time, by inspecting and adapting every sprint. If for example, we notice that planning meetings take too long and are fraught with hostile discussions, we might want to explore if we really agree on what it means to be done with something.  If you and I are in the same team, and your definition of done is “if it compiles, ship it” and my definition happens to be “refactored, well designed and thoroughly tested”, we’re bound to have frustration and misunderstandings. If this is the case, a clear and shared definition of done will be very helpful.

Let me describe an exercise I often use in my classes and workshops. It builds on several ideas to help a team get going with their work on defining what done means to them. The ideas I’ve built the exercise upon include these:

  • When asked if we agree on something, we sometimes say yes just to avoid exposing a conflict, so we need to find a way to safely expose disagreements that prevent us from working well together
  • Agreeing on a definition of something is often hard work, so we could use some help to get going and to avoid some common pitfalls
  • Simply stating that you agree is not as powerful as when you actively participate in the discussion, so we can use a setup that entices as many as possible to step in and actively participate

Over the years, I’ve tried some different approaches to this. Let me give you a step by step description of the exercise the way I myself will do it the next time I use it. I think it will work well, because the core of it is about really activating participants and in getting the discussion going in an effective and safe way.

Preparation

  1. On a set of regular size pages, type out a list of items that might be included in a team’s definition of done, such as: “Code is refactored”, “Automated unit tests written”, and so on. Take care to express things clearly. I have a set of four or five pages with things. Some of them are quite uncontroversial (“Code written”), some are things that typically need to be discussed and refined (“Full performance test run”).
  2. Format the pages so that each thing stands on its own line, a couple of centimeters (an inch) high, with large type. Add horizontal separators between each line, so that the sheets can easily be cut into slips.
  3. Add an extra page with blank lines that the team can fill in themselves
  4. Print these pages and bring them – and a couple of scissors – to the workshop.

The Exercise

  1. Invite the team and set the room up so that everyone can work together comfortably around a large table.
  2. Explain that you are about to engage in an interactive exercise together, and that the purpose of it is to see if we can find a shared definition of what being done with a product increment means to this specific team in this specific project. If the team is new to Scrum, a mini-lecture about how defining done fits into Scrum’s iterative and incremental way of working will also help here.
  3. Hand out the sheets you prepared, and ask the team to cut them up into strips with the scissors you supplied. I prefer letting the team do this work, because doing something physical is an nice way for the them to slowly “warm up” for the hard parts of the
  4. Explain that the blank slips can be used to add missing items, if needed.
  5. While the team is doing the cutting, prepare a flip chart on the wall. On this flip chart, draw a vertical line down the middle, so that you get two columns of equal width. Over the left column, write the heading “Every sprint”. Over the right column, write “Before release”.
  6. Wait for the team to end their cutting, then ask for their attention. Explain the flip chart. Tell the team that you want them to take this flip chart and put it on their table. Say that you want them to sort their strips into the two columns. In the “Every sprint” column, they are to put every item that they agree should be performed by the team during each and every sprint. In the other column, “Before release”, they are to put items that they think are important, but that for some reason cannot be done in every sprint, but that definitely must be done before the product can be shipped out. There is typically no need to go into why something might end up in the “Before release” column, but if the question comes up, briefly explain that for technical or economical reasons, it can sometimes be hard to fit some things into the sprint, and that this may or may not be true for the current team.Defining done

  7. Explain that what comes next is very important. Once you have the full attention of the group, reveal that they will do the sorting under complete silence. This is usually quite surprising. Tell the group that they are to work in silence, until it is absolutely impossible to keep working silently. When this happens, but not before, they can start talking to each other.
  8. You also need to explain how the participants should handle differences of opinion during this part of the exercise. Explain that all participants have the right to place any slip in the place they think it should be. If anyone sees a slip that is in the wrong column, they can just move it to the right column. If you see someone moving a slip you just placed, just move it back again. You’ll notice if some slip keeps moving back and forth a number of times. If that happens, just place it on top of the line separating the columns, and keep working on some other slip. Don’t start talking when this happens, just keep going. When everything has settled down and you can no longer work in quiet, that’s when you can start talking about how to handle those hard to place pieces.
  9. Sit back and watch the team get to work. It’s quite fun. Take this time to practice your skills of observation – look at expressions, gestures, movements and think about what they might mean. If someone starts talking too early, gently remind them to work in silence for just a few minutes more, until most pieces have fallen into place.
  10. After some time, the team will notice it can get no further unless they start talking to each other. When this happens, most uncontroversial pieces have typically found their place, even though you can be sure there’s still no agreement. Depending on the team, you might need to facilitate this lightly. One way to do that is to ask some questions, like “I notice you’ve placed this slip here (point to a slip) – how did you decide on that?” Some teams naturally take to discussing, others need more help to get started.
  11. Let the team take its time working on the sorting. Remind them that we’re searching for a shared and usable definition of done, something that they could potentially use in their current project right away.

The Debrief

  1. With the slips sorted into columns, hand out some tape and ask the team to fasten the slips to the flip chart they’ve been working on, then to post the whole thing on the wall.
  2. Ask the team: “You’ve created your first definition of what it means to be done with a product increment in a sprint. What are your thoughts now?”
  3. Write down the reflections that come up, exactly as they come up, on an empty flip chart.
  4. Next, write the heading “Suggestions” on a blank flip chart, then ask the team: “What are your suggestions on what you as a team should do next?”. Clearly explain that we’re currently only after ideas, that we’re not deciding anything yet.
  5. Help the team do a silent brainstorming to identify as many suggestions as possible . My experience is that a silent brainstorming results in more and more-varied ideas. To do this, just hand out sticky notes and ask participants to write one suggestion per sticky note. Set a time for this, perhaps five minutes, or maybe ten. I usually go with five, then ask if more time is needed when those five minutes are up. When the time is up, let those still writing finish their notes, then ask participants to take turns posting and reading their suggestions.
  6. With all suggestions up on the wall: do a quick dot voting to gauge the group’s thoughts about the suggestions. Ask each participant to place exactly five voting dots on the suggestions he or she thinks has the greatest potential in helping the team perform better. Explain that they can place the dots any way they want, all on one suggestion or distributed over several sticky notes. Explain that this still does not mean we’re deciding anything – we’re just trying to get a feel for the group’s overall interest in the suggestions.
  7. When the suggestions have all been posted, write the heading “Next steps” on a fresh flip chart and tell the group that the time has come to see if they can decide on some next steps to take. Ask the group: “Can you agree on some next step?”. Someone typically shouts out one of the previously posted suggestions, or something that is a synthesis or rewording of one of those suggestions. Help the group formulate the next step as a clearly stated action. Ask the group if they agree that doing this action is desirable. Use thumb voting if needed: thumb sup means agree, down means don’t agree, sideways means “I don’t care, so I’ll go with what the majority decides on”. If someone shows a thumbs down, work with them to modify the suggestion or create a new one, until agreement is reached. If no thumbs are pointing down, the group has decided.
  8. Ask for more next steps, until you have enough to see that the team will take some clear next steps to keep moving with the work they’ve just done on defining done. If everything goes well, the team will suggest activities that relate to incorporating the new definition of done into the daily work. If things go less well, they might not – but this is also information, and you should be glad that it comes up now and not later, when you’ve tried to build a product without first agreeing on how to work together. Don’t be surprised if the team comes up with really inventive and ambitious ideas, and choose to act on them – my experience is that this happens more or less every time I work this way with a team.

The first definition of done agreed upon by a team in an exercise like this will not be the final one. Whatever you do, don’t print out and laminate this definition. As a team learns more, builds more capacity, and learns to work better together, they might realize that they can improve their definition of done. A team using Scrum then implements these improvements, and it does this in a way that ensures that the whole team is in on the changes.

A word of caution. You might think this whole exercise seems like a waste of time. After all, how hard is it to create a solid definition of done and just hand it to the team? In fact, if you’ve been in the software business for a few years, that’s not hard at all. However, creating that list does not mean that the team will use it. Defining done is more about finding consensus than it is about listing an optimal set of practices. I’ll take a less impressive but widely shared definition of done over an ideal but ignored list any day. If we know where we stand, we can always improve from there.

Who’s That From?

One of my fears when writing is that I will replicate, nay steal, what someone else has already said. – “Come on, everything has been said before”, was what I was told when I revealed my fear to a couple of speaking partners at the AYE conference a couple of years ago.

Speaking of the AYE conference. AYE, or Amplifying Your Effectiveness (which is not about some personal productivity technique, but rather about discovering more about how you can use yourself to get the results you’re after in your work), was instigated by Jerry Weinberg, whom I know as the world’s greatest consultant. I’ve learned so much from Jerry: a lot from his books, and a lot from attending his workshops and speaking to him. Every so often, I just grab one of his books from my shelf and read a random passage. It always inspires me, and sometimes surprises me.

Tonight, I was both inspired and surprised. Rereading a random passage from one of Jerry’s loveliest books – Secrets of Consulting – I found that what I read was just what I needed.

The passage I stumbled upon was one about the value of “listening to the music”. In essence, this is about how, as a consultant, you need to be in touch with all your senses and emotions, because they can all give you useful information.

What fit me so well this time was the fact that contrary to what I remembered, Jerry was not the source of the phrase “listen to the music”. In his book, Jerry very clearly attributes this phrase to a person he calls one of the world’s greatest consultants: Nancy Brown. I had no idea who Nancy Brown was, but I was completely sure that that phrase was Jerry’s, and nobody else’s.

This finding comforts me, because it reminds me of something I know I knew, but that I keep forgetting: even great writer’s are inspired by someone else. Or maybe more correctly: great writers especially, are inspired by someone else. Either way, there really seems to be nothing new under the sun. The story one person tells originated with someone else. The originator learned it somewhere else, and so on.

So what have I learned? Nothing really. I already knew I shouldn’t be afraid to publish on the grounds that what I say might already have been said. I remembered this one more time today. However, I did something else too. I published this little text, even though I’m quite certain I’m not the first person coming to this insight. And guess what: I’m almost OK with that.

A Stack Exchange on Scrum

Intrigued by the possibilites of the Stack Exchange platform, I’ve proposed a site for questions & answers on the topic of Scrum. On the Stack Exchange platform users:

  1. Post questions and answers
  2. Vote answers up or down, depending on how helpful they think the answers are
  3. Grow their ability to moderate the site as they engage more with it

I like how the creators of the platform aims to put the community in the driver’s seat, and I’m hoping this will take off. We’ll see about that: first, we need a number of early adopters to help define the site. Then we need a whole bunch of people to commit to working with it. If we get that, we’ll have a nice place to go for questions and answers from the Scrum perspective.

Is this something? If you think it is, you should go and check it out now.

How To Fail With Any Method, Guaranteed

  1. Start out with a lack of experience
  2. Because of this lack, put your faith in a method that should be able to help you
  3. Apply the method half-heartedly, get bad results
  4. Blame the method, don’t accept responsibility for your own results
  5. Because you’re not responsible, don’t bother learning anything, get no valuable experience
  6. Search for a new method that should be able to help you
Have you failed with a method? What did you learn? Don’t know what you learned, but you hate the method now? What can you learn from that?