Many years ago I started my career as a programmer. These days people try to come up with other definitions for this trade, like software developer, application developer, system analyst, application architect et al. But if most of the day you spend writing code, you are a programmer no matter how the HR personnel labels you. You are the coder, and there is nothing humiliating in this word.
When I was a young coder, I was writing code most of the day. Periodically, my code would go through QA and get deployed in production. Then, other people would start enjoying fruits produced by MY CODE. For example, MY CODE could calculate payroll for a large plant. Later, I learned how to work with databases and how to write efficient code to minimize the time of execution of SQL queries. But this was still my code, and if it was working well, I felt that I was da man in our IT organization.
Yeah, yeah, yeah… I had managers who were attending or running endless meeting or were stopping every hour by my cube asking, “Yakov, any news with this program?” So freaking annoying! Don’t they understand that I’m the only one who’s working here and I should NOT be bothered, because I’m da man here!
Joel Spolsky is a big advocate of giving programmers separate private offices, which should make them more productive. But I’m wondering if Joel allows his coders have locks in the doors to their offices so no one, even HIM would ever bother them when they write code?
Years went by, and if I used to spend 80% of my time writing code, one day I realized that this number went down to 50%. I started managing people. To my surprise, I had to learn that it was not as easy as I used to think before. If before I was JUST WRITING CODE and everything was in my hands, everything depended on me, this is not the case anymore.
Now I need to make sure that Ashish, and Boris write their pieces of code correctly, and more importantly, can manage their time well. Boris is a very good programmer, and he wants to deliver the best code he can. There is a little problem though. I’d be more happier if he’d submitted good-enough-code yesterday than a superb code a week after. Ashish is a mystery for me too. He never says, “No”. But when he leaves my office with a new assignment, I can never be sure that both of us understand this assignment the same way.
I was launched to a new managers’ orbit. In the beginning of each hour, this orbit gets into motion. People are moving with notepads from one meeting room to another. This is all they do.
I’ve learned new slang.The phrase, “I have one o’clock, and two and four” means that I have three meetings at 1, 2 and 4PM. I also learned that you are allowed to call people “resources”. When you hear a phrase “I have two resources left”, rest assure that these resources eat, have sex, give birth to other resources, and sometimes have bad breath.
Since I never grew to a CEO of a large corporation, I also had my own bosses who always wanted to put pressure on me. They wanted everything yesterday. Now I had a dilemma. If I’ll start relaying this pressure onto my coders, Boris will quit and Ashish will take a 4 week vacation to attend a 500-people wedding of his third cousin.
This is when I realized that a good manager is the one who can absorb the pressure from above, but be nice to people under him so they can turn into productive resources. This is when I realize that I’m da man!
I can always replace one resource with another. Yeah, it may be a little annoying, but eventually everything will settle down, and new resources will keep writing code as the displaced ones did before.
Recently, I was making a technical presentation at a conference in New York City. One of the event organizers asked me what I was going to talk about so he could announce my talk properly. I said that I was planning to show how one can easy create an application using our code generator. He exclaimed, “What’s so special about it? When we need code, we just send an email to India and they generate code for us!”. As simple as that. Now human beings were downgraded even further: from resources to code generators.
A code generator can’t be da man, can it?
After a while, I became a big boss… of a small startup that earns a living by doing consulting and training. We also develop software. This time around, I have to do everything, coding, managing people (guys, you are not resources, you are people!), training, writing, speaking and standing on the expo floors of big and small conferences, and promoting, promoting, promoting.
Now I learned, that without PR, our services and software are not needed. I can replace programmers , hire managers, but without PR no one will know about us, and we can turn off the light and shut the door of our business. I started to spend most of my time doing PR. I’m da man again!
Am I? I know for sure, if we’ll find a good sales person, our business will grow a lot faster. Who needs coders, managers or PR? If Alex-the-salesman can be in the right place with the right people drinking wine over a nice steak… all of a sudden, our ideas, long hours, presentation, and know-hows become not too important and fade away.
Alex delivers better than all of us. You may say that you don’t care because you don’t work for a startup. The size of your employer doesn’t really matter. Every large enterprise IT department has their own Alex who ensures that there is a cash flow. You participate in the meeting with stakeholders, but every project has a sponsor who agreed to allocate budget for your project. When you, a freshly shaved coder arrive in the morning to your cubicle with a plastic cup from Starbucks, it’s because of Alex you have something to work on today.
I’ve read somewhere that there are two categories of people in IT – sales and sales support . This is true for 80% of IT organizations.
Alex is da man!