Agile is a term that was first coined in 2001 with the creation of the Agile Manifesto. Agile has grown enormously in the last two decades and is now used by thousands of organizations and teams around the world. With that growth in popularity many variations have emerged – new frameworks like Kanban and SAFe have been created and thousands of books have been written on different elements of Agile.
Therefore, it is impossible to explicitly define the Agile mindset. You will get as many different answers as people you ask, with different schools within the Agile community having different opinions. However, the Agile Manifesto, where Agile began, is a good common ground for all of them to help understand what it means to be Agile. There are many different aspects to an Agile mindset, this list isn’t exhaustive but covers most of the common aspects across different methodologies.
One of the most important elements to “being Agile” is to be customer centric. To care about your customer and focus on building things they will find valuable. This sounds obvious, but in software development it is easy to get distracted by personal interest, internal stakeholders and building features that the customer doesn’t want or need. Delivering what the customer wants is harder than it sounds as often the customer doesn’t know what is possible or realises what they really want once they start using the product. This is why incremental delivery is so important to being customer centric. If you only deliver the end product to the customer we lose the opportunity for them to provide feedback and get what they really want.
Being Agile means being pragmatic. Whether it be responding to change or prioritising features on a cost-benefit basis pragmatism is crucial. It is often difficult to keep focused on what is valuable, it requires research and dedication to avoid spending time on activities that don’t produce results and to make sure we are always working efficiently.
It is also difficult to be pragmatic when we get emotionally investing in a product or project, Agile encourages responding to change quickly, and while most people think they embrace change, in reality it can often feel like a personal attack or failure when we decide to change course on something we are working on, but this is essential to delivering the right thing quickly.
One of Agile Manifesto values is “Working Software over Comprehensive Documentation” and to embrace this value we really need to be value driven in our mindset. Writing specifications and requirements, manuals and diagrams don’t add value on their own. An Agile mindset aims to minimise the time we spend on these activities to the minimum required. This means we have more time to build software and we only create the documentation that is useful and therefore adds value. We can extrapolate this way of thinking to how we spend our time generally at work. Aiming to always be adding value - making sure our meetings are productive and only as long as they need to be or deciding when we should stop adding new features to a product.
We should be focused on working together with other people in the best way possible to make everyone as effective and engaged as possible. The Agile Manifesto says we should put “Individuals and Interactions over Processes and Tools”. Some people find this surprising, as their first exposure to Agile has been through a framework such as Scrum, but if we focus purely on the process of Scrum we are simply replacing the old waterfall ways of working with a different framework without thinking about what we want to achieve.
An Agile mindset is always dissatisfied with the status quo, always striving for things to be better - both the technical solution and the ways of working. This is achieved through regular reflection on the current state and a commitment to trying new things, even if they don’t work.
Another aspect of the Agile mindset, which is somewhat counter cultural, is single mindedness. People often boast of their ability to multitask, but we are most productive when we are able to focus on a task and so Agile encourages that we remove distractions and focus on the most important task.
While an Agile mindset requires us to take risks, try new things and change course quickly when things aren’t working, we also need to balance this with a thoughtfulness about the architecture we are working with and the best ways to do things.
As you can see there are many different elements to an Agile mindset, it is hard to embody all of these traits all of the time but trying to embody this philosophy does help teams work together effectively.
posted @ Sunday, December 8, 2019 4:36 PM by Chris Adams