Friday 3 June 2011

Agile - it's not complex enough!

I've just finished Prey an excellent book by the late Michael Crichton.  It's a very scary book that follows the development of nanobots that evolve and form autonomous swarms. Although they have no individual intelliegence they demonstrate emergent behaviour in the same way that birds flock or termites build complex homes.  The moral of the book is clear - self organisation can be very effective - and of course dangerous.  It's also easy to see how the fictional story could become a reality - but that of course was Crichton's skill.

It got me thinking, what is this "self-organisation" thing anyway? Do self organising teams really self organise or are they really guided?  Apparently I'm not the only one who's throught of this.  A great presentation by Jurgen Appelo - What (else) can Agile learn from complexity looks at Complexity Theory and Agile.  Now before you click on that "back" button it really is worth a look. 

He looks at the key factors of complexity theory and applies them to Agile and there are some great quotes:

Darkness Principle
Each element of a system is ignorent of the behaviour of the system as a whole... if each element "knew" what was happening to the system as a whole all of the complexity would have to present in that element
This is one of the major issues that traditional management methods fails to recognise.  We believe that the more we know the better we can control something.  However, the reality is that it takes too much time and resource to try and control everything because the control system always needs to be more complex than the project we're trying to control.

Boundaries & Conditions
Self organisation requires that the system is surrounded by a containing boundary.  This boundary defines the "self" that will be developed during the self organising process"
Which implies that all Agile activities must have some form of wrapper.  The concept of a project is well know and tested as a container for self-organisation so why create a new concept.  Agile & Waterfall can co-exist and work together - in fact they're symbiotic.

Fitness Landscapes
The environment is not out there separate from us.  We can help to create the environment... The Spanish have a phrase 'My friend, these is no road - you make the road as you walk'
If ever there was an argument for emergent design in IS projects then this is it.  Emergent behaviour is apparent all around us.  No one "organises" the bread supply for London it just happens.  Our brains are a classic example of how independent elements can combine and a "self" can emerge from the chaos.  However, as we know it takes time for intelligence to evolve and most organisations simply don't have the patience or belief to wait!

Incompressibility
There is no accurate representation of the system which is simpler than the system itself.  In building representations of open systems we are forced to leave things out, and since the effects of these omissions are nonlinear, we cannot preduct their magnitude
Which means - we can't predict the future so why waste so much time trying to plan & deal with things that haven't, and probably won't, happen?


There's a lot more in Jurgen's presentation and I'd really recommend that you read it through.  I'd also recommend Michael Chichton's book because it's just a rally good story (and a lot more believable than Jurrasic Park!).


So does Agile need more complexity?  Absolutely - because it's only when we understand complexity that we can keep agile simple for the rest of us :-)


Happy Friday


Mike

No comments:

Post a Comment