What does Agile mean?
And how on earth do we distinguish this in the job market?
I have been asked this question three times over the last week which has prompted me to try to clarify the term “Agile”. I understand the frustration because the term “Agile” is pretty generic and can mean different things from one organisation to the other.
According to the Oxford Dictionary the term Agile is an adjective to describe:
- The ability to move quickly and easily
- Relating to or denoting a method of project management, used especially for software development, that is characterised by the division of tasks into short phases of work and frequent reassessment and adaptation of plans
There are many flavours of Agile, you may have heard of SCRUM, Kanban, Lean, Lean Startup, Extreme Programming to name but a few! They all aim to shorten the development time from concept to delivering something of value to the organisation. This is in contrast to the more traditional way of working, called the ‘Waterfall methodology’, where most of the detail for the solution is designed up-front and then the phases progress in a linear fashion, which makes coping with change time-consuming and costly. Agile phases are smaller, more iterative and incremental, to meet the needs of frequent releases into operational use.
Agile is now used in many different organisations and not just for software development. It would probably be more accurate to replace the word ‘software’ in the Agile Manifesto with ‘products’ or ’solutions’.
The ’Agile Alliance’
In 2001 representatives of all the leading ‘agile’ methods got together in the USA and, over two days, created the manifesto for the newly formed ‘Agile Alliance’. This is when the term Agile was first used to describe the agile frameworks, behaviours, concepts and techniques that characterise the Agile way of working. The Agile Manifesto is the closest we have to an agreed definition. See below for the Agile Manifesto and the twelve principles behind it.
Back to the job market…
When a job advert just specifies “experience with Agile required” it is impossible to tell which flavour of Agile is being used. You might want to ask for clarification of which Agile delivery methods are being used. This can often be just SCRUM, just Kanban or even a combination of them both, often termed SCRUMBAN or one of a host of other Agile methods. It is important to make the distinction between the Agile delivery methods and the project management that is required. In some organisations the project manager is not involved in delivery but in a small organisation or for a small project, the project manager may be managing and closely involved in delivery.
Because most of the Agile approaches are used more in business as usual for ongoing software development, with a constant backlog of features to be addressed, they don’t have a definition of a project manager or project board or steering group. When used in a Project context you can benefit from merging the Agile delivery methods with the structure that PRINCE2 Agile or Agile PM bring with them.
Next up I will be taking a more detailed look at the PRINCE2 Agile and Agile PM project management approaches over the next two articles followed by an overview of the two most popular Agile development approaches, SCRUM and Kanban.
Manifesto for Agile Software Development
You can see the original page here.
We are uncovering better ways of developing software by doing it and helping others do it.
Through this work we have come to value:
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, we value the items on the left more.
Principles behind the Agile Manifesto
We follow these 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 behaviour accordingly.