Developing Thoughts

Rootle - Bitstarter

I’ve been following the Startup Engineering course on Coursera, and this is the fruit of my labour, a small page to promote and fund Rootle

7 months ago -

I heard Billy perform this on the radio the other morning. Before playing it he exclaimed "Death to Cynicism". I like that principle.

I do not like that man. I must get to know him better.

Abraham Lincoln


You have hands of raining water
And that earring in your ear
The wisdom on your face
Denies the number of your years

With the fingers of the potter
And the laughing tale of the fool
The arranger of disorder
With your strange and simple rules

Gypsy by Suzanne Vega. I’ve often wondered about those strange and simple rules.

If a thing is worth doing, it is worth doing badly.

G. K. Chesterton, What’s Wrong with the World

Why Rootle?

So what’s the point of Rootle?

I want people to make new mistakes.

To avoid re-making the old mistakes, we need to understand why we made them.

I see Rootle as being a mechanism for collecting together mitigating principles and practices. It will help us uncover them, getting to the root values, helping us generate new principles, and new practices, or to rediscover old values we’d forgotten. It may also uncover our contradictions, and help us to clearly see the dust in our eyes.

Really, I want to change the world (c:

Always remember the power of the simple smile, a helping hand, a listening ear, and a kind word.

Don Ritchie, the Angel of The Gap

Those are my principles, and if you don’t like them, well, I have others.


Complaints, Romance, and Bluff Calling

Don’t complain unless you’re prepared to do something about it. Me - 2012

I used to work with someone who, if anyone complained about the company, would invite them to get involved in fixing it.

He called their bluff, but was completely genuine too.

I remember after the Indian Ocean tsunami in 2004, I commented to a friend that I felt sending money wasn’t enough, I just wanted to be there to help. He mentioned that, years ago, Mother Theresa had said something along the lines of if you have aspirations of going to India, to Calcutta to work with the street people, go first to your next-door neighbour.

I want you to be concerned about your next-door neighbour. Do you know your next-door neighbour?
Mother Theresa of Calcutta

She was calling peoples’ bluffs, and my friend was calling mine, on my romantic ideas about how I can improve things, or be compassionate, or be motivated in the right circumstances.

Similarly, complaining is a trap, and complaining about people complaining isn’t a safe position to hold. Don’t get too enamoured with it.

Don’t whine,
Kiss off that flakey valentine,
You’re nobody’s fool.
Joni Mitchell - Be Cool

Okay, so Joni wasn’t necessarily talking about being enamoured with whining, but I am. Although, saying that, sometimes people become enamoured with complaining about a partner, and would rather have someone to complain about than be alone. So maybe Joni had something deeper going on.

Ozone disappearing in the sky
Bud man asking us why ask why
If I could find my magazine this bug would die
I complain
King’s X - Complain

Sometimes when rootling a problem you find a system boundary at which you feel, even if you could find the root cause, you wouldn’t be able to make a change, as it’s out of your hands, not in your remit. You have a complaint about a problem that you can’t do anything about.

I’m going to call your bluff. Find out if that boundary is as solid as you imagine.

Until you make the unconscious conscious, it will control your life and you will call it fate.

Carl Jung


I don’t know what’s the matter with people: they don’t learn by understanding, they learn by some other way — by rote or something. Their knowledge is so fragile!

Richard Feynman - Surely You’re Joking, Mr. Feynman!

Corporate Blame and Resilient Systems

In organisations, blaming individuals for problems doesn’t really work. Finding root causes should take you beyond the personal and out to the corporate.

Bullet proofing computer systems can be attempted in at least two ways. One is to use the best components money can buy and rely upon them to deliver resilience. Another way is to assume hardware and services will fail, and design your system to accommodate this. You can use cheap off the shelf hardware, and choose lower availability services at reduced cost, though probably buying more of them.

Most systems likely fall somewhere in between, but I think the second boundary condition is preferable to the first. Assume that if things can go wrong they will, and work accordingly.

By analogy, and remember proof by analogy is no proof at all, I think other systems can benefit from this thinking; assume failure and build to accommodate it. In a corporate setting, assume individuals will fail, have off days, drop the ball, go dark, be ill, have issues, leave, make mistakes, be inept, or even be malicious (although ineptness is the more likely). Also assume processes will be broken, inflexible, inappropriate, and out of date.

I think we should design our processes to assume the processes are broken and to regularly reflect upon that, and design our organisations to be tolerant of individuals failing. And assume our reflections and designs will also be broken and imperfect.

The relation to blaming individuals should be obvious; if a failing individual causes problems for an organisation then it indicates failure at the corporate level, and the blame doesn’t rest with the individual. There can be a cause for individual reflection, and personal development, but the organisation shouldn’t rely upon that as the solution to the problem.

Notice I’m not saying you shouldn’t gather people who are great, but you shouldn’t rely upon that greatness to be what makes your group great.

By asking ‘why did this happen’, Rootle helps you get to the root cause of problems, whether corporate or individual. Of course, even though you think of yourself as an individual, you too are an organism, an organisation of heart, mind, and body.

We place a heavy emphasis on ideals and reasons. You need ideals to guide you when you look for practical solutions — to know when a solution is good and principled. You need to understand the reasons behind those ideals to understand why they should be your ideals, why aiming for them will help you and the users of your code. Nobody should be satisfied with “because that’s the way it is” as an explanation. More importantly, an understanding of ideals and reasons allows you to generalize from what you know to new situations and to combine ideas and tools in novel ways to address new problems. Knowing “why” is an essential part of acquiring programming skills.

Bjarne Stroustrup: Programming Principles and Practice Using C++[pdf]

As to methods there may be a million and then some, but principles are few. The man who grasps principles can successfully select his own methods. The man who tries methods, ignoring principles, is sure to have trouble.

Ralph Waldo Emerson


Blame isn’t what we’re here for. But sometimes we find it hard to get over that, so let’s get it out of our system. Choose one of the following for the problem:

  • It’s my fault
  • It’s somebody else’s fault
  • It’s everybody else’s fault
  • It’s our fault
  • It’s nobody’s fault

Now we’ve got that out of our system, lets get on with working out how we can reduce the chance of it happening again.