Learning about the Theory of Constraints with The Bottleneck Game

How to improve your software delivery process

When it comes to improving the way we deliver software projects, it’s rarely technology that’s the real problem. Nor is it inevitably a skills issue. Instead, the greatest challenge with building software is this: How do you spot the problem when you can’t see the process?

That’s where The Bottleneck Game comes in. The Bottleneck Game simulates a production line at the Hats and Boats Company where its workers are paid a fair wage (by chocolate of course!) to produce pairs of hats and boats. For each pair of hat and boat produced by the team, the team gets paid a bonus (in the form of chocolate of course!). You don’t get fairer than that as jobs go.

The game teaches us about the Theory of Constraints (TOC). According to the Theory of Constraints, every system has one key constraint which determines the throughput of value. This constraint is called the ‘bottleneck’. The theory states that we can improve a system’s throughput by applying the Five Focusing Steps on the bottleneck. Any effort spent on any constraint other than the bottleneck will have little impact or even have an adverse effect on the existing system.

The Five Focusing Steps

Step 0: Make the goal of the system explicit – Make clear the goal you want to achieve.

Step 1: Find the bottleneck – You can spot a bottleneck because it’s usually a stressed out resource, with work piling up upstream to it and resources sitting idle downstream from it. A chain is only as strong as its weakest link. Do something with the bottleneck to improve the system as a whole.

Step 2: Exploit the bottleneck – Begin by ensuring the bottleneck resource is 100% utilised, focused on delivering value and working at a sustainable pace. Make sure there’s always work with high value available for the bottleneck to work on.  After all, Time is Money. As you’ve already paid for the bottleneck resource, this step requires no extra investment nor increases your operating expense.

Step 3: Subordinate everything to the bottleneck – This means the rest of the system must subordinate decisions to help out the bottleneck. Since the bottleneck is the most important part of the system, get the rest of the system to work at the pace of the bottleneck to help deliver the maximum value possible. Like the Exploit step, this step comes at little or no extra cost since you’ve already paid for the existing resources to deliver value. By definition, a non-bottleneck resource will always have slack, so you can also get the non-bottleneck resources to share some of the workload of the bottleneck.

Step 4: Elevate – You elevate by investing on training and tools for the bottleneck and other team members. You can also increase the number of the type of bottleneck resources. Since all these actions incur extra cost, you should apply Elevations only when you can’t find any more Exploits or Subordinations (which come at no extra cost in comparison). The Five Focusing Steps focuses on maximising the value of your existing investment before incurring further cost.

Step 5: Rinse and repeat – Once the bottleneck’s situation is improved and it’s no longer the primary constraint, the secondary contraint that determines the throughput of the system gets a promotion! It becomes the new bottleneck and you get the chance to apply the Five Focusing Steps all over again. Practice makes perfect!

It all sounds like hardwork and so much fun…

That’s because it is with The Bottleneck Game! Look at the intense expression on each player’s face. In spite of all the tricky origami involved, everyone who plays with us is always keen to stay after the game to talk some more about how to apply the Five Focusing Steps to their work.

Pascal and I will be running The Bottleneck Game at Agile 2009 in Chicago on 26 August. Restrictions* apply!

* There’s a maximum of 60 places in the session, so join us early to get a good seat!

Can You Bear to Care?

(In a team space near you)

Apprentice: My code is thoroughly tested.
Agile Coach: There are no unit tests.
Apprentice: I used my eyes.
Agile Coach: Always listen to your Agile Coach.
Apprentice: Yeah-But-No-But-Yeah-But.
Agile Coach: And always question your Agile Coach.

Do you care enough?

Agile is for people who care. People who care about what they do. People who care about quality. People who care about people. Agile makes me think. It forces me to listen without judgment. To really understand. After all, everyone adds value and we can only change ourselves.

‘Nothing is to be feared, it is only to be understood,’ said Marie Curie, ‘Now is the time to understand.’

A good coach lets you make mistakes. A good coach creates opportunities for you to learn. A good coach gives you room to grow.

