Agile: how does it work?
Agile is a high-level set of rules and guidance on best practice for software development. It has a number of specific implementations beneath it, which all reflect the methodology’s core principles, valuing individuals and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation and responding to change over following a plan.
Scrum is one of a family of Agile development methodologies – when we talk about the advantages of Agile, what we’re actually talking about is Scrum.
A central part of the Scrum process is dividing huge projects into bite-sized portions. Where traditional development methodologies treat a project as a single entity with a beginning, a middle and an end, Scrum treats it as a series of mini projects, which are inherently more manageable. Traditionally, you could only measure progress at the end of the whole project. In contrast, Scrum measures it at the end of each mini project (iteration), offering an infinitely better take on where you are and what’s still left to do.
Noticeably faster
The Scrum process commences with the formation of the product backlog. This is a series of high-level assertions about likely functionality required by a system, but not prescribing it in any detail. One example might be “as a user I need to be able to capture customer information” – clearly a need, but not qualified in detail. Each user story is prioritised, given a complexity estimate and put in order of those likely to deliver the highest business value.
Within Scrum, each iteration is called a ‘sprint’ and consists of about a fortnight’s work. The sprint commences with a planning game where the high level functions are broken down into the individual constituent tasks and the team then organises and commits to a certain number of complexity points. Each day the team and the customer meets for a 15 minute consultation, which we refer to as a ‘stand-up’. This stand-up enables developers to ask questions or clarify requirements with the customer and allows everyone visibility of progress at a very granular level.
The free and open communication means that the development can stay focused on the highest business value tasks, regardless of what these may be from iteration to iteration. It also ensures misunderstandings can be swiftly corrected and the software will perform as envisaged.
Success that will get you noticed
The sprint includes all aspects of a traditional development cycle – design, development, test and deployment all rolled into one – all specifically in relation to the functionality being delivered. At the end of each sprint working, production-ready software is delivered to the client to garner feedback and often be put into immediate use.
Scrum is well established and has proven to enable businesses to deliver real business value and higher quality software. The reason for its success is that it seeks to reinforce and provide structure around a more natural mechanism for developing software rather than enforcing awkward and unworkable process. This approach has the dual advantage of both reducing risk and creating a motivated and empowered development team.