What is Agile?

What is Agile?

Well, first… what agile isn’t:

Agile isn’t a methodology, but rather an umbrella term for a group of delivery methodologies based on similar mindsets. It is kind of like having a big tool box. You take what you need to get the job done and leave the rest in there for another day, or another worker to use.

Formally, agile is an iterative approach to project management and software development that helps teams deliver value to their customers faster and with fewer headaches. Instead of betting everything on a “big bang” launch, an agile team delivers work in small, but consumable, increments. Requirements, plans, and results are evaluated continuously so teams have a natural mechanism for responding to change quickly.

Whereas the traditional waterfall approach has one discipline contribute to the project, then hand the baton over to the next contributor, agile operates around collaborative cross-functional teams. Open communication, collaboration, adaptation, and trust amongst team members are at the heart of agile. Although the project lead or product owner typically prioritises the work to be delivered, the team takes the lead on deciding how the work will get done, self-organising around tasks and assignments.

Agile isn’t defined by a set of ceremonies or specific development techniques. Rather, agile is (as mentioned above) a group of methodologies that demonstrate a commitment to tight feedback cycles and continuous improvement.

The original Agile Manifesto didn’t prescribe two-week iterations or an ideal team size. It simply laid out a set of core values that put people first. The way you and your team live those values today – whether you do Scrum by the book, or make up your own blend such as using elements of Kanban and XP – is entirely up to you.

Why choose agile?

Teams choose agile so they can respond to changes in the marketplace or feedback from customers quickly without derailing a year’s worth of plans. Planning is minimal and shipping in small, frequent increments lets your team gather feedback on each change and integrate it into future plans at minimal cost. In software delivery, the first thing to do in an agile project is to start coding. Without that you have nothing to improve on.

The Agile Manifesto outlines how authentic human interactions are more important than rigid processes. Collaborating with customers and teammates is more important than predefined arrangements. And delivering a working solution to the customer’s problem is more important than hyper-detailed documentation.

An agile team unites under a shared vision, then brings it to life the way they know is best. Each team sets their own standards for quality, usability, and completeness. Their “definition of done” then informs how fast they’ll churn the work out. Although it can be scary at first, company leaders find that when they put their trust in an agile team, that team feels a greater sense of ownership and rises to meet and exceed expectations.

Unfortunately, many large organisations take a “let’s do Agile” approach without truly thinking it through. Used to traditional Waterfall programmes & projects, they try to shoehorn agile ways of working into their current set-up. While some hybrid programmes work well, many others fall by the wayside as soon as management teams get out of their comfort zone. If time is taken to invest in the right people, agile deliveries can transform customer receipts dramatically – from small start-ups to global organisations.

Agile values and principles

The Agile values, as outlined in the Agile Manifesto are:

  1. Individuals and interactions over processes and tools
  2. Working software over comprehensive documentation;
  3. Customer collaboration over contract negotiation; and.
  4. Responding to change over following a plan.

This doesn’t mean everything on the right gets ignored. Put simply it means, if all things are equal, the activities on the left should be given priority over those on the right.

The Agile principles are:

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  4. Business people and developers must work together daily throughout the project.
  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  7. Working software is the primary measure of progress.
  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design enhances agility.
  10. Simplicity–the art of maximizing the amount of work not done–is essential.
  11. The best architectures, requirements, and designs emerge from self-organising teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.

 

Looking for some further reading on Agile?

Well, there are hundreds of good (and not so good) books out there. One I found interesting recently is Klaus Leopold’s ‘Rethinking Agile‘. Just click on the link to be taken to Amazon for a look. More options can be found on my suggested reading page.

For the record, if you use the Amazon link above, I may earn a fee. This is at no additional cost to you. Further details can be found on the disclaimer page.

Please let me know what you think of this article. Feel free to challenge anything you don’t agree with – I’m always happy to listen.