Now is the time to understand.

The Power of Play

Let the fun begin!

Games make learning fun instead of only growing pain. As children, we learn through play. And because play is so much fun, we play some more until a virtuous circle is formed where we play and learn to play to learn. In my experience, adults learn most effectively in the same way.

By learning through play, we pack in the practice at doing the things we enjoy and so we begin to achieve, getting a little (or, in some cases, a lot) better at what we do every day. Think ‘baby steps’. Little and often.

And when practice brings results, it gives us a sense of achievement and so we practice some more until doing what we do becomes a habit, becomes part of who we are.

By making practice a habit, we’re able to discover what we’re really good at and eventually, all those hours add up to make us proficient at doing the thing we enjoy doing most.

Add in the necessary ingredients of support, guidance and courage, and the moment you attain proficiency should collide just-in-time with opportunity. That’s when you suddenly realise you’re doing what you love or at least loving what you do. And getting paid for it. There’s your TADA! moment. And it feels like magic.

And because your Fun Flywheel is already spinning, that breakthrough will fuel your courage and desire to achieve even more, so you’ll continue to practice and, because you know the secret to practice is through play, you’ll never tire of training to become better every day.

The Enduring Memory of Play

Why turn work into play?

  • Breaks down organisational boundaries – Such as when senior managers haggle with developers, as a team, over whether building a Mars station will bring in more business value than a Castle
  • Connects people – Creates a shared experience that lasts way beyond a 90-minute gaming session into daily work
  • Creates a sense of common purpose – Unites people from different teams and departments, sometimes for the first time, towards a common, tangible goal
  • Increases understanding between colleagues – Clearly demonstrates how everyone has strengths and can use the strengths of others to overcome their own weaknesses by working as a team
  • We can’t resist having fun – Opens our minds long enough to challenge what we think so we can grow

It is these kinds of mementoes that help form a team, so that when the going gets tough, we can help one another through the storms to become a high performance and happy team.

Choose Your Attitude

Everything is changeable. Only change is eternal.‘ – Truism

The Problem With Me

The thing I hate most about myself is that I don’t want to change. Truth be told, I resist change a lot more often than I’d like to admit. In my cool and contemplative moments, when I’m not preoccupied with resisting change, I’ve been able to identify the following reasons of why I resist:

  • Fear of the Unknown – ‘Only fools rush in. Who knows what lies ahead?’
  • Fear of consequences – ‘What if it all goes wrong? What happens then?’
  • Fear of waste – ‘If things don’t work out, I’ll have wasted all that time and effort that I could have spent on something else.’
  • Lack of confidence in my own ability – ‘Can I really achieve what I set out to do?’
  • Fear of ridicule – ‘This might make me look like a right fool in front of others.’

That’s a lot of fear to deal with. Nonetheless, let’s imagine I manage to remain calm and collected. From my tight ball of nerves, self-doubt and indigestion, a simple thought emerges, like a pure drop of water from the French Alps. The root cause of all my fears is my fear of F-A-I-L-U-R-E.

Try and Do Your Best

The fact is, Resistance and Flow both require energy. Unlike Resistance which shuts down the thinking you and limits your options, Flow enables you to keep an open mind. Flow helps you focus on the present. Flow keeps you moving. Before you know it, you embrace and thrive on change instead of cloying into a tight ball of nerves, self-doubt and indigestion going nowhere.

Catch Yourself Doing Things Wrong to Do Them Right

I’ve learnt to manage the Resisting Me. Whenever something becomes difficult, ‘DING!’ goes the bell in my head, clear as a drop of water from the French Alps, and I ask myself: ‘Am I resisting? Why am I resisting? What can I do to flow?’

  • Fear of the Unknown translates into ‘Let’s hear out your idea.
  • Fear of consequences becomes ‘What are the risks and issues?
  • Fear of waste translates into ‘If things don’t work out, I’ll have learnt something valuable.
  • Lack of confidence in my own ability becomes ‘What does the situation remind me of? What did I do to make it work the last time around?
  • Fear of ridicule translates into ‘She who dares grows.

