What is Agile?

Agile, in this context, is a generic style of working. It takes a holistic view of projects, rather than being just a set of delivery techniques.

Have you ever been involved in a project that spanned several months only to have customers not use the end result? Most developers have and probably more than once. Assuring that what you develop actually addresses the needs of the client has always been one of the biggest challenges in any development.

Addressing this problem was one of the motivations behind the Agile manifesto. The first guiding principle of the Agile manifesto states that 'Our highest priority is to satisfy the customer through early and continuous delivery of valuable outputs'.

What is Agile?

In a fast paced environment Agile ensures that solutions meet the business needs and is focussed on timely delivery.

Delaying decisions as much as possible until they can be made based on facts and not on uncertain assumptions and predictions is fundamental to an agile approach. This does not mean that no planning should be involved – on the contrary, planning activities should be concentrated on the different options and adapting to the current situation, as well as clarifying confusing situations by establishing an environment where rapid action can be taken.

Agile is all about flexibility, the principle of 'responding to change over following a plan' is considered a strength of agile. This does not mean that Agile does away with the need for planning. Things change, and you want to have flexibility to adjust and react to those changes. You clearly want to have a plan for where you're headed and approximately how you'll get there. But you also want to leave room to adjust your plan.