Tuesday 15 March 2011

Black Swans and Serendipity.

Jurgen Appelo wins a lot of awards from me. Best Thinker of Conference is probably the one that encapsulates the whole. His talk "Complexity vs Lean - the big showdown" was entertaining and interesting. Worth downloading the slides. If only for the "wtf" moments. Some presentations are readings of powerpoints - these were mercifully few at QCon - but the stand out "presentations" are those which cannot be reverse engineered from the slide deck.
I recommend especially slide 24 as a stand out WT.... F!


Jurgen uses Lean because it works. Because it works better than anything else.

When Lean is so complicated and so much reliant on doing things in a certain way, it is impossible for a technologist to adopt it without thinking about it, but it is also possible that once the thinking process is done, and the adoption is complete, it is hard for said technologist to remember what those process were.
Seeing as the first directive of Kanban is to keep learning and the last of Lean is to improve everything, I'm very glad that there are Leaners around who are conflicted. It is correct ot believe something to be true and at the same time be willing to examine it.

I could go off on one hell of a tangent about the relative positions of the Church of England and the Catholic Church at this point, but it is probably just better to leave the religious analogy hanging there for the reader to enjoy in their own time...


Jürgen, however, is conflicted. He knows Lean is best, but he wonders if it could be better. He knows within himself that his products are better and his working life more effective, but he can't quite get over the idea that there might be something wrong with it - something missing.

So, this talk was to be about why Lean is wrong. When you know it is right.

The majority of the presentation was a generic thought experiment about the problems inherent in trying to place rules upon a complex system.

Systems can be simple of complicated.
Along another axis, they can be ordered, complex or chaotic.

Simple and ordered might be my (or Jurgen's) underpants.
Complicated and chaotic might be a system like the stock exchange.

Complicated systems can be broken down into a series of simple ones, but a chaotic system cannot be broken down into any number of ordered ones.

When considering software engineering, we are considering human beings attempting to convince computers to do something they did not do previously. Human beings are complicated and their interractions are chaotic. All systems of ordering what they do are inherently failures, or best guess approximations as we cannot be broken down into tasks.

Furthermore, the rigorous analysis of the problem and the solution avoid two incredibly important factors which must be allowed for - which are not allowed for under any system where simplicity is being pulled from chaos - such as Lean or Agile.


Black Swans.
These are unpredicted big events. They always happen. The are unpredicted precisely because they are unpreictable. Think Donald Rumsfeld and his "unknown unknowns".

Serendipity.
Things which just happen, possibly whilst looking for something else. The invention of the ink-jet printer, viagra, America. How would an unexpected serendipitous event screw up the rest of your careful plan?

In all forms of non-linear (and especially active feedback) systems, it is hard to distinguish cause and effect. There may be more than one cause to an effect. Does low quality come from high pressure, or does high pressure result from low quality?
The problem with the analysis of complex behaviour is that it is not deterministic. It cannot be analysed from outside. Complexity thinking says that observations about the system must be within it.

So:
don't separate the designers from the system
don't ignore the human
don't ignore the unknown unknowns (black swans and serendipity)


Bearing all this in mind, we were treated to a look at Lean's five principles and what is wrong with them from a complexity point of view.

Principle 1. Eliminate waste.
Ninety-eight percent of DNA is waste. Don't try to measure the unexpected value of waste. There can be value in having it. If the cost of waste is low, keeping it might invite serendipity

Principle 2. Build Quality In
Preventing errors inhibits learning. Limiting useage limits innovation. You cannot predict the value of doing things wrong. There can be value in being ambiguous and inexplicit.

Principle 3. Create Knowledge.
But beware of exclusively focussing on knowledge.
competence = skill x discipline x knowledge x social conectivity
And connectivity is more important than knowledge

Principle 4. Defer Commitment
Commiting early can be motivating. Commiting early changes risk and opportunity in unpredictable ways. There is sometimes value in makin early choices.

Principle 5. Deliver Fast
But not without thinking first. Think briefly then deliver fast. Anticipation can sometimes outsmart adaption.

Principle 6. Respect People.
Sure, but trust, motivate and inspire them too

Principle 7 - Optimise the Whole
A complex system finds its own global optimum. Beware that optimising the whole does not invite top-down control. Is the CEO responsible for the whole? Yes. Can he say "I am going to optimise you". No. Create locally optimising and interdependent teams.


Root Cause analysis implies there is a root cause. Do not ignore value networks. There are multiple stakeholders, not just customers.

No comments:

Post a Comment