Please don't argue with the weather
Say you have a vacation planned next week. You are going south to a fun coastal town renown for its beaches. You’re hoping to get outside, get some sun, and stick your toes in the water while drinking something with too much sugar and alcohol1.
Hoping for good weather, you turn on the news. The meteorologist says it will be 50 F and cloudy. This isn’t what you were hoping for! Sitting on the beach won’t feel right in drab weather like that.
Think about how you respond to this situation: do you try to argue with the meteorologist? Do you say, “how about we actually do 72 F and sunny?” No, that would be silly. A forecast isn’t a decision the meteorologist is making. It’s merely a prediction about what will happen. Predicting a different temperature will do nothing to how the air will feel.
No, if you want different weather next week, your only option is to go to a different place. You obviously can’t argue with the weather.
Yet in software companies, we often try to do exactly that. When an engineer says that a project will take 7 weeks, someone is sure to argue and ask for it to be done in 5. But changing the estimate written down on paper doesn’t change how hard the project is to accomplish. It doesn’t remove time waiting for other teams or mitigate project risks. It doesn’t make the code cleaner, the tests run faster, or magically document undocumented libraries. It is mere arguing with the weather.
If you want a different estimate for the end of a project, the only option is to change where that project is going. Choosing to build something smaller or different can (sometimes!) give you more favorable estimates. It helps to know the whole weather map, not just the weather in that one town.
But sometimes it is just plain cold everywhere. There’s no law of physics that says there must exist a spot on the map with a temperature you like. If the system is too complex and too full of tech debt, there might not be any meaningful options that can be accomplished in 5 weeks. Pushing back on the person who tells you this won’t change the facts.
If you are especially wise, you may notice a pattern where the temperature is frequently not what you want. You realize that you need to make a systematic change in how you are planning your vacations. Perhaps your yearly beach vacation needs to move from January to August. In software, this might look like giving a team time to pay down tech debt so that they can move faster later, staffing a team they get blocked by, or involving the team sooner in the new product.
Please don’t argue with the weather. If you don’t like the temperature, change where you are going.
I can’t recall speaking with anyone whose vacation plans actually look like this↩