Friday, February 4, 2011

Code Review Objectivity

I've just re-wrote a serial driver and other people are starting to use it and modify its content. I would be the ideal code reviewer, as I know all the ins and outs of the code base; however I'm also the worst to review the code. When you develop code you start to build an affinity to it. You start to lose your code reviewing objectivity as you demand that your code be treated with the greatest respect (notice how I said 'your' code). Things like tab vs. space, code formatting, and readability somewhat minor in detail when you write code owned by someone else, seems now paramount. You can't let someone shit on your shit!

So what's wrong in this situation, is it you, is it the developer modifying your code?

It's actually all the above. You and your peers are not in line with each other on code quality, maybe your company has a loose interpretation of what is involved with code review. And truthfully we're looking at this subject with a microscope when we should really be looking at it from a 50,000 foot perspective. What's really wrong is not this specific code review it's your alignment of what is appropriate for code review with the goals of the company and/or project. If you want to say that quality is of the utmost importance, then you as an island, can't enforce this yourself, it has to come from above.

Let’s take a parallel, how would someone lose weight - the answer most of you would say is, “go on a diet”. WRONG!

You lose weight by not thinking about the immediate, you not only have to change your eating habits you have to change your whole lifestyle. And this is the same thing when it comes to code review.

So the next time you poo-poo on someone else's code as a reviewer or a developer, maybe you should ask yourself, what does the company/project warrant you to do? If you don't know or someone hasn’t outlined this to you - think you might have a problem.

Monday, January 24, 2011

Your Virtual Self

In this new age of social networks and online contacts I'm finding more and more that I have a virtual personality and a real world personality - And the onset of Multiple Personality Disorder (MPD) is basically setting in. Are you more available as an online entity than your real world counter-part? Do you tell the person interrupting you at your office to wait until you finish this email, that you've been composing, rather than talking to him/her first? As the world becomes smaller, where global teams become common place, sometimes I mistake my virtual life with my real life. Recently the Pope addressed social networks as a great blessing but warns us of impersonalization. I'm not religious however it doesn't lesser the impact of his statement. As I grow more and more accustom to social media as being the norm the less and less the statement "know thy neighbor" is true. As a software developer you grow accustom to communicating to your computer, maybe you're able to communicate with your computer better than you do with people. Sitting behind a desk hammering out the latest and greatest new app does that to someone. But like many things you have to fight that urge. The road of familiarity, somewhat easier, is probably not going to get you to where you want to go. As the new year resolutions have passed (yes I know about how trustworthy and concrete a new's years resolution can be) I feel that 'know thy neighbor' is a great start to a resoution.
When's the last time you picked up a phone? maybe you should,... and call someone?

Friday, January 21, 2011

Degrees of Separation

First I would like to apologise to the limited readers of my absence from this blog. Sometimes you start something, in which you want to keep up but time is always the enemy.

The age of always being connected, always being up-to-date with the latest news has it's disadvantages. Before the age of the Smartphone there was a degree of separation, workers were able to go home, not think about work until the next day starts. Extremely therapeutic. Unfortunately this degree of separation has vanished with the invention of the text message, mobile emails and on-demand web access. I always try to make it a rule that after coming home from work I at least take 15 minutes to try to unwind, forget about what happened at work, good or bad and start my home life. I've recently been blessed and cursed with a work blackberry which now has me tethered to work every waking minute of the day, and sometimes even when I'm asleep. This 'intrusion' is self inflicted. I choose to get updated by this little thing that buzzes every few minutes. It's sort of like a car accident; you HAVE to look even if it doesn't involve you. And you want to do something if it does involve you no matter what time it is at night. I can imagine the world running through this same scenario over and over again, constantly wanting to get updated. It's a bad feeling to tell you the truth. I'm reminded of myself as a budding teenager waiting by the phone for that girl to call, it puts you on edge. We're losing the battle for mechanisms to keep us separated, and we're asking for it with every technology innovation that we develop to keep us 'connected', in-tune with the rest of the world. So it really comes down to self discipline, a simple act of leaving that tethering device in your jacket pocket can really do wonders for your sanity. Getting that buzz from an email notification and *not* checking it is painful at first but is necessary. The emergency will be there tomorrow. As long as it doesn't cost too much money to fix it the next day verses at 11pm at night, I think it's good to keep your sanity.

Self-discipline. So the next time that thing buzzes, maybe you should really think twice about answering it right away. Maybe you have more important things to-do outside of work.

Many thanks for read

Quan.