Snowden has a long history in adaptive software development and was one of the original designers of DSDM (Dynamic Systems Development Methodology) which is considered to be one of the first Agile methods.
Snowden’s theme for the talk was how we “have to find a better way to communicate between Agile in IT and corporate strategy”, and asking executive management to “become Agile” won’t work, and “executives don’t want to hear about a manifesto produced in a sky resort”.
His approach is deliberately controversial and he makes no apology for attacking the “sacred cows” of the Agile movement. He was particularly scathing about the Scrum devotion to a single process and the role of the ScrumMaster.
He maintains that our current approach to requirements gathering (Agile or not) is fundamentally broken, as it is tainted by cognitive bias resulting in a fixation on the first one or two ideas we come across in the requirements identification process. He presented an alternate approach based on Distributed Cognition, which is achieved by monitoring how people use existing systems and providing a mechanism for them to provide feedback on what they like, what they don’t and ideas they may have. He emphasized that this is not crowd-sourcing, and it is a technique to use computers to augment human intelligence rather than attempting to replace human intelligence.
He ran a brief experiment with the audience to determine how observant they are, and only 8 people out of the 80 or so in the audience observed the unusual aspect in the experiment (I’m deliberately not explaining what the experiment was as I plan to use it myself at some point). Following the experiment, he explained that most western-culture people actually only observe 3-5% of what they see, and how the remaining 95+% is filled in by our brains based on pattern matching. (Interestingly people in Asian cultures observe approx 10%, most likely because of their pictographic written languages). One problem with this pattern matching activity is we tend to use “first-fit” pattern matching rather than “best-fit”, which means we are very prone to making quick decisions which may be flawed.
He continued to talk about how human systems are not mechanistic and predictive, rather than are an ecology, complex adaptive systems with many intersecting influences and how management/control techniques designed for predictive, causative domains are actually dangerous when applied in complex adaptive ecosystems.
When working in complex, adaptive systems we need to operate in three separate modes which he calls See, Attend, Act. For each mode, we need different processes and ways of acting. Trying to use the same process across modes will result in suboptimal outcomes.
To illustrate these concepts he discussed behaviour in the technology purchasing marketplace over the last few years. Given their choice, most people will select a variety of tools/apps that do different things rather than a single monolithic tool that tries to do everything. He contrasted Microsoft Word with the App space where people have a number of apps on devices to do separate tasks easily with simple interfaces. He is a keen hiker and talked about how he has 15 apps on his smartphone that can be used when hiking (from GPS tracking to a pub finder). His premise is that being able to pick from a variety of apps is easier as we associate each app with a single function or small group of functions and making the choice of which app to start is based on what we want to achieve at the point in time, having chosen the app it is cognitively easier to select the task we want it to do, rather than needing to navigate a complex menu structure in a monolithic tool.
He continued to talk about innovation and EXAPTATION – the activity of taking an existing tool developed for one function and repurposing it for another use. He maintains that exaptation produces radical change and is the source of most innovation in society today. He calls the processes of exaptation “managed serendipity” and cites Apple Computer as an example of an organisation who do exaptation well, most of Apple’s innovations are not new ideas but new uses for existing ideas.
- Simple, in which the relationship between cause and effect is obvious to all, the approach is to Sense – Categories – Respond and we can apply best practice.
- Complicated, in which the relationship between cause and effect requires analysis or some other form of investigation and/or the application of expert knowledge, the approach is to Sense – Analyze – Respond and we can apply good practice.
- Complex, in which the relationship between cause and effect can only be perceived in retrospect, but not in advance, the approach is to Probe – Sense – Respond and we can sense emergent practice.
- Chaotic, in which there is no relationship between cause and effect at the systems level, the approach is to Act – Sense – Respond and we can discover novel practice.
Simple areas are ones where the rules and behaviour are predictable and causative. I these areas a Best Practice approach is the way to manage. Identify the rules and enforce those rules constantly.
Complicated areas are subject Good Practice approached, there is a level of predictability and pattern matching can be used to find which of a variety of practices is most appropriate to a given set of circumstances.
Complex areas are those where good practice cannot be identified by examining the environment and there is a need to experiment.
He emphasized the importance of this experimentation approach, and said that the conditions for experimenting are very important to successfully find the best approach in complex environments:
- run a number of fast, inexpensive experiments that are truly safe to fail
- some of those experiments MUST fail, otherwise, there is no learning
- some of the experiments must be Oblique – not trying to solve the problem directly but looking for opportunities for exception
Unless these conditions are met the experiments are worthless in terms of actually finding the innovative solutions to organisational problems/taking advantage of opportunities.
Software development is fundamentally a Complex environment, needs cannot be fully understood in advance and experimentation is a must. Agile practices are very appropriate in complex environments as the emergent nature of business needs and the evolutionary development fits with the experimentation approach.
He feels that Agile methods are on the right path, but many practitioners don’t understand why they work, which means there is a tendency to slip into dogma – defining the rules prescriptively rather than allowing the experimentation needed for complex environments to happen. When an Agile method becomes a set of rigid rules to be followed rather than a set of guidelines to be adapted then there is a likelihood that a sub-optimal solution will be the result.
Without a sound understanding of complexity theory Agile practitioners (he mentioned Agile Coaches in particular) are likely to impose dogma and rules which are appropriate for complicated environments on areas that are actually complex and need experimentation and adaption.
Organisational systems move in a continual cycle between complicated and complex, and it is important to be able to know when you are working in complicated (use proven good practices) and complex (experiment and except which might result in new ways of working).
His advice to Agile practitioners and teams is to study complexity theory so you can recognize when to switch modes and stop applying the rules of complicated systems to complex environments.
Posted by Shane Hastie