What is 'agile development' and why do I hate it already?
It is a method of organizing software development. Bob basically has it correct.
It has a couple of nice things. Basically it relies on dividing the work in small clearly defined tasks that can be done in one sprint and testing each of those tasks separately. It comes with regularly scheduled feedback and review. It also defines different roles for all the people involved in development, trying to make sure there is no conflict of interest in the managing, testing and feedback cycle. It also has people explicitly tasked with keeping an eye on changing consumer expectations.
Generally it was developed because software development often failed because one of those things happen :
- New ideas and requirements come in on a daily basis and get included in a project that was never meant for it, resulting in an incoherent, bug prone and utterly inefficient mess that no one understands.
- Requirements get laid down at the start of the project but don't get adapted when something doesn't work or when the environment changes.
- Task descriptions remain too vague and no one actually makes the important decisions about how it should work. Developers stick to what is easy to do and in the end nothing works together.
So, agile development sure has a lot of uses. Unfortunately that was before the business consulting industry got a hold of it and and included it and its terms into their repertoire of cool keywords to be applied whimsically to whatever.
They probably should have used a more boring name to avoid that.