Tuesday, October 30, 2007

Earning programmer karma

As programmers, we see our work sometimes as very constrained and defined. Much like we like the programs that we write to be. Deterministic, predictable and constant.

There is one aspect of our job that deserves as much if not more attention than the boxes on our desks. It's our coworkers. I've come up with a list of tips that you can use today that will pay you back in scores in the days to come.

Tip #1: Pair program with a teammate to solve one of their problems

You don't have to be an XP maniac to make this work for you. Read more about pair programming if it's a new concept for you. Essentially, what this means is that you will pull up a chair right beside your teammate and ask them what they're stuck on. You might sit with them for a half an hour or even an hour, passing the keyboard and mouse back and forth.

This is a work bonding exercise. A former colleague had said to me once that there are only two ways to bond with people at work, one was to survive a big problem together, and the other was to go drinking with them. I bet both wouldn't hurt - but start here!

Yesterday, I leaned over and just said to this girl who sits behind me, "hey, what are you stuck on?" She was running into an SQL problem that she couldn't figure out. It was probably because it was 5:30pm already. I took one look and said, "oh hey you forgot the AS Column1", she just about lost it when she tried it, it was the right answer! Sometimes, it just takes a second set of eyes, or ears.

Tip #2: Tell a superior about a recent success that you were responsible for

As computer guys (and girls), we don't tend to be the loud-mouth bravado salesmen that some offices are full of. We're thinkers for the most part, and that's good. Sometimes, I wish there was just a little more thinking done in my workplace, that's for sure.

The point is that you could be writing code that is responsible for doing correct laser eye surgery, or maybe even just a database query that executes in 1% of the time that it used to. But, the problem that I see every day is that these heros of modern technology are the guys locked in the offices who are getting pizza slid under the door and a cheque in the mail! No one knows how important you are in the grand scheme of things, and you need to be an advocate for your own work.

What you need to do today is to walk past your boss' office and instead of saying "how's it going" or walking right past, stop for a second, and ask him/her if he's had his eyes checked lately (ok, well only if you're programming that laser eye thing...) But mention that you've been working on that query and that you've cut 99% processing time out of the equation. Tell him that you're happy that you did it! This will boost his awareness of what you do and will bring a human aspect to your work, the next time he hears about it he will think about you in a good light.

Tip #3: Find someone on your team to mentor, and talk to them about it

The best way to learn something is to teach it. We've all got something to share and it's probably not long in your career before you're no longer the junior team member. If you see someone who could use some help on a topic, whether it be technical or otherwise, lead by example.

Tip #4: Give back to the people in the community that you use every day

How many times per day do you end up on a blog, message board, news site or some other thing that has the exact question that you have been searching out the answer to all day... You scroll down desperately to find the one answer that will save you from a whole day's worth of troubleshooting, and there it is!

Well, someone originally took the time to put that up there, and you've cashed in on that karma for some time now. Let's give back. Hit up yahoo answers, experts exchange, etc. etc. and put up an answer to a question that you once had but now know cold.

This will start to get your name out there, and it's sobering, in typing out an answer that you know will be immortalized on the Internet for the rest of our lives, you might put some thought into the reasons behind it and end up teaching yourself something even more about it.

Tip #5: Go out of your way to tell a colleague that they did a good job

Let's not over-do this one, but if you see something good happening in someone's camp, let them know.

Tip #6: Ask for constructive feedback from colleagues and superiors

Open the lines of communication with your managers and supervisors by showing that you're taking an interest in your own career growth. This is an avenue for you if you don't have a regular performance review or you think that those processes are fake and awkward. This mentality can keep your attitude in check if you're aware that people are watching what you do (they are anyway, but it's good to realise it.)

Another way to approach this is to make a quick survey and forward it around to people. Sometimes anonymous comments and opinions can be helpful.



These tips will help you improve your interpersonal skills at the same time as further acquainting you with your colleagues and superiors.

1 comment:

Your Friendly Neighborhood Designer said...

Well you definitely have the karma of a programmer designing your Stones Throw web site down to a T.