I recently heard another developer say that “management doesn't like agile development because it gives too much control and freedom to the developers”. I really don't know if that statement was actually spoken by someone, but I couldn't get that line out of my head because it bugged me so much. To me, it sounded like something that would come from someone that has pushed aside agile development without trying to understand it.
There is more than one agile development methodology out there, but most of my experience comes from XP. Personally I don't buy in to all aspects of XP, but I think its general approach and process makes a lot of sense. In XP, the developer is responsible for writing code and performing estimates. Nothing else. The customer decides what features get put into each iteration. As problems come up, the customer determines if priorities should be changed and what features should be deferred to future iterations. The customer decides what features are most important so that those features get worked on first throughout the entire project.
Exactly how does this give the developer too much control and freedom? The customer steers the project the entire time.
I have seen specific instances of agile development practiced where the technical staff (developers, project managers) doesn't communicate with the customer and they run the project on their own. As communication is key to agile development, this really isn't agile development at all, and should really just be called a disaster. Perhaps managers who think that agile development gives too much control to developers have not seen it done correctly.