Of course all of this only matters if you choose your attitude today. And the one you take to work tomorrow.

Get Ready for XPDays Benelux 2009!

If you were to ask me, ‘What’s the best way to get the most out of a conference?’ I would reply, ‘To present a session – it’s a great opportunity to consolidate, reflect on and share your experiences! Plus you’ll amplify your learning by getting feedback from a live audience.’ In my experience, presenting (and, better still, co-presenting) is more fun than you can ever imagine.

If you were to ask me, ‘If I could only go to one Agile conference this year, which should it be?’ I would reply, ‘XP Days Benelux of course! It’s a conference organised by Agilistas for Agilistas. And we mean it.’

At XP Days Benelux, we create better conferences year on year by putting the Agile Values and Practices into practice.

  • Communication: The first step in participating is to submit a session proposal. It’s the best way of getting the most out of a conference!
  • Simplicity: We encourage folks to submit their proposal as early as possible – even (and especially) if it’s in draft form. A great way to know if an idea is any good is to sound it out on an audience.
  • Feedback: We ask all submitters to provide feedback on proposals using The Perfection Game. The best proposals are the result of iterative and collaborative thinking. And, of course, great sessions help create a great conference!
  • Courage: Every presenter takes a chance when they submit a session. With so much to gain, what’s there to lose?
  • Respect: At XP Days Benelux, we provide an open and friendly environment where we can have fun and learn from one another.

Why not submit a session proposal today?

Hurry! The closing date for proposal submissions for XPDays Benelux 2009 is 1 August 2009. Find out more about past XP Days Benelux conferences here.

Be Remarkable – Be a Purple Cow!

A crisis is too good an opportunity to waste
– Anon.

Meet the Purple Cow

‘Something remarkable is worth talking about. Worth noticing. Exceptional. New. Interesting. It’s a Purple Cow. Boring stuff is invisible. It’s a brown cow.’ (Seth)

Are you seeing purple?

When it comes to changing for the better, there’s no time like the present.  According to Seth Godin, the key to succeeding in an age with infinite choices, impossible-to-tell-before-you-buy quality and grossly limited time is to be remarkable. To be purple.

The 4-step guide to breeding Purple Cows

  1. Come up with a remarkable idea: Invent a Purple Cow!
  2. Milk the cow for everything it’s worth.
  3. Have a Purple Cow succession strategy: Create an environment conducive to nurturing Purple Calves.
  4. Rinse and repeat.

Advertising alone is not enough

  • Be innovative – Stop advertising and start innovating!
  • Appeal to early adopters – They’re the sneezers who’ll propel your idea or product among the slower adoption groups in Moore’s idea diffusion curve.
  • Invest in talent and put in the hardwork – The Purple Cow requires talent and a lot of hardwork. A Purple Cow isn’t a quickfix.
  • Differentiate your customers – Target and reward the sneezers. Focus on the sneezers.
  • Measure, measure, measure – from your products to interactions. Respond to the feedback by adapting and changing for the better.

How now Purple Cow?

Here’s Seth’s takeaway in a nutshell. It’s got Agility built-in.

  • Trust: Be authentic in what you say and do.
  • Iterate: Iterate over the things you do.
  • Incremental Change: Develop new ideas and implement them incrementally.
  • Courage: Encourage new ideas and embrace change. Instead of saying, ‘That sounds like a good idea, but…’, try ‘Why not?’

Things to remember during your stay on Animal Farm

  • Boring is risky and, according to Seth, always leads to failure.
  • ‘The Purple Cow is so rare because people are afraid.’ (Seth)
  • Wake up and smell the cheese! What would you do if you weren’t afraid?

The Quiet Strengthening of Willpower

Most runners run not because they want to live longer, but because they want to live life to the fullest. If you’re going to while away the years, it’s far better to live them with clear goals and fully alive than in a fog

– Haruki Murakami

Experience that counts

