some cyber-dojo measurements

cyber-dojo has hosted about 13,000 practice sessions so far. I've written a short ruby script to extract some measurements from a sample of 500 sessions. I was looking at transitions between red, amber, and green traffic-lights:
  • red means one or more tests failed
  • amber means the tests did not run (eg syntax error)
  • green means the tests ran and all passed
The first column is average number of lines added/deleted.
The second column is colour → colour transition.
The third column is sample size.

3.94 ambergreen 447
4.65 amberred 379
4.67 amberamber 1462
5.39 redgreen 607
6.01 redred 604
7.52 greenred 420
13.65 greenamber 436
17.67 redamber 432
22.18 greengreen 598

Here's how I interpret the results:
  • If you're at red or green and you make a small change (5.39,6.01,7.52) you're likely to stay at red or green.
  • If you're at red or green and you make a large change (13.65,17.67) you're likely to transition to amber.
  • There is a big spike in the number of amberamber transitions (1462). I speculate that long sequences of these transitions are occuring after a large 13.65 greenamber or 17.67 redamber transition.
  • I think the greengreen value of 22.18 is larger than it should be because it's including plain file renames.

deliberate duplication TDD at XP Days Kiev

Back in October I did a 90 minute TDD master-class at XP-Days Kiev using cyber-dojo. You can watch the video of the talk which is now online. In it I code a simple exercise (Print Diamond) using sliming and deliberate duplication with refactoring.
  • I discuss ‘sliming’ – the technique of hard-coding magic-numbers to make tests pass.
  • How can sliming help guide your choice of what test to write next?
  • How can sliming be combined with deliberate duplication?
  • With micro-refactoring?
  • How do you know you’ve slimed too much?
  • How and when should you unslime?
  • I look at the the word “unit” in Unit Testing to understand why the definition is useful.
  • I consider some very important differences between “real” code and “test” code – they are not the same.

systems-thinking at NorDevCon

Today I'm in Norwich to run a cyber-dojo at NorDevCon.
Last night I presented a short talk on Systems Thinking. Here are the slides:


From The Mind of War
He also came to appreciate the routine practice and repetition that was required to become really good at something and to overcome the boredom by focusing on minute improvements.

From Taiichi Ohno's workplace management
Once he asked me how the terms kaizen and kairyo (reform) were differentiated in the West. I said that while kaizen means to make improvements by using brains, kairyo means to make improvements by using money, and that in the West, most managers only think of improvement in terms of money. [Massaki Imai]

From Nudge
The best way to help Humans improve their performance is to provide feedback.

From Becoming a Technical Leader
People improve their performance not by amputating their old behaviors, but by adding new ones.

From The Toyota Way
Extra inventory hides problems... Ohno considered the fundamental waste to be overproduction, since it causes most of the other wastes… big buffers (inventory between processes) lead to other suboptimal behaviour, like reducing your motivation to continuously improve your operation.

From Smart Swarm
If individuals in a group are prompted to make small changes to a shared structure that inspires others to improve it even further, the structure becomes an active player in the creative process.

From Peopleware
The more you improve the way you go about your work, the harder the work will be.

The paradox of the CMM is that process improvement is good, but process improvement programs aren't, or at least they often aren't.

From Implementing Lean Software Development
The paradox is that in our zeal to improve the predictability of software development, we have institutionalized practices that have had the opposite effect. We create a plan, and then we act on that plan as if it embodies an accurate prediction of the future.

From Dr Deming
To improve output, production, sales, profit, quality, or any other important factor, every part of the organization had to improve.

From Toyota Kata
The improvement kata does not come to life in an organisation simply because it is a good idea.

In many cases the normal operating condition of an organisation - its nature - is not improving.

At Toyota, improving and managing are one and the same.

From Certain to Win
If a just-in-time production line had to wait for a formal decision process to work, it would hardly move at all, and it would never improve.

From Toyota Production System
Improvement is eternal and infinite.

From Quality Software Management: Vol 4. Anticipating Change
You need stability in order to make improvements.

Testing to improve, not to prove.

If leadership improves then the culture must improve.


From Thinking Fast and Slow
It is the mark of effortful activities that they interfere with each other.

From Wabi Sabi - the japanese art of impermanence
More than any learned ideas, it was the effort and attitude of the gardener that would decide the outcome of the garden.

From Maverick
In business, effort is too often confused with result.

From Wooden on Leadership
Effort is the ultimate measure of your success.

From Drive
Effort is one of the things that gives meaning to life. Effort means you care about something, that something is important to you and you are willing to work for it. [Carol Dweck]

From All I need to know about manufacturing I learned in Joe's garage
Fanatic: A person who redoubles his effort after having lost his direction.

