Agile For Customers

180px-Xgames_clr_posTom Hollander wrote about why your customers will love agile (even if they think they hate it) last week, and made several interesting observations about how agile methodology has taken hold in many companies and teams, and why customers should really be fighting for it, rather than fearing it. He notes that, while generally project management principles aren’t particularly sexy or interesting to developer types, many developer types are totally into Agile. I think some of this has to do with a very good marketing job on the part of Agile’s proponents. You’ve got things like “Extreme Programming” that make coding sound like competing in the X-Games. And then you’ve got Agile itself. I mean, if you’re a developer, do you want to be Agile, or not? If you’re not, then you’re what? Clumsy? Plodding? Uncoordinated? Certainly being Not Agile is not something anyone (coders included) wants to be, so it’s got a certain ego appeal inherent to it.

As for customer appeal, I think some of them may fear that Agile is just a way for lazy programmers to get away from doing the icky parts of development, namely writing specs and documentation. This Dilbert comic sums it up nicely:

Of course, the truth is, agile development (in its many forms) does require programmers to do things they don’t necessarily enjoy (e.g. writing tests, among other things), but the difference is that the things being done have value even to the one writing them. Personally, I hate doing work on things that I’m unsure will ever be used. For instance, writing a spec document that nobody will read. But when I write unit tests, even if it’s for a project only I’m working on, I know they’re going to be run. I know they’re going to help me later on when I’m refactoring the project. I find it easier to stomach doing the “extra” work of writing tests for my code because I can see the value of it. And tests, in an agile project, serve not only as a safeguard against bugs, but also as a runnable form of documentation. They describe how the application’s features should work, and they also can tell you at any given time if the application does in fact perform as it should.

So, yes, developers are a lazy bunch (at least the good ones), in that they hate to do monotonous work that can and should be done by a computer. Agile methodologies take better advantage of automation as a part of the software development process, and as a result can provide value to the customer much faster (in smaller pieces) than traditional BDUF/Waterfall approaches.

  • Ameet Bala

    Hi Steven,

    Interesting read. Dilbert cracks me up everytime.

    I agree programmers are a lazy bunch and fair enough because I believe lazy people can cut the best code; they want to reuse more and write less. ie more efficient code.

    As for Agile, it is an excellent tool as long as you take the best it has to offer and ditch the rest. Read my blog, Is Agile really agile? at http://ameetbala.blogspot.com/

    Cheers.

  • http://

    Good post. I’d certainly hate to spend 6 months working on something only to find out the CTO has some new direction and have my work sit on a shelf, possibly never to be used again. At least with Agile you get feedback much sooner (not after 6 months or more), have workable code sooner, and if your work does get derailed, it doesn’t necessarily have to sit on the shelf, useless. You may enjoy reading Agile Development Thoughts as well, a blog by Damon Poole. Great stuff. Thank you.