Why I Dislike Agile Development

Luca Matteis / Friday, June 24, 2011

Programming is my profession and I take it very seriously, but this doesn't mean I don't have fun doing it, in fact I transform the professionalism needed to make beautifully elegant code, into fun.

I do this by freeing myself of all kinds of repetitive tasks, every day I use different technologies. These things are very important to help me stay happy and productive; I'm able to meet deadlines by refactoring huge code bases a week before the release date and I never fear to say "I failed" at a project - sometimes it's really important to admit this because it lets you start from scratch and approach the issue from another prospective.

Deadlines, however, ruin the fun for people and most of them approach new programming methodologies to help them bring back the fun back into their job. Think of Agile Development; it provides a layer of very rigid rules you need to follow in order to become a happy developer again.
Requirements, Architecture and Design, Development, Test and Feedback, these are the rules you'll be daunted with for the rest of your life, and, if you're not as lucky as I am, you'll be forced to adhere with them in a very strict way.

I'm not saying Agile Development is wrong, I'm just saying it's boring after you do it for a couple of projects. It's sort of trying to bring rigid structure into humans which are not meant to behave that way. Skilled programmers are meant to think on their own, to be creative, to judge the production life cycle based on what the software is meant to do and not to simply follow a bunch of boring rules and methodologies.

If you're a worker that is constructing a building you're forced to follow many rigid rules, and there's no way you can get out of them. However software is not about making a building, we can tear down software and re-build with very low overhead compared to what it takes to tear down and re-build an actual physical building.