I’m a perfectionist that doesn’t have time to be perfect. That drives me bonkers but I’ve realized it is a battle I will never win. It is true that if I’m allowed or allow myself to have unlimited time to complete a project, lets say a web service, I will never complete it. Oh, I will put in a ton of work and to everyone else the website will be done, but in my eyes the web service will never be done. I will always want to work on it, that one last thing I want to complete. That improvement I must do. It never ends.
Does it mean the web service will be junk? No. Just the opposite. The web service will be awesome. But at what cost? This is the game I have to play with myself on everything I create. At what point is it done enough so it can be launched? In my eyes it should be when it is perfect. So never… Which is not realistic at all.
Something a little bit more realistic is just past beta. Testing has been done, major issues have been fixed. The basic desires and necessary components have been satisfied. Most everything works as expected, it is almost polished and just about detailed. There is still a ton of room for improvement but solid value is there.
Now it is time to get out there and do something. If you never launch your product/service because you are trying to make it perfect, you will never succeed. Do you think anyone cared that gmail wasn’t perfect when it first came out? No. What they cared about was it wasn’t like every other free email service. It offered 1 gig of space instead of 5-20mbs. It worked, mostly. It was basic and lacking features but it was continually improved upon. That is what mattered. It was done and people were using it. If they waited to make gmail perfect would it probably would have launched a year or two later. And I doubt it would have had the same impact that changed free email services forever.
Done is Better Than Perfect. If you don’t get your product/service out there for people to use, how will people use it?
But how do you get there?
To figure this out, the first thing that needs to be done is creating a scope of work. Basic desires and necessary components should be outlined before the project is even started. That should be phase one. Everything else should come later in phase two through whatever. Once phase one is close to being completed beta testing should start. This is where things can go downhill fast. Focus on basic desires and necessary components outlined in phase one, period. Take in feedback and file it in the appropriate place in the scope of work for later.