How to manage a Programmer ??

How does one come up with an answer to this quandary ? To compose a definitive answer, let me elaborate the question first. I’m a full time computer programmer(part-time blogger) working for one of the best IT companies in India. I am generally happy with my job, but sometimes, I dislike the way my company treats me. I feel, they don’t see any difference between a sales-executive job profile and my profile. My question above can be translated as: How should an IT company effectively manage an IT professional, to get the most out of him ?
Why :
If you are wondering, why should we even bother ourselves with such a ludicrous question? Let me convince you otherwise. From my personal (and my fellow programmers) experience, I can see a doleful trend emerging in the behaviour of a typical IT organisation towards its knowledge workers. I am not targeting the current work culture, rather I’m trying to point out the prevalant fallacy in managing Computer Programmers. Coz a dissatisfied, frustrated programmer leads to a equally dispirited product with millions of bugs. There’s more to management of Computer Programmers than maintaining excel sheets and offering free Pizzas for staying back late.
Assumptions:
I have taken the liberty of presuming a Computer Programmer as a creative individual with a knack for solving problems. He’s a nerd, who gets excited everytime he sees his program execute successfully, and frustrated when it doesn’t. He is passionate about programming and spends(or would like to spend) most of his waking hours in front of his computer.
Here’s a guideline/tip to successfully manage a Programmer:
Entertain Geek Fashion:
A typical geek hates to wear formals. He feels suffocated, when he wears a tie. And a properly tucked-in shirt with striped/plain pants…Yuck. Geeks are more comfortable with informal-laid-back clothes like jeans, round neck T-shirts, unkempt-hair. This doesn’t mean, they’re trying to act rebellious or smart or something. The reason for their affinity of such attire is simple.They consider their profession as an art and want to be as comfortable as possible while crafting their code. If you give them the freedom to wear anything they like, to work, they’d really appreciate this gesture and might reciprocate by working harder for the project.
Give them Space:
This might not be as intuitive as the above tip, but it literally means “Don’t micro-manage them”. Don’t pester them by soliciting minute to minute update on the project. Don’t squander their time, by holding status meeting everyday (One status meeting in a week should suffice). Geeks absolutely detest micro-management. They just want you to give them the requirement spec, and they’ll get back to you with tentative deadline. Negotiate the deadline, if you can. But don’t bother them any further, trust them to complete it within the agreed deadline.
Blend Work with Play:
Google does this best. If you’ve seen pictures of Google offices around the world, you’d know what I mean. Google employees have a ball at work. They get free food, free massage, free hair-cut, they can play pool, tabble soccer etc , bring their pets along at work. So, Google gives its employees enough reasons to stay within it’s colorful office walls(Here’s GooglePlex in action). I’m not coercing you to go that far, but you can try to imbibe some elements of “Make Work Fun” philosophy in your current work culture.
Do not restrict their internet access too much. Blocking porn is reasonable, but blocking anything else is blasphemy. A quintessential geek likes to play games on-line, visit forums, solve Sudoku(or some puzzle), read tech-news. If you think, by restricting the internet access, you’d avoid wasting the programmers productivity, then you’re gravely mistaken. Give them freedom of choice, trust their discretion and they’ll turn in quality work. They look up to internet for inspiration, for information, for friends. To deny these things to them could be harmful in the long run. The biggest advantage of unrestricted internet access is, via surfing the programmer knows what’s hep n cool on the internet. What do the users like, what do they dislike, what works and what doesn’t. They’d understand their users more and keep track of the evolving trends on the Web, which in turn will help you and your organization to make/change strategic decisions on your up-coming product.
Flexi-working hours :
Probably, this tip would be the most controversial of all. Let the programmers decide their working hours. Today, almost all IT companies follow the 9-5 pattern, but this does not suit everybody. It’s like forcing everyone to wear the same size uniform, irrespective of their body size and width; The uniform will fit some people perfectly, it’ll be too loose for some or too tight for others. I’ve used this analogy to explain the dilemma of todays IT professionals. They are expected to show up at eight(ish) and leave at six( preferably late). The problem is, this paradigm doesn’t suit everybody. Some people feel that they’re more productive in the morning and would prefer to start early and leave early, whilst others might feel that they’re more productive at noon and would like to start late and leave late. Relax the rules on work time and it will eventually lead to rise in productivity.
To conclude, treat Geeks/Nerds/Programmers differently. They are artists( at least that’s what they’d like to think), and therefore they abhor restrictions. They’re inclined to be unhappy if asked to follow a bunch of company policy rules. Give them enough liberty, entertain their eccentricities, encourage their wild ideas and you’ll end up with a kick-ass product, created by a bunch of inspired, motivated programmers.
Chip in your comments and let me know if you agree/ disagree with my views on how to manage a computer programmer. Adios !!!
