When I started my career as a Programmer (as we were known in those days) there was no such thing as Agile. Instead, we learnt about structured analysis and design techniques, which meant we needed a full requirement specification. And as we developed the product, the requirements inevitably changed. But it was too late; plans had been made, budget committed, the course was set and we delivered to the original scope – which was often not was needed 6 months or more after the project started. Plans and documentation were key; managers wanted to know what they were going to get (and when) right at the start. But it never turned out that way, of course. Things were frequently late, over budget and incomplete. Clients were invariably, um, ‘disappointed’ (irate might be a better word 😊), even though they were not entirely blameless. But that’s a topic for another day.
But now we live in an Agile world, and things are much different. We have learnt from those past experiences. Trying to define what’s wanted 6 months in advance is (and always has been) difficult, and defining what’s needed even harder. So we don’t 😊. Instead, we focus on what we can achieve in the next few weeks. If things don’t work out, all we’ve lost is a month’s work at most, often even less. We can change priorities easily. And if we run out of money, we simply stop working, safe in the knowledge that what’s been built so far will work, albeit perhaps with some limitations. We don’t spend a lot of time (and money!) writing documents that are never looked at again; we use it to build things that are needed and will be used. Clients are involved throughout the project and see (and control) what they’re getting and are therefore much happier. And that can’t be a bad thing!
So apart from faster deliveries, flexibility, transparency, increased collaboration, freedom from documentation, greater cost control and improved communication, what has Agile ever done for us?