On perfectionism
I’ll admit it. I’m pretty bad at product management. I’m a programmer, but I’m also a product manager at OmbuShop. I’ve been taught and I’ve learned that for something to reach production it needs to be perfect.
And by perfect I mean that it needs to work as expected. And it should also consume the least amount of resources to achieve its goal. And the build needs to pass. And there should be more test coverage.
Usually the programmer in me will be against deploying to production right away, because the feature is not perfect enough. While the product manager in me will be freaking out that we haven’t deployed in more than 2 weeks!
I know, deploying should be as boring as hell. That is something that I need to improve in our process.
Sometimes I wish I were more pragmatic when it comes to delivering a feature. Just because it is not perfect, it doesn’t mean that it’s not good enough.
As a programmer, you need to understand the concept of good enough software. There is a paper by Edward Yourdon that explains very clearly the relationship between cost, schedule, staffing, functionality, and quality.
When you are taking forever to deliver a feature, I suggest that you timebox it. Timeboxing will help you deliver software that is good enough. Because most times, you don’t need perfection, you just need something that is good enough.
Perfect is the enemy of good enough.