Agile

The definition of Agile

Agile, as defined by the oxford dictionary, is the ability to respond to change quickly and easily.

Sometimes referred to as Agile Development or Agile Software Development, Agile seeks to break large projects down into small batches. Rather than delivering everything in a “Big Bang” approach, Agile organizations and teams perform frequent releases to their customers. In doing so they have the opportunity to gain early and constant feedback from their customers and the market. This regular feedback cycle enables them to respond to change quickly and efficiently.

Agile has its origins dating back to the 1950s and earlier. Much of its foundations have stood the test of time.

The most notable foundation dates back to the 1950s in the automotive industry. During this time Toyota hired process pioneer, Edward Demming. Demming had helped revolutionize Ford and was hired to bring much of the same methodologies, practices and mindset he had applied to Ford over the years to Toyota.

What Demming did was the inception of what would later become known as the Toyota Production System (TPS). The Toyota Production System contains a number of practices and values. Ranging from continuous improvement (also known as Toyota Kata), to minimizing waste and managing flow through batch and queuing theory. All of which are highly present in Agile today.

Fast forward a few decades and the next notable moment for Agile was the 1980s and the explosion of the personal computer. By this time software development had undergone significant changes but was still predominantly dominated by traditional project management practices.

The rise of technology exposed the inadequacy of traditional project management practices. This resulted in many software engineers being frustrated with projects continuously running over time, budget or ending in poor quality as software engineers rushed to meet deadlines.

Further business outcomes suffered as the time between business needs and solutions were taking an average of three years. The traditional project management processes were unable to keep up with the rapid pace of software development, overburdened with documentation and oversight, they failed to move at speed and respond to change.

Some of these Software Engineers and Management Consultants found themselves experimenting with alternatives. New ways of managing and delivering software projects that were better suited to the rapidly changing environment of software.

The two most notable ones at this time were Jeff Sutherland and Ken Schwaber, the co-founders of Scrum and Ken Beck, creator of Extreme Programming.

Both methodologies have similarities. They worked in timeboxed iterations. Where you planned at the beginning, delivered some work, gained feedback on it and then adjusted your plan for the next iteration.

In February 2001 a group of 17 of these people held two meetings. The first was in Oregon, USA and the second was in Utah, USA. They had no agenda and no-preconceived notions, they came out of the long weekend with what they called the ‘Agile Manifesto for Software Development'.

This manifesto was the formation of Agile as we know it today. The signatories chose the term “Agile” deliberately. They wanted the Agile Manifesto to represent a way of working that helps best manage change and increase organization adaptiveness.

Today, Agile is used as an umbrella term to describe any frameworks, principles, values and tools that align to the Agile Manifesto.