This weeks lesson : frustration

This last week has been a lesson in frustration – changing requirements, dependency on offshore decision-makers, flakey debugging environments and forgotten code constraints.

These things have always lit a fire under my calm exterior and left me wanting to scream, throw the laptop out of the window and snap at all my colleagues who only want to help. This week was different and it’s a strange (and wonderful) new world.

One, frustration does not have to mean anger. I can throw all the teddies out of the cot I want but it won’t get me anywhere; I’ll lose all the critical thinking capability and mental space that are key to getting me (and the code) out of this mess.
New solution? Breathe, go get a cup of tea

Two, is it really really true?
Have I just flipped my lid over a simple mis-spelt command or a missing semicolon? am I debugging a different site?
New solution? Go over everything again as if for the first time, with a sounding board if possible – even if it’s your very own blue elephpant or the family cat.

Three, how can I possibly be wrong?
It is very rare that one person will know (or remember) absolutely everything about every system. It might not be the code that is wrong but the whole approach. I once spent a whole day using the right code in a scenario where would never work due to user permissions.
New solution? After the second check, question your assumptions. If ego is getting in the way of your job, you will not leave on time today.

Four, keep focus
When I panic it’s easy to feel overwhelmed by everything that has to be done and to take on things that aren’t really my remit like chasing decisions and requirement detail.
New solution? Remember who else I’m working with and what their strengths are. Everyone is likely to share the dream of getting the solution out of the door, they all have their best skills to hand to do their bit.

Five, accept help
I’ve always been able to admit I was wrong or how much I didn’t know (it’s the only way to learn). I’ve also always be able to ask for help but rubbish at accepting it. Following instructions when I’m already stressed and impatient was a nightmare and working at a different pace to my own always made things worse.
New solution? Be honest! Appreciate value in others and assume different is better until you yourself have proven otherwise. When it comes to peer programming, practice is the only way to learn.

When all else fails, go old school
Sometimes to get a job done you have to go back to first principles – var_dump() and die() may not be pretty but if they mean the difference between launching on time and beating your head bloody on a bit of code, don’t dismiss ’em.

When the day is over, go home and enjoy doing something else.

[image snaffled from thallium.com please shout me if you know copyright details]