Agile is a term being used a lot in software development these days. From start-ups to international banks, everyone says they’re agile or they want to be. So, what is agile?
The Agile Manifesto
Agile is used as a shorthand for the management techniques inspired by the agile manifesto. These management techniques range from how to describe software requirements and process them, to organisational structure and line management.
The manifesto itself is concerned with light weight software development. As software moved into the private sector it created a whole new industry, where traditional management techniques would cause as many problems as they solved.
Lightweight Software Development
The key to light weight software development is to develop in iterations and increments. These software development techniques can be traced back as far software development itself.
In the 70s there was Evolutionary Project Management, Rapid Application Development, and Adaptive Software Development. These were techniques that produced lots of releases where traditionally there would only have been one. In the 90s we started to see ideas mature into things that still exist today, such as Extreme Programming and Scrum.
Meeting in Utah
In 2001, 17 software developers met in Utah to discuss lightweight software development methodologies. Most of the attendees were from existing attempts of lightweight development methodologies, such as Scrum and Extreme Programming. They were looking for an alternative to documentation driven, heavyweight processes; many of which still exist today.
Over a few days the authors combined their experiences and created the agile manifesto, detailing their shared learnings from their careers. It contained values such as people should talk to each other and principles like don’t make unnecessary work.
After writing the manifesto they created The Agile Alliance to spread the word and help other people to implement agile. On launch of the Alliance, the authors talked about how they wanted agile to repair the reputation of developers who recognised the limits of planning. At the time, anyone who didn’t make long term plans were branded hackers. The authors considered this to show ignorance not only of how software is created, but also of what a hacker is.
Historical Context of the Agile Manifesto
The .com bubble popped the year the manifesto was authored. That’s pre-iPhone and pre-Facebook. People were taking years to build software, and when they went to market they may not have had competitors. Part of why the agile manifesto has taken on such cultural value is because of when it was published. Seven years after publication my boss was saying he didn’t understand why there was so much buzz about agile, because that’s how he’d always worked. My next job was in a waterfall organisation that didn’t care about quality, documented every detail before work started, and penalised any dev who didn’t keep to schedule. Agile recognises that sometimes things don’t go to plan, and that’s why it’s such a big deal.
The comic strip, Dilbert, spoke to the authors. The authors saw that organisations needed to move beyond the pointlessness of work that was there only to avoid making decisions. The biggest difference of an agile working environment is that decisions are made by the right people, to ensure both speed and accuracy of decision making. The people who are going to be most impacted by a decision, should be the group to make that decision. This means that development teams make decisions about their servers, and customers make decisions about their features. Unfortunately, it’s this requirement for management to find a different purpose other than making decisions that causes agile to be resisted the most when being introduced.
Many frameworks have come into existence with the rise of popularity of agile development.
As long as a word has at least an S or A in it, then someone will make an agile framework of it. There’s some controversy around these, with people suggesting that if there’s a given end goal then that’s not being agile. Inspect and adapt should be at the heart of all things, if it is at the core of what’s being done then what’s being done is agile.