Thursday, October 12, 2006

Good ones are hard to find....

I wonder what a tired mind can write about.

Okay, let’s see. Off the top of my head… I like programmers. I really do, even though I secretly shudder at the thought of spending money on my child’s education and finding out that he or she wants to be one of them. But my problem is that there are very, very few good programmers. The problem is further compounded by the fact that there are way too many competent ones. When I work with excellent programmers one time, they raise the bar so high that it impedes my interaction with other merely competent coding colleague. (And funnily, all of them have been men, so I shall use the masculine gender to refer to them in the rest of this post. It accurately reflects my experience, and not the workforce at large, so there won’t be an addendum of apology later.)


So, what do I mean by a good programmer? There must be a perorational set of guidelines somewhere in the wireless universe, but here’s my list:

1.

He is genuinely interested in solving problems. You go up to him and tell him that something is not working, he will turn his eyes away from the screen and ask, ‘What is it?’ The fact that you are a writer and only use MS WORD all the time is not held against you. Usually, they deem writers to be slightly more intelligent than a worn-out mouse (rodent OR the gadget). So, writers having a technical problem is generally seen to be an act of God and must not be interfered with.

(I must admit here that writers cannot articulate instances of random HTML codes showing up like dirty petticoats on the screen. I’m aware it can get trying.)

But ever so often, one of them will hear you speak. He will come up to your workstation and look at what’s wrong (instead of asking you to go back and send screen shots to him, and CCing them to everyone born ever since the computer was invented.)

Then he will SOLVE the problem.

2.

That brings me to the second point (as all first points do.) He understands what solving a problem means. He knows that he has solved a problem if he has eliminated it; NOT if he has provided a bigger one to distract you from the original hassle.

3.

He reads emails. Emails that writers write. Emails with whole verbs, full sentences, polite references to attachments (‘Please find attached…’, instead of just a paper clip icon with no subject, no text, no nothing), and so many words that a scroll bar actually appears in the message panel.

The good programmer scrolls.

The other ones (and I speak from harrowed experience) don’t.

Few days back, I stood fuming. It was already too late, there were enough bugs to spread entomophobia, and meeting a deadline was a distant dream.

‘I asked you to do that’, I say.

‘You should’ve mailed’, smug reply.

‘I did. Check your email.’, I snap.

Email is unearthed. MS Outlook is set to the view where you see a portion of the message at the lower end.

‘See…you didn’t say anything about that’, smugger bugger.

‘Scroll down..’, I snap again.

‘Scrollllllll?’, he looks like one stepping over dog faeces. ‘I didn’t scroll.’

Somehow, I don’t feel vindicated. Interesting how this guy showed me the truth of a hollow victory.

4

The good programmer is thorough. Very meticulous and very detailed. I’ve had programmers point out errors in content structure, besides doing a fantastic review of their own jobs. They have helped in visualization, understand schedule variance, give the odd pep-talks to their team mates. Some of them view a project holistically and are clued into what the other departments do. (The only other team that shares such an overview approach are the project managers – and they think no-one anywhere is working.) The other types of techies (and I realize its unfair to say this of them because most of us are afflicted with tunnel vision) wouldn’t even know who else is on the project besides their own gang. So every time, you approach them for information, you first have to connect the dots from waaay back before you get to the point.


5

I’m sure they find writers such as me, weary as well. The kinds who point out to anything strange on the screen and call them ‘thingies’, (and if they blink – ‘blingies’, and if they are aligned too closely with another element – ‘clingies’…hee hee hee hee!) But some of them have patience. They explain succinctly, instead of putting strings of words together, of which 5 will be ‘metadata’.

They know where I am coming from. They know that place. They know where I need to go. They know that place too. And step by step, they take me there.

[I just thought of something that happened in my very first job (or the very first job that lasted more than 8 days.) I worked for a web site and we were designing something or the other. A programmer friend was explaining the concept of animations and he kept using ‘Flash’. Now, I thought ‘Flash’ was a verbal interjection akin to snapping your fingers..or saying ‘Poof!’ Like..’It disappeared like this!’ *snap finger* or ‘She was gone! Poof!’ So, I was mighty intrigued when he’d say things like ‘Flash! The menu will appear here.’ Or ‘You know how we can move the text that side? Flash!’ He had a vile temper, and it being a first job and all, I didn’t reveal the incomprehension. But later, many quiet moments were spent giggling away to glory when I was introduced to ‘FLASH’.]

6

At client calls, the good programmers come prepared and communicate with the clients themselves. In fact, of all the traits that I have written about, if there is one thing that impresses me no end, it’s the way programmers conduct themselves at client calls; the way they think things through. They ask their own questions, they find out their own answers, they discuss their own doubts. And there are very few who can actually do this. Most don’t speak up, and rely on the other representatives to interpret client requirements. This never works because either they don’t trust the source (if they are writers) or they don’t trust the source at all (PMs).


This is basically it. It isn’t a big list, but these are the only things I can think of at midnight while I wait for the programmer to send me my stuff to review.

He’s a good guy deep down…missing subject lines and all.

8 comments:

Anonymous said...

"I must admit here that writers cannot articulate instances of random HTML codes showing up like dirty petticoats on the screen" & "He’s a good guy deep down…missing subject lines and all." -- precious :-)

I tried to keep away from programming all my student life and ended up in a job which called for me to do a fair deal of coding, and I fell in love with programming. So you can call me a 'convert' I guess.

You're spot on when you say a programmer is primarily a problem solver. All this programming language jargon is just a facade to keep away the pests :-) ... at the end of the day it's about finding the easiest, simplest and cheapest solution.

Personally, maybe at a very high level, writing is not that different from programming -- it's all a matter of syntax, structure and how you put together the story.

-RS

doubtinggaurav said...

Well,I am an incompetent programmer, so I do not count. :-)

MellowDrama said...

it is an inherent trait, 40% only read subject lines. But then I guess they hate our guts too. SO there! Though I am sorely tempted to send it to my CTO back in Mumbai. He doesn't have a sense of humour..actually come to think of it, most programmers I know are lacking in that department. Hmmm

Mukta said...

hi RS

Very well put..

hey gaurav,
:-) everybody counts

hi rama,
you GUESS they hate our guts?...they do, honey, they do....

Siva said...

Nice post.

Came here from DP.

Anonymous said...

You seem to be talking about evetyone other than a good programmers in the post

1,2,3 - Good helpdesk personnel
4 - Good Project Manager
5 - Good Colleague
6 - Good Client Monkey

Dadoji said...

I am lucky to be surrounded by crack programmers. And, by that, I don't mean programmers who are on crack. I love mentoring intelligent people. heh heh

Mukta said...

hey anon,

well, a good programmer CAN be all the things you listed, right?

well, dadoji, good for you!