What is agile development?
Need a quicker way than waterfall to create software? Agile might be for you...
Agile development, often referred to a simply 'Agile', is a software development method that focuses on the idea of fiexible, iterative development. With a focus on collaboration and cross-functional times, along with the continuous assessment of the product or service being produced, Agile development enables teams to reate apps and software faster than the traditional waterfall approach.
It's particularly beneficial for organisations that create software that need frequent updates and have components built by different teams. As such, it often means that products and services can get to market quicker because each piece can be built and tested simultaneously, rather than building it in a linear fashion.
What is agile development?
The concept of Agile development comes from the Agile Manifesto published in 2001. The idea is underlined by a set of principles that map out its methodology. The highest priority is to satisfy the customer through early and continuous delivery.
Agile methods are a loose framework for the stages of software development. They detail a way to complete work, from planning, execution and delivery that doesn't restrict the developers to rigid processes and delays.
Waterfall methods meant that each element of a project had to be completed before moving on to the next. If there was a problem, this could often mean going back to the beginning and starting with the first stage again - many projects are delayed this way. Under an agile method, however, changes can be made during any part of the process. If a problem arises, the team can adjust and shift resources to fix the issue, without causing a hold up to the overall work.
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 favours 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
How to get started with DevOps for SAP
A 10-step guide for SAP teams and IT leadersDownload now
Why is it important?
Everyone has at least one nightmare story when it comes to projects. From missing deadlines and exceeding budgets to disappointing even the most loyal of customers, the building of products and services can be an extreme obstacle course. In the IT sector, being able to make a quick change or fix issues on the go can be a real life-saver. And in some cases, a project-saver as well.
Customer involvement is a key component to agile development, as it allows customers to have an insight into the building process by giving them the opportunity to provide real-time feedback. As opposed to linear operations, where a mistake can mean having to scrap all the work and start from scratch, agile methods evolve and adapt to suit. For instance, if a customer voices a request for something to be done differently midway through the process, a team working with an agile approach is better equipped to deliver a solution to the request.
What types of agile methodologies exist?
Following the suit of most tech expressions, 'Agile' doesn’t fully define the approach. That is why businesses can use a number of different terms to describe the development. One of the most popular terminologies is 'Scrum', a term which has expanded the concept beyond the IT sector and into management teams. A ‘Scrum’ uses a ‘ScrumMaster’ to manage and lead the workload, but provides the team with a shared responsibility of delivering the end goal.
Another model which is rising in popularity is Extreme Programming (XP), which focuses on the technical side of the project, as opposed to business objectives. What makes them different from month-long Scrum sprints is that XP dictates a maximum of two weeks. However, even that deadline is more flexible when it comes to changing goals mid-sprint.
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, which generally favour 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
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 organisations 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 favoured by agile methodology.
In many ways, DevOps can be thought of as an extension of agile. Often, a company will employ agile practices in its 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.
The complete guide to changing your phone system provider
Optimise your phone system for better business resultsDownload now
Simplify cluster security at scale
Centralised secrets management across hybrid, multi-cloud environmentsDownload now
The endpoint as a key element of your security infrastructure
Threats to endpoints in a world of remote workingDownload now
2021 state of IT asset management report
The role of IT asset management for maximising technology investmentsDownload now