What is Agile? An Introduction to Unpredictability & Change
Anyone who tells you they know exactly what will happen on an initiative is lying. The unpredictability of complex environments means teams must respond to frequent changes. In such cases, adaptive agile methods work better than predictive waterfall methodologies. This post looks at types of uncertainty and a tool that can help categorise activities to understand what is agile in this context and to select the correct approach to follow.
Complex Changing Environments
For knowledge workers or teams marketing products in a fast-moving and unpredictable markets change is inevitable. A reason why requirements might be ill-defined can be due to lack of time as much as anything. The acronym VUCA describes the types of unpredictability.
- Volatility is related to the speed of change and fluctuations in demand within a market or industry. So, the higher the volatility, the more dynamic and unpredictable the system, and therefore the required responsiveness
- Uncertainty alludes to a teams’ ability to understand what is likely to happen forward plan. Therefore, uncertainty greatly diminishes the teams’ ability to accurately predict and plan
- Complexity is concerned with the number of moving parts within a system. As a result, multiple entities, with interconnecting relationships, greatly increase the complexity
- Ambiguity refers to a lack of clarity. For instance, incomplete and contradicting information makes decisions more difficult
Accepting that Change is Inevitable
VUCA describes the challenges teams face the infinite moving parts of the real-world. Failing to recognise the world is not clockwork is a recipe for disaster. Asking, ‘what is agile?’, in our portfolio or rather, ‘where should we take an iterative and incremental approach’ is essential. Without doubt, failure to recognise the level of unpredictability and change often leads to conflict between ‘the business’ and delivery teams.
- Business stakeholders snipe that IT is useless and never delivers on time or to the required quality
- Technical teams complain business stakeholders are stupid and do not know what they want
Approaches that ignore unpredictability and fix design and scope early build in the potential for such friction. Therefore, if designs are based upon best guesses and assumptions they will fail to meet expectations.
- Unsurprisingly, Project Managers do not like changes to scope and therefore the plan. For example, having to make changes and replan a fixed cost project
- For complex, conceptual products and/or dynamic environments, business stakeholders are often uncertain about what they need. Therefore, it is unfair and unrealistic to expect people to fully understand what they need upfront
- Equally, it is unrealistic to expect accurate upfront planning in such a changing system
Understand the Level of Complexity – Cynefin
Cynefin (kuh-NEV-in) is the Welsh word for habitat. In 1999, Dave Snowden, then of IBM, used this to name a ‘sense-making device‘ he formulated. The tool is useful when considering predictability and the ability to make accurate decisions in different scenarios.
The framework has five domains.
- ‘Clear’ and ‘Complicated’ represent ‘ordered’ systems – cause and effect are known or can be easily discovered
- ‘Complex’ and ‘Chaos’ are ‘unordered’ – cause and effect can be deduced only by hindsight or even not at all. Prior learning and experience is not much use here.
Everything about the project or activity is known.
- The problem is easy to categorise – “ah, it’s one of those” – it is obvious or self-evident
- For example, if the chain comes off a bicycle or a user calls a service desk to re-set a password
- It is simple in terms of the people, processes, technology, etc
- The simplicity allows for best practice, such as Standard Operating Procedures, to solve the issue
More about the activity or project is known than is unknown.
- The problem or situation has a predictable outcome but requires analysis/expertise to understand
- The problem is not obvious, but relatively easy to work out
- E.g. if your car breaks down a mechanic could fix it because they are familiar with the technology and they will find the problem is one they have seen before
- Sense the problem, analyse the problem and then respond to the problem
- A case of, ‘sense oil is leaking, analyse the source of the leak, respond by changing the gasket’
- Multiple good practices exist to solve the problem
More is unknown than known about the activity or project. This is the space where Agile is most appropriate and where we might ask what is agile in this context.
- It is only possible to determine Cause and effect in retrospect i.e. need to probe and analyse, seek feedback to sense and verify understanding and respond further
- An experimental iterative approach works best to see what works and what does not
- There is no known way, the team iteratively determine the best way as they go because there is no known solution
- This is the domain of ‘wicked problems’ – where many connected factors make it seem impossible to solve
- Knowledge is incomplete, changing and hard to define
- The only way to proceed to is to probe and test to increase understanding of the stakeholders and the solution
Everything is unknown. There is no proven approach.
- Something must be done to get control of the situation, e.g. house on fire, major production incidents, military combat
- This is ‘thinking on your feet’ territory – do something and see if it works – Act-Sense
- E.g. the fire chief who survived a forest fire by burning a patch of grass and laying on it, so the fire passed around him
- In this domain, time is often of the essence – every second counts – lives could be lost
- Confused is when the domain is not clear
- As a rule, people use the practices from their favourite domain
- For example, treat a complex situation as complicated
- Missed deadlines and inappropriate solutions can be the result of upfront planning and early commitments
- Using the wrong approach can lead to chaos as all hell breaks loose
Cynefin can help understand a suitable strategy for a piece of work i.e. to help understand what is agile in this context. Work in the Clear and Complicated domains can follow a predictive model. A traditional waterfall approach with upfront planning will usually be effective.
Projects in the Complicated and, to an extent, the Complex domains should follow an adaptive model. A traditional waterfall approach with upfront planning will usually be ineffective with high levels of change.
Failure to understand the level of uncertainty can mean the wrong approach is selected. Projects become grinding death marches, with constant fire-fighting and damage limitation just to stay afloat. Of course, Agile is not a ‘silver bullet’ to cure all woes but it can make dealing with unpredictability more manageable.