jm.dev
j@jm.dev · @jmq_en
linkedin.com/in/jqq · github.com/jmqd
Tokyo, Japan 🇯🇵
Perfect is the enemy of good

Perfect is the enemy of good. Shipping something imperfect is usually better than shipping nothing at all. (There are exceptions, but they aren't common.)

Most sufficiently advanced systems have to evolve to become good. Evolution requires exposure and experience in the real world, battle-tested behavior, and importantly, failures. The only path to this kind of evolution is to actually put something out there, even if it isn't perfect. Especially if it isn't perfect.

The elbow in the curve of time spent improving design and analysis comes earlier than you think. You should be spending less time designing, and more time learning from your failures, missteps, and the complex realities of your system in the wild. Your designs are wrong anyway. Natural selection is going to be a far more efficient process for showing you why and how your design is wrong than anything else.

An old essay by Richard P. Gabriel.

Note that this doesn't mean to ship unrobust systems. This means that real-world feedback is valuable and systems should be built with evolution in mind.