Achieving Perfection

Jeff Johns
4 min readNov 25, 2015


Funny, as I was typing this title I misspelled ‘Acheiving’ and thought, hmmm, this is off to a good start…or maybe I did that on purpose, you decide.

So in all seriousness something that comes up a lot on technical and design teams is this thought of being perfect, I need to make this perfect. I’m sure it happens in all walks of life but I don’t have experience with it outside of my world so I will write from what I know.

When I started as a developer I too wanted to achieve perfection. I never wanted to release something to the public that I didn’t feel was perfect. It was difficult for me. The mere thought of doing a minimal viable product was terrifying. That’s my work, that’s my name and an MVP was shit to me.

Fast forward 10 years. I left big business and entered the start-up world. Things moved faster, things were sloppy and things were broken. This was super uncomfortable for me, I actually only lasted 10 months and quit and went back to something more comfortable, or so I thought.

Those few months changed me, as I started to work at a design agency I couldn’t stop thinking about working on a product and iterating on it. That’s the key iterating, a product is all about iterations and it’s never done. It’s never perfect nor will it be.

So I spent the most miserable 10 months of my life at a design agency and went back to a start-up, but this time I knew what I was getting into. The entire sloppy, unorganized mess of it all.

I knew it was up to me to make the future, it was up to me to not ask someone else to make a decision, it was up to me to be successful or fail. You can’t control anyone else, so they can’t control you. Do something, ask questions, push something live and break production, anything! Ok so try not to do the last one too many times but it will happen and don’t let that stop you.

See perfection is bullshit. Perfection is unattainable, it’s different for everyone. Your kerning preference is crap to me, I don’t care. Me choosing 2 space tabs or 4 is nothing, no one really cares. I’m not saying don’t try and don’t set standards, but don’t ever let little things stop you from pushing ahead.

The customer doesn’t care if your app isn’t pixel perfect, they want to get in, get something done and move on with their day. You are middleware to their business. You could make the buttons rainbows and if they worked, in the end they wouldn’t care.

Something I think people get confused is perfection vs. quality. Quality should be a set of standards on your team. Whether that is coding standards, design standards, anything measurable. Quality is set by the team.

Perfection is your nit picky friend that thinks everyone and everything is wrong and they can do it better.

Quality is that friend that helps you be successful. You’ve had both people in your life and after a while you hang out less and less with the former. That friend is a jerk and you should remove them from your contact list, they will only bring you down.

See in my opinion people get on the “it has to be perfect” train because they’re scared to release. Scared either that they won’t have the chance to make iterations or just scared of feedback in general. They don’t want to be wrong.

Well guess what, no matter what you are going to fail and if you don’t fail you aren’t releasing enough.

Failures are better than “perfection”, no one has ever been humbled or learned anything from “perfection”, it’s a self-indulging characteristic. Don’t be that friend.

Let yourself have fun again, let yourself breathe, release early, release often and fail once in a while. Take that server offline with a typo, because I guarantee something good will come from it.

Remember no matter what every customer will have a different opinion of how your app should work, so you sitting on it waiting for perfection will actually cause you to fail before you even release it, if you ever release it. Take a deep breath and deploy, it will all work out.

Disclaimer: I am a recovering perfectionist.



Jeff Johns

Husband, father of three, engineering leader, planner, organizer, runner, and music lover.