Other Dude: Hi.
Me: Hello
A minute elapses Other Dude: I'm having a problem
Me: How can I help
A minute elapses Other Dude: ACTUAL PROBLEM THAT THEY NEEDED HELP WITH
Me: Oh, here is your resolution which took all of 15 seconds to give to you.
WHAT THE FUCK MAN?! WHAT THE FLYING FUCKITY FUCK?! YOU JUST BROKE MY FLOW AND STOLE 2 GOD DAMNED MINUTES! WHAT IS WRONG WITH YOU?! IT'S FUCKING IM, YOU'RE NOT GOD DAMNED STANDING NEXT TO ME! AND WHY THE HELL DOES IT TAKE YOU A MINUTE TO TYPE EACH THING ANYWAY?! DON'T YOU KNOW HOW TO TOUCH TYPE?!I mean, CHRIST, if this happened once in a blue moon, fine, whatever, but it seems like EVERY motherfucker uses IM the same way. EAT DICKS.
...
I might have went a little overboard on this.
Then refuse this, set your status to "don't bug me, if you have a question just bloody ask it" and check your IM when you've got a lull[0]. If it's not a question, kill the window it's not relevant. I don't need "social interaction" on IM when I'm coding, if the other guy can't get to the point screw him, I'm not interested.
[0] If IM is specifically a way to get you immediately, start blacklisting people who can't get to the point and waste your time and have they go through email.
But of course they won't use email, they need the answer NOW. No, they'll come over to your desk and start tugging on your shirtsleeve.
If people start with "Hi, I have a problem" and don't state what the problem is I just respond with "drop me the details and I'll have a quick think" and get back to my work. Even if they respond immediately to that it might take me ten or fifteen minutes to get look at their message again - that is their time wasted, not mine.
Some problems require a more urgent response so I'll accept a walk-up or a shout for those, and some problems are best illustrated by showing them than describing them, I just have to trust people to know what they are and what is less urgent. And of course a message will come in at a time when I am eminently interruptible, in which case people get an immediate response anyway.
I find it works except for people who insist on not following the process, but they soon learn I'm far more helpful if they don't irritate me!
If people start with "Hi, I have a problem" and don't state what the problem is I close the chat window.
My work IM's status clearly states "if you have a question, ask it, don't ask if you can ask", time wasters simply get ignored.
> Some problems require a more urgent response so I'll accept a walk-up or a shout for those
Absolutely.
In the past I've found that leads to people reporting "I asked him several times over a few hours and got no response" which, if the person being complained to does not know the situation, could look bad for me.
If I feel like being more terse, I just give a one-word response: "Details?".
As I noted, my conditions are clearly spelled out as my IM status text, if they can't bother following simple instructions I can't bother with them.
Actually, it's worse than that. The (average) time it takes to get back into flow is 15 minutes[1], so add the time to respond to them to that to get your wasted time. And if you get another interruption before the fifteen minute descent into flow is complete? Start over - another fifteen minutes. If this happens constantly, you will effectively never get any work done. There's more than one way to kill productivity.
[1] - See "Peopleware", Chapter 10.
Would you send an email that says "Hi", then another that says "I have a question", then another with your question?
"Hi Dude, I've got this thing I need help with. Here is the description of what it is and what I am having a problem with."
It's not an issue if they put it in the same chat message, it's the "Hi", send message, "I have a problem", send message, "This is what the problem is", send message that drives me up a wall.
And if you REALLY need him to get back to let you know if he can help out immediately, you can send a second message along the lines of, "And sorry to be a bother, but I need help pronto. Please let me know if you can take a look at this right now." At that point, it's not a big deal if there's another message, because you haven't wasted time in relaying it.
Stop wasting my time. If sending "Hi" makes you feel better, fine, but the substance had better be on my screen by the time I look at the window, or you've wasted my time.
(FWIW, this is a classic Quality of Service (QoS) algorithm, where traffic on ProjectY is given dedicated bandwidth (2 hours in the day) so that it isn't swamped by traffic from ProjectX.)
What if, while you code, you think out loud, like really out loud... louder than you would talk in conversation? Perhaps if YOU bothered EVERYONE then maybe they'd put you in a private office? It's worth a try while you are looking for other opportunities...
i.e. "LET ME THINK HERE... IF VARIABLE V EQUALS ENUM ACTIVE THEN CALL DOHICKY ELSE DO NOTHING... WAIT IS THAT RIGHT?! NO NO NO LET ME RETHINK THIS?! I BET IF I REFACTOR THIS CODE I CAN..." All day long...if they tell you to be quiet tell them to "shut up" you're trying to think and they are ruining your thought processes and they risk causing you to slow down and/or enter errors and bugs into the code... "what do you mean me talking and noise in general is disturbing to you and your work? How they hell do you think I feel?!?!?" :)
Supposedly since Support is on the phone, they would interrupt everyone (everyone else int he vicinity is sales and they each have private offices) since they talk aloud on the phone. Why's this bad? Because breaking deep thought vs. some noise in the background (which still also exists because of the leakage they have on the phone in a single enclosed room) is much much more unproductive. Worse, the Sales team often forgets to shut their doors so sound leaks out into the open area or between sales calls they congregate a few at a time and have loud conversations disrupting the dev team. Worst of all is if they are in their offices, quietly doing paperwork with their doors open then decide to yell to talk to another salesperson in another office.
I often get up and shut Sales office doors, and constantly have to hush people up. My timid dev team doesn't because, well they are timid and don't want to rock the boat and add friction to inter office relationships. (I can hear, I agree. I need to encourage my dev team to speak up more, perhaps I'm sheltering them too much.)
EDIT: Maybe you'll inadvertently help the next guy. Yeah they might not care much for you but maybe, just maybe, something will click and the folks will realize... yeah I guess disturbing him was stupid on our part. If not and they don't get it... who gives a crap about people that don't give a crap about you!?
Seriously, most of these problems are due to lack of communication, set up a ticketing system, teach people how to use it.
Also, ask if you can work from home since your office environment is bullshit for writing code.
If my whole job was to do tech support all day there would be no problem. Of course it wouldn't be fun and I'd prolly end up leaving, the present situation hasn't been much better and I'm on my way out.
Now that I am leaving soon my boss is very interested for advice on how to attract tech talent. A part of me just wants to send him a link to this thread :)
That's probably the single best thing you could do for him, if he is serious about wanting to attract (and retain!) good technology people.
Been there, done that. The only difference is that they call me on the phone instead of coming up to my desk.
Only thing I miss is my 3 24" monitors.
People do what works. Reinforce their bad behavior, and you have a problem.
edit: Suggest that he ask you if you're busy over skype. Talking face to face is more effective, and I'd hate to try to discuss something over it, but interrupting flow really sucks.
If/when people start getting into your face (perhaps even formally) about performance, you have documentation to back up your argument. (Although, ultimately, most arguments are kind of moot, unless they end up in court or perhaps before an unemployment insurance evaluation -- not something you really want, anyway).
As for the overall experience. While negative, emotionally, you can still view it as a learning experience. Keep in mind that when you are in a better position, with more control, 90 % of the world with which you are competing is / will be what you are now experiencing. So... if you can cut out that bullsh-t, you will have a very significant competitive advantage.
It can be useful, to get a good, hard, close-up look at what you don't want. Just don't let it go on too long.
P.S. A trick I'll occasionally use, in problematic verbal situations, is to summarize the conversation/request in an email to the other party(s). 'We met. Here's what you asked me to do / how I understand it, what I'm going to do, and my anticipated schedule and potential conflicts / other overriding priorities. Let me know if I've misunderstood or you disagree.'
If no one responds, I proceed accordingly. If they bitch, hey, I laid out my approach and circumstances up front and asked for feedback.
It can put people on the defensive and create a negative vibe. But hey, when people tell you / manipulate you with statements of "We're losing confidence", things are not too positive, to start with. (P.S. That's already the sign/signal to bail. "Bail, bail, bail!")
Doing just that :)
It's basically a startup with 10 of us where I am the only in house developer.
I've tried many things like asking folks to Skype me instead of walking over to my desk or calling my name. I've gone to great lengths to get em to understand why skyping to get my attention is different than other ways. None of these guidelines really lasted more than ana few hours.