My discussion with Sendhil on this topic started after reading the recent blog post from Ron Jeffries on Estimation is Evil.
I had a wonderful opportunity to listen to Linda Rising (Author of the book: Fearless Change: Patterns for Introducing New Ideas) at the Agile India 2013 Conference recently on this topic Deception and Estimation – How we fool ourselves.
If you are a Manager or a developer or a Tester or Director or you do anything related to Software, listen to this talk. To me, Linda is one of the masters of storytelling. Watch this video and you will understand.
My version of the example on this:
In India, we don’t have the concept of taking appointments yet with local salons and the salon will be crowded with people. If you enter the shop say @ 10 AM, you will see at least 5 guys waiting and at the max the local shop will have 3 people working. Now the shop owner or the leader of this 3 will look at you and say 10 to 15 minutes sir.
You know for sure there are only 3 guys working and there are 5 people waiting to either get a haircut or shave or head massage etc… How in the world they will be able to finish the 5 + 3 in 15 minutes and attend you? If you are a logical person, who wants to leave they will still persuade you saying wait sir… it will be over very quickly and you most probably end up listening to this and spend few hours of your Sunday in his shop.
What does it communicates to us?
- First of all we don’t have any clue on how much time it will take to complete a specific task (even with the guy who is doing the same thing his whole life) – > (Developer, tester)
- Second, we as humans always want to communicate to the other person in the way he feels comfortable -> (Manager)
- Third, we as humans are always optimistic (even when we know that things cannot be achieved in a specific time) – > (Client)
Linda in her talk refers to a research where in as humans
- If speak for ten minutes there will be 3 lies at least in that.
- We are tuned to say and accept lies right from childhood. Example she quotes is that a Grandparent gives a gift to their grandchildren. Even though the child, doesn’t like it, as a parent one excepts their child to say “It’s a very nice gift and that’s exactly what they were looking for” 🙂
So how does it translate to our software projects?
- If you are developing software for whatever period, there is no way you will be able to provide an accurate estimate.
- If you are a Manager, even when you know that you will not be able to meet the commitment, you will still persuade your client saying that you will be on time.
- If you are a Client listening to your vendor or to your own team, even when you know that it will not be done on time, you will still accept saying that it will be done on time.
In his book “The Mythical Man Month”, Frederick Brook mentions all Programmers are optimists. The underlying assumption of scheduling is that “all will go well”, i.e., that each task will take only as long as it “ought” to take. It’s a book (bible) for everyone who is into software business.
So much has been said / discussed about this topic. But even 30 years after Frederick Brook has written the first version of his book, nothing has changed. We still believe in the same model.
The other side of the equation is that if I don’t know the numbers I will not know how much I need to spend and when I can go to market. How will I get bid for a RFP? How will I give a number to my CEO so that he approves the budget?
As a Manager, it is very clear that one need to still give estimates as the Top Management/Middle Management with whom you are dealing with doesn’t understand this and they need an estimate. So as a manager, one do not have an option, other than giving their gut feel numbers.
But is there anything that can be done which can help us and in turn we help the senior management and top management to make some informed decisions?
Let us see it in the next post…
Arztsamui / FreeDigitalPhotos.net