If you were to ask me: ‘How long have you been running?’ My reply would be: ‘I first started running four years ago. Since then I’ve run three races, two 5ks and one 10k, both for Cancer Research, raising around £1500 in total.’ If you were to ask me how much experience I have in running, my reply would be: ‘One month.’

That’s because I consider elapsed time and actual experience in doing something to be two different things. The figure of one month is the actual amount of learning and training I actually did if I were to condense all the time and effort spread over the four years.

Take for instance someone who says they’ve got over twenty years of experience in software delivery. What I would want to know is if it’s twenty years of concentrated learning and experience or if it’s the same year repeated twenty times. It’s important to distinguish between the two because they differ tremendously in value.

Running for your life

Since I’m aiming to run this year’s Cancer Research 10k in 55 minutes or less (a new personal best), I’ve decided to take things more seriously. I’ve been asking fellow runners for advice, reading runner magazines and have even undergone gait analysis (this involves running on a treadmill in a sports shop in full view of passersby looking bemused while sipping their lattés).

And, thanks to my newfound surge of seriousness, I stumble on Murakmi’s novel about his experience as a runner and writer.

What I talk about when I talk about running

In his novel about writing, What I Talk About When I Talk About Running, Murakami identifies the top three qualities of a novelist (which, conveniently, also applies to a runner or anyone with a goal) as:

  1. Talent
  2. Focus
  3. Endurance

Shooting Stars

The top quality has to be be talent. You’ve got to have a bit of this to succeed. Murakami acknowledges that talent is more of a prerequisite than a talent. That’s a brutal fact. Talent is a slippery thing. Firstly, you can’t control the amount of talent you’re endowed with. Secondly, assuming you’ve got some, it comes and goes as it wishes, instead of being summonable like willpower (and willpower itself can only be honed through practice and discipline).

Focus, focus, focus!

Murakami describes focus as ‘the ability to concentrate all your limited powers on whatever’s critical at the moment’. Without focus, it’s impossible to achieve anything of value. But it’s not all doom and gloom. The good news is that focus can compensate for erratice or even a lack of talent.

Hasten slowly, steady does it

Murakami compares endurance with breathing, ‘If concentration is the process of just holding your breath, endurance is the art of slowly, quietly breathing at the same time you’re storing air in your lungs’.

You get what you put in

The really good news is that unlike talent, both focus and endurance are disciplines and therefore can be acquired and improved with lots of practice. Apply a regular stimulus to step up your training level, then rinse and repeat. Last but not least, remember to be patient. It’s with this regime that Murakami guarantees results in our endeavours.

As usual, I get a second opinion. ‘How do you get so fit?’ I ask Brad, the gym instructor. ‘Two things. Diet and a lot of effort’. Sounds simple. And it’s anything but easy.

Integrating Agile 2009: A Retrospective

 

What Went Well

  • Henrik Kniberg‘s opening keynote on ‘The Thinking Tool Called Agile’ reminds us that Agile is a tool and therefore a means to an end. It shouldn’t be a goal in itself.
  • Rob Westgeest promoting XP Days Benelux 2009, the most fun-filled and educational Agile conference I know.
  • Pair poetry writing with Pascal – we wrote a haiku to capture the lifelong journey towards achieving Flow.
  • Rob Thomsett‘s curious and entertaining closing keynote about IT teams from the perspective of Management which made me laugh out loud lots!
  • Co-presenting a session on The Toyota Way and how to make Lean and Agile endure with Pascal Van Cauwenberghe, featuring Snow White and the Seven Dwarves implementing a kanban system and applying Pull!

What Went Wrong

  • Only session titles were available on the programme – there weren’t any full session descriptions to provide details on what the sessions were about.
  • The nightclub setting and poor lighting made it difficult for participants to focus during presentations.
  • The programme didn’t cater for interactive or experiential sessions to promote active learning.
  • One day conferences are too short when there are so many folks to meet and learn from!
  • Pascal and I didn’t attend any sessions because we wanted to rehearse our session some more, face-to-face.

