Why Pessimists Build Better Software

Why Pessimists Build Better Software

Being pessimistic is an advantageous personality trait when building software. The reason for this is that when building software everything takes longer to build than you think.

Think of every feature as an iceberg: You can see 3 weeks of work above the water, but underneath 3 hidden weeks are lurking. This is a lesson that is hard-learned in the first several years of professional coding.

Pessimists have a natural advantage in building software, they've internalized it's going to take longer than they think, and they can take this intuition into every small decision they make. This is a large advantage because most of the leverage in building software is in the decisions that get made before starting coding.

Pessimists know that estimates are probably too low and that timelines will slip. They can mitigate this by padding their estimates or trying to look under the icebergs.

They know that building less software will not only cut the visible part of the iceberg but also the unknown invisible part. This is why prioritizing and cutting scope are two of the most important tools we have for shipping software.

Obviously, being pessimistic about absolutely everything is no good. The best mindset for building software is macro-optimism combined with micro-pessimism. An example of macro-optimism: "We can find a way to get this project delivered in 2 weeks". Micro-pessimism: "We should cut that small low-priority feature, it'll probably take longer than we think."