As I was finishing my last post on what I termed Agile Sketches, there was a second point that occurred to me that I thought was relevant and probably deserved a separate post.
I see a lot of recent comments and posts that propose we provide no estimates, no deadlines and do no planning. While some of these discussions are valuable and the questions they ask are important. I wonder if Agilists are becoming selfish.
It seems like we are proposing to move away from any practices in which we have to provide predictability and where we could be wrong. In their place are principles and practices that limit any predictability so that we will not likely be wrong.
Estimates are difficult? No problem lets not estimate at all…
Agreeing to a schedule and deadlines can be difficult? No problem we won’t have deadlines at all…
The proponents of no estimates and no deadlines seem to be focusing on the requirements of developers and the development process at the expense of the clients. Have we become focused on what processes are best for us or the client? I agree that actions over planning will typically return the most value, but eventually there is a tipping point where the total elimination of these practices can have a detrimental effect. We always have to remember that value is always defined by the client. Do we have clients asking us for no estimates and no deadlines?
It may surprise you that I agree with the psychology of no estimates and no deadlines. Yes, it is difficult to have estimates and deadlines. Yes both estimates and deadlines can have adverse effects on individual and team dynamics. But we as professionals need to not just eliminate things that are difficult, but to learn how to manage them so we return the most value for our clients and teams. Most importantly, we must always support the practices that deliver the most value to the clients.
To avoid becoming Selfish Agilists we need to rediscover our bravery for being wrong. I sometimes hear that people refuse to give estimates because they would be lying to the clients. At this point we need to remember the immortal words of George Constanza.
“It is not lying if you believe it to be true”
Yes, when we give estimates we will be wrong, but through the act of estimating we can hone our estimation skills and be more and more accurate. We are not lying, we are giving our expert opinion and we will be wrong. And that is ok.
Our team mates will also give estimates and deadlines and they will be wrong… and that is ok as well…
But the act of being brave and putting our opinions forward are what we do as professionals. It isn’t easy and managing the expectations once these estimates are known is also not easy at all.
I see a long continuum of estimating solutions.
At one end you have the detailed estimates with a work breakdown structure and bad management like micro-managing team members. Due to the excessive planning and management you deliver less value to the client.
At the other end you have no estimates and limited predictability. This also delivers less value to the client who requires some predictability.
But in the middle, you can have environment where people give their honest opinions on what it will take to get to end of job. Clients get the predictability that maximizes value. The consequence is that more discussions are required when new things are uncovered and learned and expectations need to be managed. It is never anyone’s fault, everyone is doing the best they can and we are constantly learning. This environment takes the right type of leaders, teammates, and clients. And managing the relationship is not easy. Like all good relationships it takes a lot of hard work.
But are we about doing whatever is easiest or what is in the client’s best interest?