Perfect is the enemy of good enough.

Popularized by Voltaire, the concept of the perfect being the enemy of the good enough serves us well in software engineering. Too many projects run late or fail to deliver at all because the developers are constantly trying to make things “perfect”.
The problem is, there’s no way that they’re right. Until you deliver a product and get it in front of real users, you don’t really know all of the ways that it can be improved. The user base may want the product to do totally unexpected things or be used in novel ways. Features you thought were important may be trivial to them, while other aspects you considered unimportant may come to have a high value.
But most importantly, you have to deliver. Without a release, your business value is a big, fat ZERO.
Working software is the measure of our business value. No software has no business value. Stop futzing around and get stuff out there. Once it’s out you can iterate on it and make it better.