If I asked you to describe agile software development, what would you say? I’m sure I’d get a variety of responses, and some descriptions would come at it from very different perspectives. For example, I often hear people say “agile is a mindset” like in this article by Rod Collins. But then there’s a different view from Chris Alexander: “Stop calling agile a mindset“. (I prefer the latter viewpoint.)
Also, while the original Agile Manifesto spoke about software development, I see increasing adoption of agile principles and practices in non-delivery teams. e.g. HR and recruitment, publishing, leadership teams, supply chain etc.
With this in mind I wanted to attempt my own view of agile. Here’s what I came up with:
Agile is a guiding set of principles and rituals with the goal of helping teams who work in a complex ecosystem to be able to quickly respond to change, and, ultimately, to deliver value.
Here’s a breakdown of my thinking:
Agile is a guiding set [i.e. not prescriptive or rigid, and can be adapted depending on context]
of principles and rituals [Principles are woven into the fabric of human interaction (such as empathy or fairness) – a key principle of agile is that teams work at a sustainable pace. Rituals (or practices) are regular actions that have a purpose – agile practices aim to reduce dependencies, increase ownership and simplicity, help teams to improve their effectiveness, and focus on outcomes]
with the goal of helping teams [A team is a group of people who work together towards a common goal. It could be any team, not only those delivering software. On a side note, individuals can use agile too – as an example, to manage their own careers – but for this definition I’m referring to teams]
who work in a complex [i.e. I’m talking about environments that are not simple, stable or highly understood environments – the kind of context which may not have as much need to be agile. Complexity is as a result of volatility, uncertainty and ambiguity – common factors in many contexts.]
ecosystem [interconnected and interacting parts, a living system with variability where adjusting levers doesn’t always have a predictable outcome]
to be able to quickly respond to change [It’s not possible to guarantee outcomes but using agile practices makes it more likely that teams can move quickly and easily in the face of change, to adapt and adjust to change. These changes come from many places such as the wide-reaching, unchartered and uncertain digital “revolution”, new and emerging technology, and rapidly evolving work practices and customer expectations.]
and, ultimately, to deliver value. [Value for customers (working software, tangible benefits, satisfaction), for organisations (in the form of profit, sustainability), for workers (growth, mastery, purpose), and for society (wellbeing, social capital, environment.]
What’s your view? How could this definition be improved to reflect what agile means for all teams, not only those delivering software?
[About the photo: In 2014 a big storm washed away part of the Aotea track on Great Barrier island. The Department of Conservation had to build a detour around the slip, which meant we still got to walk this beautiful track.]