This is the 2nd in a series of posts drawing out the ideas in Dave Snowden’s State Of The Net 2013 Keynote “How Not to Manage Complexity” in an attempt to get my head around complexity. Today I look at…
Humans as pattern based intelligences
Dave introduced the work of Mary Douglas in this talk (from 15:00 minutes). Once again, I am unfamiliar with Mary Douglas & her work so my learning syllabus has grown somewhat…
Humans are pattern based intelligences not information processing machines. The energy cost of seeing things differently is so high we don’t do it unless we’re forced to.
Most of the time we make decisions without thinking about it based on trained responses. If our default responses don’t work we trigger novelty receptive aspects.
When we’re really focussed, the most we scan in front of us is 5%. The only people who scan everything and make a rational decision are autistic (and therefore struggle to cope with the world).
We make decisions by matching a partial data scan against 100s & 1000s of stored memories, both our own & others. This is a 1st fit pattern match not a best fit pattern match. We satisfice, not optimise.
This comes from evolution – do we want to identify everything around us, or just that which will eat us.
It’s application to software development
When we are faced with a problem, we are quick to categorise that problem based on our previous experiences (1st fit pattern match). There may in fact be subtleties in this problem that we have not encountered before; different implicit requirements, political games, team dynamics…
We need to resist the urge to go with our first response. As Weinberg’s rule of 3 tells us “if you can’t find 3 ways in which solution could fail, you haven’t thought hard enough about it”
So accept the 1st round of solutions to a problem as the 1st fit pattern match and then dig deeper to find other, potential more suitable pattern matches. Of course, the 1st responses may be the best but you won’t know that until you attempt to get more responses.
Carbon is different from Silicon
“Carbon is different from silicon – if anybody really believes in the singularity then they’re probably stupid enough for their brain to be transferred to a computer.”
“Technology is good at augmenting human intelligence, its very very poor at replacing it.”
Far too many people are using the web to replace rather than augment and the social consequences of this can be high. We can lose intelligence (in evolutionary terms) as well as gain it. Culture can change biology in 2-3 generations.
One of the major differences between man & machine (carbon & silicon) is our ability to make judgements (introduced at 19:00 minutes) and gain perspective on the information we are gathering & sharing.
Silicon can & does support carbon – we are great at making machines to help make our lives easier (of course we can get it wrong & the machines make our lives harder as well).
Dave talks about human sensor networks sandwiching technology, where the technology allows for faster communication.
Machine cannot currently handle uncertainty and arguably they may never will.
It’s application to software development
One word: automation.
How many times have we had the conversation that automation can save humanity. Automate all the tests, get rid of the Testers. All that messy people business can be replaced by a machine, which as an added bonus will be done more quickly.
We can & should use automation to help us develop & deliver software. Be it as change detectors to let us know if we have inadvertently changed some of the software’s behaviour, as a taxi to get an environment in a particular state or to rapidly process information.
Automated tooling is great at augmenting software development, such as compilers & automated checks, but they currently do not replace the need for us humans to be involved.
After reading Bach & Bolton’s Exploratory Testing 3.0 post my mind started making relationships between the patterns that we match & scripts
“By “script” we are speaking of any control system or factor that influences your testing and lies outside of your realm of choice (even temporarily). This does not refer only to specific instructions you are given and that you must follow. Your biases script you. Your ignorance scripts you. Your organisation’s culture scripts you. The choices you make and never revisit script you.”
In the context of this post, I’d add:
“Your patterns script you”
2 points come to mind
If we only have access to a few patterns, then we potentially have limited options to respond to certain situations & our testing may not be as effective as it can be.
If we do go for first fit pattern match over best fit pattern match as Dave says, then our testing is not going to be as deep as it can be
I see a potential solution being firstly to recognise that the patterns that are available to us limit us, go on to find more patterns & then develop ways to access those different patterns in order to give us the best chance of achieving deep & effective testing.