Skip to main content

Why software development estimates are terrible

I really like this quote with Nobel Prize winning physicist Richard Feynman. He is describing a scientific mindset that applies to software development just as well as physics:

Stakeholders, business people, and other normal people mistake building software with things like manufacturing or building. When I had my roof replaced recently, the contractor measured the roof, determined the materials to be used, allowed a margin of error for possible dry rot, and came up with a bid that was within $300 of the estimate (he was under), and he finished when he said he would. Perfect. He was dealing with known quantities and he is a professional. Why the heck are software estimates and roadmaps so terrible when lots of other professions clearly have estimating worked out?

The difference with software is that we do not start with a known system. All modern systems of any complexity and age tend to be big, or even huge. Millions of lines of code might be involved. Depending on the size of the company, thousands of developers might be making changes to little pieces of it every hour of the day. Millions of customers use the systems that were created by thousands of people, many of whom are no longer with the company. I am not describing any one company - I am describing every large company that I have ever worked or interviewed with. If we want to compare roofs to code imagine that you have to make an estimate to re-roof a house, but you have never seen it before. And it is the size of the moon. And it is made of all different stuff that is of different ages and condition. And there are millions of people under the roof. And there are thousands of people building and tearing down different parts of the roof the whole time that you are supposed to be roofing it. And it is raining. And snowing. And Sunny. And Hailing. And there might be an earthquake tomorrow. And several parts of the roof are definitely on fire. Now, please give me an estimate that is precise - I need to know exactly what day you will finish and how much it will cost - and you need to tell me now. No right now. In this meeting. Go.

You may think that I am exaggerating, but that is what it is like every day. Why do we do it? Well, as Mr. Feynman says, we are not afraid of not knowing. We love a mystery and finding things out. It is the biggest puzzle ever, and just like playing horseshoes in a lightening storm with farm dogs running around you (I have done this, too), you just never know what crazy thing will happen. How will we make it work? How long will it take? Secretly, we have no idea, but we really want to find out. This sort of acceptance of uncertainty is maddening to business people who want to announce release dates. The best a good estimator can really do is just watch his or her team go through a few release cycles and pad all of their estimates. If they usually take twice as long as they estimate, then double them. What kind of process is that? Did Edison know how long it would take to invent the lightbulb? No. He famously went through dozens of prototypes, and he was just trying to put current through some wires. We are way, way past that, now. So if you are a normal person and you have the misfortune of having to ask software developers how long it will take to build your feature, just remember not to be afraid of not knowing.


Popular posts from this blog

Reducing CO2 in your home the nerd way

For Christmas my wife gave me a Netatmo weather station because I am a home weather station nerd. The Netatmo is very cool, but it has an unexpected feature: it measures indoor Carbon Dioxide (CO2) levels. As soon as I set it up, the Netatmo began to alert that our indoor CO2 was at an unsafe level. The notes said that outdoor CO2 is usually around 400 ppm, and numbers above 1500 ppm could be unhealthy. On that first day, my house was at around 1300 ppm. Prior to that, I never gave indoor CO2 levels a thought. I began to do some research and discovered high levels of CO2 can cause symptoms such as fatigue, headache, breathing difficulties, strained eyes and itchy skin.  My family does have all of these issues, especially on the weekends when we are home all day, but I never connected that to indoor air quality. Previously, I installed a Nest thermostat . The Nest is very smart and saves energy by learning your habits and programming itself. Unfortunately, it is so efficient, that t

Rooftop Playgrounds

This week I have had some meetings in a tall building in downtown Seattle, and when I took a moment to look around and enjoy the view I have noticed playgrounds on rooftops. I saw this daycare playground: and this playground on top of a school: I think that this is a really cool use of space. A friend that grew up in NYC said that her school had a rooftop playground, too. The delinquent in me wonders how many toys and balls go over the side, but I bet the teachers are pretty strict about that. Downtown Seattle has always seemed a little unfriendly towards kids and it is neat to see spaces being carved out.

How To Make School Lunches More Nutritious: Re-Define Words

If you are a parent of a child who attends public school in Washington, and if you have even a vague recollection of the food pyramid , you probably will have noticed that the lunches that are served in school cafeterias are frequently at odds with the rules of good nutrition. The school is not wrong, however. They have just re-defined words and you are not keeping up. Pop quiz:  Cheese belongs to what food group? *bzzz* - wrong. You said that cheese was in the diary food group , right? No! Pbth! How boringly accurate of you. Cheese magically transforms into a protein when it is served on pizza or in a bread stick! I know that you may be dubious, but I contacted Wendy Barkley, RD,  who is the Acting Supervisor of School Nutrition Programs in the State of Washington Office of Superintendent of Public Instruction and she assured me that it is so. To quote her email to me: " Pizza remains an option for schools for their menus.  The cheese on pizza is counted as a protein in t