re: Why Feds Are Embracing Agile
After spending quite some time on agile teams I came to the conclusion that agile is a nice label for being in "startup company" mode indefinitely. All projects I know of that went agile took longer to complete, had lower quality, and frustrated everyone involved. There is too much process with most of the agile approaches, even more than with a flexible waterfall. Too much time is spent on rework because the idea catches on that we can be totally iterative and make changes at any time. Zero thought is put into up front design, requirements gathering, spec writing, and proper documentation. Three months later nobody knows why things were done or weren't done, so you start over reinventing the wheel. Agile generates an excessive amount of churn and rewards those who never want to make any final decisions. Plus, stuff is never done because there is always the next sprint and the next iteration. And with all the demos and discussions and gazillion meetings any agile team looks busy and comes across collaborating like never before, but any real work of value just doesn't get done.
Agile is a fad that gets happily picked up by managers to demonstrate that they can act rather than react and are willing to go with something modern. It rarely is an organic change where development teams are unhappy with the process used and agree that agile might be worth a try. Maybe that is why most agile projects are a constant failure?
Agile is fine for apps that are very small in function and scope, that are intended to be thrown away within a year, and that do not require any support or maintenance for a longer period of time. So for the dinky mobile apps that all are one trick ponies agile might work out, or for features on a social network that can be yanked at any time. For anything that amounts to a real application that is intended to be in use for years agile just brings more baggage and disadvantages then it might provide in benefits.