June 6, 2012

Your Best

At work, everyone expects you to do your best. Wether you are a
freelancer, a completely-independent developer, or a company person,
everyone expects you to do your best. But what does that really mean?
Your best? The best work you’ve ever done? This phrase keeps me up at
night. This phrase makes me panic at work. This phrase has lead me to
act like a jerk to people who didn’t deserve it. This phrase has made me
hate projects and experiences that weren’t actually that bad.

What you have in your mind right now about what your “best work” looks
like is probably wrong. It most definitely does not match what your
client/employer/customer thinks is your best.

The work you produce is influenced by many things. If your client hands
you designs and pays you to build an app, there isn’t much you can do
about the quality of those designs. Maybe they don’t even make sense to
you. That doesn’t matter. Your client liked whatever those designs
described and they just need your to build it. This will not be your
best app you’ve ever written. The app’s audience may not even like it.
Your best in this case is simply to accurately reproduce what the
designs depict. As a programmer, you might put effort into architecting
the code so that changes later can be made easily and bugs can be kept
to a minimum, but you can do nothing about how that app behaves beyond
making it behave as your client expects given the designs they gave you.
You can make yourself so much more stressed, unhappy, and unpleasant by
expecting more from your work.

In the short term, it’s ok that your work is not amazing. You best is
simply your best considering the circumstances. Bad designs, your own
lack of skill in an area, low-skilled co-workers, crazy product
managers, lame CEOs, all affect the quality of your work and how closely
it matches your concept of the best you could have done.

In the long term, if you are going to continue to work with these
people/requirements/situations that influence your work, the question
is: can these be improved? Can you learn from this project to make
better code next time? Can you learn more about your platform to be able
to do things in a simpler fashion next time? Can you educate your
co-workers in coding techniques/practices that lead to less bugs? Can
you help your product manager/designer understand the platform you are
doing your work on? Is there something you can do that will help over

If the answer is yes, do those things and relax. Nothing changes
instantly and expecting anything short of that is silly. You and your
team are making progress and that’s all you can expect.

If the answer is no, maybe you should be looking to change
positions/jobs/fields. Not everyone is willing to change no matter how
you approach them. That’s ok too, that’s their choice. You just need to
chose different people to work with.

You should assume everyone is trying to do their best. Nobody thinks to
themselves, “I think I will do a shit job today, that sounds like fun.
Let me try to ruin this project and make everyone hate me. I hope this
is the worst app to ever be seen by human beings.”

For example: I’m a pretty terrible writer and this post is probably
poorly written, but that’s not because I sat down and said “how can I
waste everyone’s time by writing the most unclear pile of failure I can
into a blog post.”