Let me start off by saying I do believe in the Agile principles and running projects in an agile way.
But, I’m not an extreme Agilist that believes in not estimating and other aspects of Agile that tend to lead more into the sociology and psychology of individuals.
For example, I don’t believe estimating is lying. I also don’t believe the creation of a document is all waste.
“Oh so now I need to estimate what I do for every 15 minutes?”
My frustration with some Agile proponents is the extreme reaction they have to client requests. When it is mentioned that we now need some level of estimating, they will soon recount a story with a 12,000 line Work Breakdown Structure and micro managers that bring back fond memories of the Spanish Inquisition. If they bothered to ask, the client requested that we need to have a baseline for comparison that required 10 buckets of time and a weekly schedule to allow the clients to plan a roll out strategy. Even worse, they will mention that all estimates are lies and how developers will now imprint on that lie like a newborn duck. Frankly, I have more confidence and faith in the maturity level of developers I have worked with than that.
Likewise, any request to create a document is again met with a tale reminiscent of the Count of Monte Cristo where the analysts were locked in a basement creating 200+ page specification documents while water slowly dripped on their forehead. If they bothered to ask, the client requested a high level document that they can review before we develop too much code to ensure we haven’t missed any key requirements.
My solutions are usually grounded in the grey area between the traditional approach and the agile approach. I find that is the right level of ‘Enough-Ness’ that provides the appropriate value given the risk.
Are there psychological truths behind these concepts that extreme Agilists present? Absolutely, but we need to be aware of these truths and determine how best to manage them in projects. We must do this by not exaggerating and fear-mongering. These truths also provide excellent information on why we should be careful about estimating and documenting, but not to exclude them 100%.
As Agilists we need to be careful we empathize with the clients as much as with our development teams. (If not more) Sometimes the Agile extreme point of view is grounded so much on the development team, that it does it at the expense of the clients.
In our Software Development past, I remember the attitude from IT departments that we know better than the clients and we will deliver what we want and the clients will use it. It took us a long time to become client-centric and we need to be very careful this arrogance doesn’t transfer from the solution we deliver to the processes we use.
The client always defines value and knows best.