Agile is another buzzword that's been floating around in the technology industry and beyond for a few years now. It is thought to be some new magical way of doing things that delivers faster and cheaper. In this series of posts we take an indepth look at what this is all about.
Agile is stems from the world of software development. Traditionally large projects would collect requirements for software upfront and thoroughly document them. These requirements included everything the piece of software intended to do i.e. all the features. For example a mobile banking app would have all the features desired documented and then, only then would development begin. Nothing would be released until all the features were implemented completely. The problem with this approach, especially in the world of technology, included project often being delivered late, features in the final version often not really being needed anymore and newer desired features missing.
Agile at is core is simply about getting a very very basic usable product that works shipped. Because it's basic it can be delivered quicker. You can then review, take stock and think about what feature you want to deliver next based on customer feedback. For example under an agile approach a mobile banking application under an agile development methodology would simply be an application that allows the customer to securely login and check their balance. The next feature would be decided by customer feedback.
The core concept is small incremental improvements done in timeboxed manner rather than a big bang. You get something into the hands of the customer faster and they help shape the future direction of the product.
In this post we looked at the idea behind agile. In a future post we'll look at how we do agile!