Most of the people who have worked with me know this saying. I actually understood the importance of this saying in a conversation with one of my managers Praveen Guggarigoudar. We had a discussion about extending one of the sprints by a day. The reason was that there was a minor bug that will take just 2 hours to fix and 2 hours to test in all environments and there was no risk in fixing that bug. Fixing this bug would make the feature perfect. Praveen denied the extension and asked us to go live with that defect. Few of the team members got together and discussed with Praveen about why he rejected the appeal to extend the sprint by one day. His answer was very simple that a delay of 1 day in current sprint will cascade to future sprints and he showed us how worse this can get towards the end of the year. He also said that the software we launch is not mission critical and bug is also not a show stopper hence no risk in releasing the product with the bug.

What the team was doing is that they made perfect the enemy of good and was trying to stop the good from going live. Few months after this incident I had a very similar experience with customers. Always in beta is a reality in most of the agile projects I have worked on. Customers have the same thought like developers to launch a perfect feature of the product to get a good first impression. Sometimes they need nudge to launch a feature in beta mode which may not be complete.

Hope this article resonates some thoughts in your experience where perfect was the enemy of the good. One of the industries that suffer from this problem is the pharmaceutical industry where the drug development for some diseases last for more than a decade to get a perfect solution. While I agree that these industries value the life of human more than the drugs they develop but they need to have a framework to release drugs which are good enough to keep the patient alive until perfect medicine is invented to cure the disease.