Where Did Agile Come From?
If you’re running a lean startup. or managing your business according to the Lean Six Sigma methodology, then you’ll probably have heard of the term ‘agile.’ An agile business is a company that responds quickly and effectively to both opportunity and risk in either the internal or external business environment. Many lean experts have mentioned that Agile is likely a better term than “lean”, since it often makes people think about a diet or initiative to reduce staff.
Agile specifically refers to an improved way to develop and release software, using lean principles. The idea is to make the work visual, minimize the work-in-process (WIP), make problems visible, interact frequently with your customer, create empowered teams, and keep the batch sizes (tasks to complete) as small as possible. Even if you don’t use software, hopefully you can see how the principles could be used in any process or industry.
So, where did the term and the idea of ‘agile’ come from? Here is a brief history of Agile’s main principles and how they came to be.
The Agile Manifesto
The idea of agile business all began back in 2001. In the Wasatch mountains of Utah, seventeen people got together to ski, relax, share ideas and of course, sample some tasty food. Amongst them were Agile pioneers Alistair Cockburn and Ken Schwaber. The participants were a group of software developers and programmers who all agreed that a change was needed. Furthermore, they brought their own well-defined methods to the table, including Extreme Programming (XP), SCRUM and Crystal. The meeting culminated in the ‘Agile Software Development Manifesto’, in response to the need for an alternative to the heavyweight, documentation-driven software development processes of the time.
Signed by all the participants, the Manifesto for Agile Software Development was a symbolic result. The group of independent thinkers named themselves ‘The Agile Alliance.’ Although certain individuals were sometimes competitors to one another, they all agreed on one thing – they felt privileged to work with a group of people who shared similar values and opinions.
At the core, the first Agile methodologists held values based on trust and respect for each other, promoting models of organization that are based on people, and improving collaboration to build the type of organizational communities where they would like to work. Today, almost two decades later at the time of this post, Agile values have changed very little.
Going Further Back
The idea of, and the term ‘agile’ itself in relation to business and software development may have been coined in 2001, however, the idea goes back even further. Back in 1970, Dr. Winston Royce published and presented a paper entitled: ‘Managing the Development of Large Software Systems’. In his paper, he argued that software development processes needed to change; putting software together like a product on an assembly line simply wasn’t working.
Specifically, Royce criticized the lack of communication between the specialized groups assigned to complete each part of the project. Compared to Agile methodology, it’s easy to see how the previous methods might fail.
Firstly, it’s wrong to assume that every project requirement can be identified before design or coding work commences.
Secondly, it’s inefficient. Each task is completed in sequential phases, but that could lead to the product being irrelevant at the end of the project. This is especially true today more than ever, since business realities can change dramatically from one month to the next.
Principles Behind Agile
The Agile methodology follows a series of principles that are based first and foremost on satisfying customers and welcoming changing requirements. Agile processes are designed with the main goal of providing early, continuous delivery of beneficial software.
Agile principles demand that projects are built around driven individuals; give them the support, environment and trust that they need to successfully get the job done. Agile is undoubtedly people-orientated: ‘People are more important than any process’.
According to Agile principles, the leading facilitators of project success are the individuals working on it. Additionally, Agile suggests that the most efficient, effective method of transmitting information to or within a development team is with a face-to-face conversation.
Reflection is also a crucial part of the Agile way; development teams are encouraged to reflect on their past results, in order to determine methods of becoming more effective and productive. Regular change must be embraced to facilitate constant improvement within the team.
Agile promotes iterative and incremental processes. Software is developed in a succession of iterations, from the planning to the delivery stages. In each iteration, the various parts of the system are developed, tested, and then improved if needed, based completely on the feedback of the customer, not the ideas of the development team. During testing and improvement, a new part will be developed. The idea behind this is to improve the functionality with each release, allowing the system to grow. More frequent and smaller releases allow progress to be made, instead of waiting for one big change to be implemented, which might take months to complete.
Agile methods may be quite recent, but they are certainly not new. They have been around for much longer than the Manifesto for Agile Software Development has. However, it was not until the 17-strong team in Utah put their ideas down on paper that the Agile ideas were implemented within teams worldwide to change software development for the better.
Want to learn more? Read Joe Woods guest post, “An Outsiders View of Agile Software Development” >>>