What is agile development?

development

When it comes to software development, there are two dominate methods: the traditional waterfall approach, and agile development. 

The latter is often referred to as simply 'agile', and is largely favored because it does exactly what its name suggests – it provides agility and a greater degree of flexibility for its users.

It focuses on flexible, iterative development, incorporating ideas like collaboration and cross-functional timing, and continuous assessment of the product being created. It's often faster and more accurate than the traditional waterfall method as it enables problems to be fixed quickly during development.

Products created under an agile structure generally get to market quicker, as each element can be tested and built simultaneously. It is particularly popular with organizations that use multiple teams to create software.

What is agile development?

Man working on Kanban board to signify agile development

The concept of agile development is underlined by a set of principles set out in 2001's Agile Manifesto. Its ultimate goal is satisfying customers through continuous delivery, but the philosophy is about taking restrictions away for developers.

With a waterfall approach, errors often force teams to go back to the start of the process as each element has to be completed before moving on. This causes delays and can be extremely frustrating, particularly if the problem is deep into the build. 

But with agile, changes can be made at any time in the process and usually fixed before combining all the elements together. Another benefit is that it's also easier to add or remove elements if unforeseen issues or planning tweaks arise during the production.

Agile principles

The Agile Manifesto, set out in 2001, outlines the key principles underpinning the concept:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan
  • That is, while there is value in the items on the right, agile values the items on the left more.

In short, agile favors speed of delivery, testing, and continuous feedback. Its central principles support this. They are:

  • Early delivery, creating shippable software in two-week 'sprints'
  • Responding to changing requirements
  • Measuring progress with working software as the metric
  • Collaboration between business people and developers through face-to-face conversations
  • Simplification - not making software overly complex
  • Small, self-organising teams that regularly reflect on best practices

Why is it important?

When it comes to projects, everyone has at least one nightmare story. This could be exceeding budgets, missing deadlines, or even disappointing your most loyal customers - the building of services and products can be a huge obstacle course. 

Being able to fix issues on the go or make a quick change can be a real life-saver, especially in the IT sector. And in some cases, a project-saver too.

A key component to agile development is customer involvement as it allows customers to get an insight into the building process by giving them the opportunity to provide real-time feedback. 

Agile methods evolve and adapt to suit, in contrast to linear operations, where a simple mistake can mean having to throw away all the work and start from scratch. 

If a customer makes a request for something to be done in a different way halfway through the process, for example, a team utilizing an agile approach will be better equipped to deliver a solution to the request.

What types of agile methodologies exist?

Like many expressions from the tech world, ‘agile’ doesn’t fully define the approach. This is why organisations use a variety of terms to describe the development. 

‘Scrum” is one of the most popular terminologies, a word which has expanded the idea beyond the IT sector and into management teams. A ‘ScrumMaster’ manages and leads the workload of a ‘Scrum’, but provides the team with a collective responsibility of delivering the end goal.

Extreme Programming (XP) is another model which is gaining popularity, which focuses on the project’s technical side, instead of the business objectives. 

In contrast to month-long Scrum sprints, XP sets two weeks as the maximum amount of time a project should take. However, when it comes to changing goals mid-sprint, even that deadline is more flexible.

Agile advocates who don't subscribe to Scrum or XP will tend to favour Lean Software Development, a methodology coined in 2003 and based on seven principles. 

This generally favors a back-to-basics approach that cuts out anything but the necessary features to deliver a product as quickly as possible while meeting customers needs and allowing the business-aligned developers to take charge, rather than managers.

Agile v DevOps

DevOps cycle

Alongside agile, DevOps is another IT methodology that has grown in popularity within the enterprise community. 

However, there remains some confusion about the relationship between the two, with some organizations treating them as separate disciplines and some arguing that they're basically the same.

In reality, both camps are right; DevOps and agile share a lot of similarities, but they're also different in some key ways and are often suited to different tasks. 

Both methodologies focus on rapid iteration, regular user feedback and a high degree of flexibility, all in the service of delivering more functionality to end-users over a shorter period.

However, while agile can often focus predominantly on processes and workflows, DevOps generally puts more emphasis on tools and infrastructure

DevOps makes heavy use of continuous delivery, continuous integration and container tools, which allows for the quick revisions and small teams favored by agile methodology.

In many ways, DevOps can be thought of as an extension of agile. Often, a company will employ agile practices in software development, only to revert to non-agile methodologies as soon as the product is finished. DevOps simply extends the attitudes behind agile to cover the product's whole lifecycle.

Are there downsides to agile development?

Like any business practice, there are positives and negatives to consider here. While agile development remains highly popular among developers globally, there have been signs that agile is waning in popularity at larger enterprises

The ‘State of Agile’ survey from software development company Digital.ai found that agile is struggling to make an impact at larger enterprises. Smaller organizations continue to view agile as a powerful productivity and organizational framework with "obvious benefits".

However, medium-sized and larger companies have grown less satisfied with what agile can offer and are more likely to pick a software development strategy that uses a number of different frameworks.

There are a number of contributing factors to this waning appeal at larger enterprises, the study found. This method places significant pressure on developers, many of whom are dealing with surging levels of burnout.

Siloed teams and poor leadership also has a serious impact on this, the study noted, underlining the importance of having a robust plan in place.

Maggie Holland

Maggie has been a journalist since 1999, starting her career as an editorial assistant on then-weekly magazine Computing, before working her way up to senior reporter level. In 2006, just weeks before ITPro was launched, Maggie joined Dennis Publishing as a reporter. Having worked her way up to editor of ITPro, she was appointed group editor of CloudPro and ITPro in April 2012. She became the editorial director and took responsibility for ChannelPro, in 2016.

Her areas of particular interest, aside from cloud, include management and C-level issues, the business value of technology, green and environmental issues and careers to name but a few.