Having background in software engineering, being developer for couple of years, managing products and software development teams for a long time I was constantly facing decisions of what is the right balance of developing products fast and in a good quality. And what does good quality actually mean. What are the right criteria to decide whether a product is ready to be released? How do you know what is the best for the customer and you?
What I have observed is that the incremental value of spending more and more time and money to make the product perfect is limiting to zero. Having the product “perfect” will most likely not bring more money, it will not get you more customers and it will not be appreciated by the customers you have as the differences will be just too marginal or taken for granted. And what does “perfect” mean anyway…
You always have to ask what you are getting with each incremental investment and what is the opportunity cost (as our economist friends would say). What does it bring and what does it take away to implement a new feature to enhance the product or to fix a particular low impact issue? What does it bring? You will feel good. You will have a better product. Customers may or may not notice. Customers may not even care. What does it take away? Time and money you could have spent on something else!
To illustrate that you don’t need to have this mindset only on the big scale but also in everything you do on daily basis just consider this example. You are a busy person. You have to deal with tons of tasks every day. When you get email from your boss asking about status of a particular project what do you do? Do you spent next half an hour writing a long email with all the details of what is happening, all the issues and how you solved them? Or would you rather just write a short executive summary stating that the project is on time as planned, when the delivery date is and that there is a minor risk because of flu season so people could get sick and you will keep him appraised?
The first report takes thirty minutes, the second takes five minutes. The first provides too much information that is not making it better but in fact is making it worse as your boss will have to spend ten minutes reading it and trying to understand the implications as compared to thirty seconds the second report would take. So you spent twenty-five more minutes than necessary writing something your customer (boss) doesn’t need and because of that you had to skip a mentoring session with one of your subordinates.
So never ask “Is it the best we can do?”, because the answer is always “No, of course we can do better, add more features, make it more shiny.” Better question is “Is it good enough for what we/customers need?” You don’t need all the bells and whistles, you don’t need to gold plate everything. As long as you meet the minimum criteria you and your customers have, you are done. And you have done a great job, in fact much better job than if you spent another year and tons of money to make it nicer and shinier.
Just make sure you provide what you promised, what you expect, what your team expects, and what your customer paid for. By providing more you spend time, money, attention on something that doesn’t bring the value. Rather go and build second product, or spend more time with your team, or innovate your processes, or spend more time with customers on the next big thing.
Twitter type summary: “Don’t ask your team whether this is the best they can do, but rather whether this is good enough for what the customers need.”
How do you know that your job is done and product is good enough? Do you push your team to do the best they can or to do what needs to be done?