Agile is an innovative approach to project management that has its roots in IT. Agile is an alternative to the sequential or “waterfall” development of a traditional IT project.
However, there are a lot of misconceptions about what Agile actually is.
It is often referred to as a methodology, but this characterisation misses the essential dynamism of the concept. Because it is conceived as a way of responding to unpredictability and delivering value within changing circumstances and requirements, its advocates keenly assert that Agile is not a methodology but a movement.
The Agile Manifesto has twelve principles:
• Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
• Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
• Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
• Business people and developers must work together daily throughout the project.
• Build projects around motivated individuals.
• Give them the environment and support they need, and trust them to get the job done.
• The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
• Working software is the primary measure of progress.
• Agile processes promote sustainable development.
• The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
• Continuous attention to technical excellence and good design enhances agility.
• Simplicity – the art of maximizing the amount of work not done – is essential.
• The best architectures, requirements, and designs emerge from self-organizing teams.
• At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Agile organises delivery of work into short incremental, iterative bursts or “sprints”. While the customer is providing work on the work delivered on the first sprint, work is already moving forward on the second “sprint”. In this way, the customer has a close eye on progress from a very early stage, their feedback can be incorporated and work is not held up waiting for a response from either side.
There are a number of tools, templates and approaches within Agile, perhaps the best-known being “Scrum”.
Agile is a series of principles which guide good project management, whereas Scrum is an Agile framework.
Jeff Sutherland created the scrum process in 1993, borrowing the term from a rugby analogy in a 1986 study by Takeuchi and Nonaka, published in the Harvard Business Review.
The Scrum framework begins with the production of a prioritized wish list called a product backlog. During sprint planning, the team pulls a small chunk from the top of that wish list, called a “sprint backlog”. This should be delivered over a two-week period (the “sprint”), assessing progress in daily team-led meetings, or “scrum”. The Scrum Master keeps the team focused on its goal: to have a shippable product at the end of the sprint. The sprint ends with a “sprint review meeting” and a “sprint retrospective meeting” before moving on to the next sprint.
Agile puts greater power in the hands of the customer – allowing them to respond to functional product in iterative processes, rather than being required to think of and define all their needs up front. It also avoids the problems inherent in long-term projects during which the customer has no visibility of progress and which risk the end product being delivered to meet an outdated set of needs.
However, Agile may not suit the processes and frameworks in larger, established organisations. In addition, Agile has been criticised in some quarters for delivering work that does not have the necessary quality controls in place or enough of an eye on the big picture.