What the hell is agile anyway and why should I care?

What the hell is agile anyway and why should I care?

As technologies, communication and user expectations have evolved, most software development has changed to what is known as agile. But what is agile and why has it become such a cornerstone of software development?

At its core, an agile approach allows product owners, stakeholders, developers and end users to all work together in iterative cycles to design and build the product. This leads to various benefits including:

  • Being able to access real-world use cases provided by your customers

  • Your developers and users will appreciate the participatory culture

  • If something goes wrong, your agile processes will easily facilitate rapid deployment of bug fixes and product updates

  • You will be more responsive to customer feedback and changing competitor trends

  • Software development companies have seen a lot of businesses start and fail, so they can often advise in other non-technical aspects of business.

Compared to traditional waterfall methods of project management (do your market research, design the system, get it developed, pass it on to testing, then put it out to market), an agile approach will deliver a better outcome for the organisation due to a collaborative approach that puts people over the process.

Most people’s concern with agile software development is around putting an unfinished or untested product in front of customers. In practice, this is rarely the case as you can still test and conduct market research within each of these stages.

For example, Amazon is often commended for its ability to fail fast and ‘kill off’ products or services that are not meeting the needs of the market. This approach has brought Amazon’s customers into the product development process. Through this, the company has built a relationship with its customers that allows it to take risks without fearing a disproportionate backlash when things don’t go right.

With so many positives, you may be wondering how to make your company more agile. I believe the biggest challenge for any organisation wanting to adopt agile into the way they work is getting everyone to understand what being agile actually means i.e. understanding the mindset over the tools and processes.

For many companies, tools such as kanban boards, sprints and stand ups have helped them to be more agile in the way they work. However, at its essence, agile isn’t a set of tools or even a framework, but a mindset. The Agile Manifesto describes the agile approach as:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

It then describes 12 principles of agile organisations. If you sub out the words ‘development’ and ‘software’ with your own organisational language, you’ll hopefully see that the agile mindset can have a transformative effect on all areas of an organisation.

Keep in mind that you can take an agile approach to adopting agile. Test what works for your organisation, which tools help you and identify which ones you might not quite be ready for. The good thing is that you can pick and choose, test and iterate.

Don’t be phased by the agile purists either - like anything good in this world some people will tend to obsess a little. Just remind them that milk in an espresso is still coffee and you’re not going to offend a Scotsman by putting an ice cube in your glass of scotch.

Connecting the agile principles and way of thinking to tangible actions can be a challenge at first, especially in organisations where processes and hierarchy are prescribed.

One way I have suggested teams start introducing some of the agile concepts into the way they work is by doing daily stand ups. Teams literally stand up somewhere other than their desks every day at the same time to each answer three questions: What did I do yesterday, what am I doing today, and is there anything blocking me from achieving today’s goal? The whole process takes about five minutes and becomes as religious as making your morning coffee. You will soon find the team is communicating daily and identifying issues early, it gets everyone thinking collectively on the overall objectives and helps the team work in a state of constant change.

Provided everyone is thinking agile, then standups don’t become just another progress meeting. Teams can start thinking about how stakeholders can be more involved and co design can be fostered.

Just keep reminding yourself and your colleagues that being agile is a mindset and that the tools are just there to help us along the way.

This article first appeared in CIO Magazine

Why technical debt is a business decision

Why technical debt is a business decision

Handling and storing dates in a globally distributed application

Handling and storing dates in a globally distributed application