Your BestJune 06, 2012 -
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 time?
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.”