Premature Optimization

Premature optimization is the belief that everything must be perfect before you can start using it. It’s like insisting on building a multi-lane highway before daring to walk down a simple narrow path. The result is delay, over-engineering, and often procrastination.

Many times, what we think will happen either happens very late or doesn’t happen at all. Premature optimization might also lead to a cost increase in delivering something.

If you are…

… Then you are optimizing things prematurely. These behaviors create the illusion of progress while avoiding the actual work.

Take a look at this site, for example. It is always changing. I’m always fixing something, rewriting another thing to make it clearer, improving some note, adding new contents, moving things around.

It is never finished. The idea, then is:

  1. Build first, create a working version, even if imperfect
  2. Test it, validating whether it solves the problem or not
  3. Only then optimize.

In software development, it is what we call an MVP (Minimum Viable Product). It is the minimum usable thing that we can deliver so that we can start testing and developing more features. Sometimes we think the user will want 50 settings, while all that is needed is a simple On/Off switch.

Don’t let the pursuit of perfection block progress. Start small, iterate, and improve as you go. You’ll ship more.