Who’s da man in IT?

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!

And he hung up during Java job interview

I got this email from a strong Java developer I know for years. He wrote, “Today was the first time in my life when I hung up during the phone Java job interview “.

I asked him why. He replied and I just cut and pasted his email below without changing a word. The sad part is that it was an interview with one of the most reputable Wall Street companies. See for yourself.

The guy asked me how did we do timeout on URLConnection. I said that we simply sent a ping once a second and if we did not receive a ping we considered the connection dead. the guy asked me how did we do timeout on URLConnection. I said that we were sending a ping once a second, and if we did not receive a ping back the connection was considered dead. We’d notified the user and blah, blah, blah.

The guy said, “You should specify the timeout on URLConnection”, and asked how did we do it. I said that we did not specify timeout in URLConnection, that I am not sure there is a way to do it since in Java originally all IO was blocked.

The guy asked me how did we do timeout on URLConnection. I checked the internet to make sure, I said that we did the timeout on the software level, that I am not aware of any other way to do it and that in the very end I am really telling him how the system worked and if he can give me a hint to what he wants I ‘ll be glad to answer.

The guy asked me how did we do timeout on URLConnection. I am not joking, again. I said – we did it using ping message if we did not receive the ping within 2 secs we considered the connection dead.

The guy asked me how did we do timeout on URLConnection. I hung up.

I guess, the interviewer went by someone’s list of  questions and answers – he was expecting the answer “Just close the underlying I/O stream and the connection will be timed out “. His list of possible did not icnlude the ping alternative…

Lots of morons are working everywhere, including Wall Street, and your future is in their hands. Would you hang up?

A cost to attend the JavaOne conference

I did some math to calculate the minimum damage that attending JavaOne may cause to your valet. In my calculations I was assuming registration fee of $2500 (waived for speakers). I did not take into account early bird discounts or any other coupons that could bring the fees down to $1500). I did not include local transportation, parking food and drink expenses, which for some people may substantially increase the cost of attendance. So let’s see …

1. For a speaker (non-consultant) living in the Bay area: $0

2. For a speaker (consultant between the projects) living in the Bay area: $0

3. For a speaker (consultant on the project) living in the Bay area: $3000 – $5000 of lost earnings.

4. For a regular attendee (non-consultant) living in the Bay area: $2500

5. For a regular attendee (consultant between the projects) living in the Bay area: $2500

6. For a regular attendee (consultant on the project) living in the Bay area: $5500 – $7700 for the lost earnings + the registration fees

For US attendees living in the East coast, add from $1000 to $1500 for air tickets and hotel to the above .

If you do not live in the USA, add an extra $500-$1000 for more expense air tickets, and residents of some countries may have to shell out additional up to $200 for the US entry visas.

If you’ll add all these numbers, some people (or their employers) will spend at least $10000 USD to attend JavaOne. And guess what, all these expenses won’t stop at least 12000 people (may be more) from coming in to SF this year. They must be in love with this beast called Java. By the way, how much did you spend on you recent vacation with your spouse/boyfriend/girlfriend? Who do you love more: them or Java?

The funny thing is that there is a substantial number of people who will come to JavaOne, but will not attend even a single technical session. They will just hang out in the nearby bars and restaurants making new friends and contacts. Networking, networking, networking (a.k.a location, location, location) …

Anyway, I’m planning to be there participating in the Java Champions panel and some JDJ events. See you there.

P.S. I “m not going to tell you how much it’s going to cost me to be there 🙂