What is agile?
Agile has been born out of the desire to deliver what it is you want. It may seem like such a simple concept but we have seen various different processes used within software development that just haven’t delivered on this simple concept.
So why is something so simple so difficult to achieve? Well mainly software is such an abstract intangible bit of, well, stuff, that it’s difficult to really know what we all want from it until there’s something tangible to actually use and play with. Traditional models for developing software tended to focus on nailing down what was to be delivered first by cementing a contract in place with fixed costs and a fixed delivery date. Then when that date comes around we either find that it’s late or that it isn’t actually what we wanted in the first place (and often both of these).
We even went through processes that made sure that change didn’t happen or was controlled vigorously as it was viewed that this ‘change’ was what was often making software late.
So what agile does is say ‘hey, come on, change happens all the time – in fact if we didn’t accept change from the customer then how can we ever get it right just like what the customer expects’. So agile embraces change! We all know that change is good anyway, even though we all do our bit to resist it – it’s human nature.