Certainly, it is not perfect. It can still be improved.
That’s an incorrect question. The correct question is: when can I ship it?
It can be shipped when it is adequate.
But it’s not perfect. We cannot…
Well, it is not. Actually, the efforts put in making it perfect beyond what’s adequate are waste.
It’s okay if you like to change the definition of what’s ‘adequate’ but that should be your goal.
If your goal is to ship your product after it’s perfect, then, one day you might reach the goal but there might not be any need for that product to be shipped.
“I don’t understand why we’re NOT using the latest version of the programming language to build this software application,” the programmer showed his disappointment to the newly assigned project manager. “By the time we will finish building this application, this version of language will be out of beta and released.”
“Okay, does current version of the language you’re using solve your client’s business problems?” The project manager asked.
“Well, we are using an old, so-called stable version,” the programmer repeated. “Most others in the team think it’s dated. Sure, we will be able to solve client’s business problems but we will lose the opportunity of working on the latest technology and eventually become inferior.”
“Let me share something,” the project manager said.
“Almost every great professional I have met in my life has one thing in common: their primary focus is to solve their client’s business problems. And I have seen some of the cleverest professionals who have failed. Just because of one thing: It’s NOT latest version of programming language that matters but your ability to make the best use of whatever programming language you’re using and solving your client’s business problems. A programmer’s chief goal should be to solve his client’s problems, version of the programming language is secondary.”
Do you get it?
“It’s okay,” the programmer replied. “But, we want to use the latest version of C# for building this application so that we can seize the opportunity of working on the latest technology.”
“So, my role will be more of a coach than of a project manager” The project manager mumbled.
As the project manager walked away the programmer turned to his colleague and rolled her eyes. “Some project managers just don’t get it, no?”