Perfection and the Speed of Light
I’m a perfectionist and it has taken many years to unlearn my habits when it comes to getting work done rather than getting it perfect.
Over the years, it has meant that I haven’t completed some projects — especially personal projects where I was the client. I wouldn’t ship until I felt my widget was worthy of bestowing on the eyes of the internet. It became a burden and as I grew up and matured in my craft, I learned to ship what made sense rather than the ideal in my head.
As most of us know, the speed of light is something that is theoretically unattainable.
According to special relativity, the energy of an object with rest mass m and speed v is given by γmc2, where γ is the Lorentz factor defined above. When v is zero, γ is equal to one, giving rise to the famous E = mc2 formula for mass–energy equivalence. The γ factor approaches infinity as v approaches c, and it would take an infinite amount of energy to accelerate an object with mass to the speed of light.
This is how I think about perfection when it comes to product development. Perfection is like the speed of light and your project has mass. The initial 80% of journey is relatively painless. You know what you’re working toward, you understand the problem you are solving for with your app or site, and you have a rock solid workflow to get you there.
However, as you approach that last 20%, as that curve starts to skyrocket, your mass increases exponentially. That is to say, the work it takes to get there becomes unsustainably infinite. Perfection is thus impossible.
Most people are aware of the 80/20 rule. That is, you’ll spend 80% of your time on the last 20%. This is similar to what I’m saying but my light speed analogy goes further than that to say that the ideal is unattainable and serves you wrong in practice. Starting a project right from the beginning with the understanding that you will be shipping something very early and something very often will organize your milestones around time objectives.
This is better than feature objectives that then have time scales attached to them. I will write about release cadence in another article.
For now, I want to close by saying this doesn’t mean you can never finish your project. On the contrary, we want to get stuff out the door and into the hands of real people. Whenever you ship something, that light speed scale resets and you’re back at 0. Now you can start a new journey based on the knowledge you gain from the first jump.