From Zen in the Art of Archery
You had to suffer shipwreck though your own efforts before you were ready to seize the lifebelt he threw you.

From Mindset
It's startling to see the degree to which people with the fixed mindset do not believe in effort.

From The Conquest of Happiness
To like many people spontaneously and without effort is perhaps the greatest of all sources of personal happiness.

From The Mythical Man Month
Our estimating techniques fallaciously confuse effort with progress.

From The Aesthetics of Change
Cybernetics therefore suggests that 'all change can be understood as the effort to maintain some constancy and all constancy as maintained through change'.

From Simplicity
Simplicity means focused effort.

FromThe Principles and Practice of Fly and Bait Casting
One certain index of efficiency is the absence of effort.

Style is synonymous with efficiency, and style and effort do not go together.

Excessive effort is not only uncalled for, but if practised defeats itself.

From Zen Bow, Zen Arrow
One day of effort is one day of bliss; One day of sloth is a hundred years of regret.


From The Secrets of Consulting
A crisis is the end of an illusion.

People create illusions, which they build to replace the lost reality.

We soon find ourselves spending all our energy maintaining the illusions.

When you create an illusion to prevent change... the change becomes more likely and harder to take.

From The Alchemist
"Tomorrow, sell your camel and buy a horse. Camels are traitorous: they walk thousands of paces and they never seem to tire. Then suddenly, they kneel and die. But horses tire bit by bit. You always know how much you can ask of them, and when it is that they are about to die."

From How to use Conscious Purpose Without Wrecking Everything
Ignoring feedback merely means that the system will eventually experience a massive unpleasant surprise rather than a small unpleasant surprise.

From An Introduction to General Systems Thinking
They know "better" - which is to say that their illusion is stronger.

The more sure we are the more likely we are to suffer an illusion.

From Thinking Fast and Slow
This quality of pastness is an illusion. The truth is, as Jacoby and many followers have shown, that the name David Stenbill will look more familiar when you see it because you will see it more clearly.

From The Logic of Failure
If we never look at the consequences of our behaviour, we can always maintain the illusion of our competence.

The results also support the idea that activity may foster an illusion of competence.

From Existentialism and Humanism
I should be without illusion and I should do what I can.

From Switch
Positive illusions pose an enormous problem with regard to change.

From Mind and Nature
In Ames experiments, you are always made to observe the truth before being subjected to the illusions.

From Quality Software Management. Vol 4. Anticipating Change
It is easy to look at this diagram and believe that you're seeing a defined process. You're not. What you're seeing is an optical illusion.


From Implementing Lean Software Development
The paradox is that in our zeal to improve the predictability of software development, we have institutionalized practices that have had the opposite effect. We create a plan, and then we act on that plan as if it embodies an accurate prediction of the future.

From Slack
When the new automation is in place, there is less total work to be done by the human worker, but what work is left is harder. That is the paradox of automation: It makes the work harder, not easier.

From Peopleware
The paradox of the CMM is that process improvement is good, but process improvement programs aren't, or at least they often aren't.

From The Lean Startup
The paradoxical Toyota proverb "Stop production so production never had to stop."

From Experiential Learning 3: Simulation
Paradoxically, realism often interferes directly with learning from a simulation.

From Free
Paradoxes are the opposite of contradictions. Contradictions shut themselves down, but paradoxes keep themselves going, because every time you acknowledge the truth of one side you're going to get caught from behind by the truth on the other side.

From The Road Less Travelled and Beyond
If a concept is paradoxical, that in itself should suggest that it smacks of integrity and has a ring of truth.

When you get to the root of things, virtually all truth is paradoxical.

From Zen Soup
The words of truth are always paradoxical [Lao Tzu]

From The Aesthetics of Change
A paradox in ecology is that the most flexible species are the dullest. When a flexible species is not controlled by its ecosystem, ecological climax breaks down and a system of weeds remains.

From Management of the Absurd
The real strength of a leader is the ability to elicit the strength of the group. This paradox is another way of saying that leadership is less the property of a person than the property of a group.

From Adapt - Why Success Always Starts With Failure
Cognitive dissonance describes the mind's difficulty in holding two apparently contradictory thoughts simultaneously.

From The Book of Five Rings
The practice of all the arts is for the purpose of clearing away what is on your mind. In the beginning, you do not know anything, so paradoxically you do not have any questions on your mind. Then, when you get into studies, there is something on your mind and you are obstructed by that. This makes everything difficult to do.

From Mastery
Those we know as masters are dedicated to the fundamentals of their calling. They are zealots of practice, connoisseurs of the small, incremental step. At the same time - and here's the paradox - these people, these masters, are precisely the ones who are likely to challenge previous limits.