Puzzles

  • Is the Toyota Way easier to implement in Japan because of the hierarchical nature of Japanese culture?
  • And so what if this is the case? Is it reason enough to not practice the Toyota Way simply because it’s harder if you’re not Japanese?

Lessons (Re-)Learnt

  • The Toyota Way in a nutshell: Think ‘Long-term’, Respect for people, Continuous Improvement.
  • The Agile (XP) Values complement the principles of Lean and enable us to make a mindset shift based on long-term philosophy.
  • Continuous Improvement is about being better than you were yesterday everyday.
  • The importance of taking responsibility for our behaviour and what we do.
  • Miyamoto Musashi, a famous seventeenth century warrior who lived to a ripe old age, says the secret of his success is: “Do not develop an attachment to any one weapon or any one school of fighting’ – it’s about mixing and matching your tools according to the context. There is no one tool that fits all. Magic bullets don’t exist.
  • I have much to (re-)learn.

Appreciations

  • Many thanks to the organisers for looking after us during our brief stay in Amsterdam!
  • To the enthusiastic participants who attended The Toyota Way session and their subsequent conversations about how we can help teams grow.

Integrating Agile 2009

Pascal and I are in Amsterdam next Wednesday to present ‘The Toyota Way‘ at the Integrating Agile Conference. The conference is organised by the Agile Consortium and focuses on ‘the integration of the Agile way of thinking and working with existing organisational processes and structures’.

Being phat and keeping it Lean

I’m really looking forward to the conference because:

  1. Pascal and I’ll be co-presenting a new version of ‘The Toyota Way’ – it’s the first time we’ll have presented this session together and we’ll be sharing stories based on our experiences as Agile Consultant-Coaches to illustrate how we use Lean and Agile to create effective (and happier) teams that deliver business value fast.
  2. Henrik Kniberg‘s an inspiring speaker with genuine and extensively applied Agile and IT experience and he’s giving the opening keynote.
  3. I’ll be learning firsthand from more practioners of Lean and/or Agile.

Interested?

To help grow the Agile Benelux Community, the organisers are offering a 50% discount in the run-up to the conference. All sessions will be in English. To qualify for the discount, simply mention you’re a reader of the ‘Selfish Programming Blog’. We hope to see you there!

XPDay France 2009 – Une Rétrospective (version originale)

Qu’est-ce qui était bon?

Qu’est-ce qui était mauvais?

  • Les repas n’étaient pas très  bons (et normalement, j’adore goûter la cuisine française!)
  • Il n’y avait pas de glaces près du lac par un temps tellement beau
  • Rater la séance musicale par Bernard ‘Ben’ Notarianni

Les questions grandes et petites

  • Qu’est-ce que ça veut dire lorsqu’on croit qu’on n’a rien appris d’une session?
  • Qu’est-ce que ce que nous pensons des autres nous dit sur nous-mêmes?
  • Quel est le but des keynote speakers?

Ce que j’ai (re-)appris

  • Nous pouvons seulement changer nous-mêmes
  • Chacun apporte de la valeur
  • Comment on joue un jeu nous dit beaucoup sur comment on travaille
  • L’importance de suivre le Responsibility Model sur nous-mêmes

Les appreciations

  • Merci à Sara Lewis et Raphaël Pierquin pour la traduction du jeu de ‘Miroir, gentil miroir… pourquoi moi?’
  • Merci à Laurent pour la traduction du jeu de valeur métier
  • Merci à Pascal pour avoir documenté le feedback de la retrospective de ‘Miroir, gentil miroir… pourquoi moi?’
  • Mille mercis comme toujours aux organisateurs de XPDay France pour un programme plein de choix
  • Merci aux enthousiastes de conte de fées agile (Agile Fairytales) pour leur esprit ouvert et ludique

A l’année prochaine! Voir ici pour ce billet en anglais! Entretemps, vous pouvez trouver les avis des participants par rapport nos sessions sur agilecoach.net.