I have a strange situation at work, where a colleague of mine often asks me and other co-workers for working code.

I would like to help him, but this constant request of trivial snippets interrupts my thoughts and sometimes makes it hard to concentrate.

Plus, I have the impression (...) that this requests are generated by lack of competence, more than by laziness. In fact, he often asks things pretending to know the answer, since when I solve the problem he usually says things like "Sure", "Yes, that's what I thought", giving me the impression that my answer isn't worth it.

How can I solve this embarrassing situation?
Should I show more explicitly in front of other colleagues his lack of knowledge (by saying things like: "do it yourself if you can, please") or continue giving him what he wants?

I think that he should aggregate all his questions in one, so that I can give him a portion of my time and he can work all by himself on his things.

There is no hierarchy in the team, I must say we both have a similar seniority of five years, more or less. For the same reason I believe I cannot report to management, since trivial questions are often ignored.

I discussed with other two members and they agree with me: in fact he often ask things cycling through colleagues.

I had a similar situation but the asker would do a round-robin of other devs "I've got this far, can you help with the next bit"... After sitting him down and having a frank discussion, he admitted he only wanted enough time in the job on his CV to go for a ministerial position in S. Africa... He even asked me for a LinkedIn recommendation when he left the company!
–
BasicMay 15 '14 at 19:48

16 Answers
16

My response would be to say "I'm a little busy right now, can you email me and I'll deal with it later". Chances are some of his questions are legitimate, by forcing him to email you it doesn't interrupt your flow and he is unlikely to bother detailing the problem in an email if its trivial. You then also have a record to show to management if his questions still stay at an unreasonable level.

This answer again proves that often, the best option is telling the truth in a polite way. The asker actually mentioned being interrupted by his colleague, and this (very good, don't get me wrong!) answer basically just tells him: Go ahead and tell your colleague that the interruptions are bothering you. Sometimes, the obvious needs to be pointed out before we can see it.
–
fzwoJan 16 '12 at 16:35

First thing to do is have a frank discussion with the guy in question. Do it one to one instead of in a group or he might feel ganged up on (possibly deservedly so). Ask him why he keeps asking these questions, explain how disruptive this is to your work - see what he has to say.

Depending on what you glean from this conversation, try to see if he can learn by himself. Help him help himself instead of giving him answers. See if pointing him to the right direction would be enough.

If none of the above helps:

You and your colleagues should stop answering his trivial questions.

Answers like:

Sorry, can't help now. I have a deadline.

Why are you asking?

That looks trivial for someone like you.

Basically, if all the team agrees to play along with this, he will have to figure things out by himself.

You say this is being uncooperative - yes, it is. That's the whole point.

You have a team member that is not pulling his weight - he is in fact causing you and your colleagues to be less productive. If he is in a level that these questions are not questions that he should be asking, decline to answer them.

If you feel that this is not a good strategy, you can start an interruptions log. Record every time he asks you a trivial question and how long it took you to get back to your work (that is, into the mindframe you were in before the interruption).

This log will give you an idea of how much time he is costing you. If all of your colleagues do this, you will have a solid idea of how bad the problem is.

What you do with this data is up to you - discuss it with him, explain the issue and try to resolve it or escalate to management.

You would rather have him keep you from being productive? I believe he is being the problem. You are simply now not being the solution any more. You need to read a bit about negative productivity - members of a team that produce it should be cut.
–
Oded♦Jan 13 '12 at 12:32

4

Unfortunately I lost my job following the uncooperative route so I wouldn't recommend it. Then again, I did get a better job someplace else (so it was totally worth it).
–
SpoikeJan 13 '12 at 13:53

There are plenty of competent programmers out there looking for work. If a guy can't cut it, cut him loose and hire somebody competent.
–
Paul TomblinJan 13 '12 at 14:38

8

"He often asked me for help, so I started keeping this elaborate administration about how much time I am losing. Here are the written reports, the questions, the answers, spreadsheets and graphs about how much time the company paid me to do other things than my work". Might give the wrong impression though.
–
KonerakJan 13 '12 at 14:48

A constructive way of approaching this (because you say it feels like this is because of lack of competence), could be as follows:

Try coaching him into the direction of the answer, but try to make him come up with the final answer. This way, he will learn how to come up with trivial things himself, and also he will become more confident about his own competence of coming up with solutions (it might be that he is insecure and needs confirmation of you and/or your colleagues?).

If he asks a similar question multiple times, make it clear that you already explained this, and that he should know this (because in that exact case, you actually KNOW what his knowledge on the matter should be).

As someone who has employed these kinds of people before, let me tell you that becoming aware of this problem is a really good deed. What I wanted my people to do in these circumstances was:

Start saying no. This is difficult because these people are very good at what they do, which is getting other people to help them. Very good. [see note 1]

If you are up for it, have a grownup conversation where you identify the behaviour and say you aren't going to participate any more. This is optional. You don't need to tell a coworker he can't take $20 bills from your wallet at will.

Tell your boss. Lord, I wish people had told me earlier.

You know what will happen if this coworker is fired? This is the shocking thing. NOTHING BAD. If the team was producing x units of work a week before, they will continue to produce x units of work a week afterwards. The time this person is consuming, and the disruption they are causing in your work flow, can really only be noticed afterwards. You will get more done when this behaviour stops. You will be happier, too. And your company will have more money.

note 1: Once I had an employee who was having a bad day in a bad week. A, I said, I need a list of all your outstanding stuff and where it stands before you go home today. I will look it over tonight and we will make a plan tomorrow morning. There was an hour left in the day. After I left A's office (to drive home, we did not work the same hours), in swanned B and bullied A into "helping" with B's project (which was not even important to the company, it was a training project to make B better at a particular tech by adding something to our website) for - you guessed it - one hour. Then A went home. I don't object to that, a hard stop is a hard stop. But wowee was I mad at B the next day. The skill level it takes to get smart people to drop everything for you is not something to underestimate. You can resolve to say no, you can tell your personal B to stop doing this to you, but in my experience, it won't work.

I wish I could tell you how to make the person stop doing it. In my experience you cannot. But you can make them stop doing it to you. Sometimes these people, after being let go from a place they were doing this, end up working somewhere there is no-one to leech from and not liking it there, or working at a job they actually know how to do. But while they have a job they don't know how to do, and the ability to make other people do it for them, that is the strategy they will use.

@MarjanVenema the thing is, if the OP is dealing with that kind of person, it wouldn't have got this far. By the time the OP is chatting amongst coworkers and realizing "hey, this happens to all of us" you can be sure someone has tried simple stuff already, if not the OP then one of the coworkers.
–
Kate GregoryJan 13 '12 at 16:00

2

"Tell your boss. Lord, I wish people had told me earlier" Kate I don't know if you know but you likely can have your cake and eat it, too"...You’ll hear about tension between two employees and moderate a discussion before it becomes a yelling match in a meeting. Your reward for a culture of healthy 1:1s is a distinct lack of drama..."
–
gnatJan 13 '12 at 17:01

3

@gnat thanks, I am big fan of the one on one and was having them. I did hear "I get interrupted a lot" or "I think I spending too much time helping X" but it took a long time to have people actually tell me that X was over the line. The OP here doesn't want to tell the boss either. People are nice, they want to help, they want to be a supportive team player. I get that.
–
Kate GregoryJan 13 '12 at 22:06

If it really is laziness then it shouldn't be your responsibility to backfill his willingness to complete work. If it is a lack of ability then let him cargo cult on his own dime and not yours. You have a professional responsibility to your employer to do your best work and you can't allow others to compromise you. Working cooperatively and helping colleagues is professional and expected behaviour. Letting deadweight keep you from doing your job (without contributing something back) is something you need to avoid and it's what your manager gets the big bucks to fix.

Why even be polite? I have been polite with morons, coat-tail riders, and scam artists for almost 10 years. It is far easier to just confront the person directly, tell them exactly how you feel about this. They might hate you, but so what, you don't want to be seen with people like that anyway. Don't even be nice about it. That is the only way that these people ever learn and they eventually do or they just start exploiting others, not your problem anymore.
–
maple_shaft♦Jan 13 '12 at 12:32

13

"Why even be polite" Because you might very well end up being reported to management yourself.
–
Otto HarjuJan 13 '12 at 12:55

2

@maple_shaft: As harjou said, you have to do it the smart way.
–
Goran JovicJan 13 '12 at 13:04

@harjuo - You don't have to be polite, just not rude. As long as you are professional, I don't see a problem with it. Granted, the person you are confronting may take it poorly and whine about it, perhaps even to management. If you think that there is a possibility of management getting involved, then I would just try to have my ducks in a row and be prepared to give a calm and clear explanation of the situation to management. Management won't have first-hand knowledge to dispute the inaccuracies of this person's account.
–
Dr. Wily's ApprenticeJan 13 '12 at 14:49

Have you considered having an adult conversation with this person? Let them know their constant questions are a productivity killer, and ask why he feels he has to constantly ask you seemingly simple questions. Maybe he is a bit incompetent. You can choose to let him fail, or you can choose to help him succeed.

Ideally, let him know you are wiling to help if he's truly stuck, but that you expect him to give you the respect you deserve and do a little independent research first. Continually giving him answers to simple questions helps no one. Encouraging him to learn and grow helps the whole team.

Yes, it will be an uncomfortable conversation, but it will be less uncomfortable than a few more months of silent resentment.

As a former manager I cannot begin to tell you how much time I spent on a weekly basis as a "grown up" baby sitter. All of the egos, conflicts, insults, and occasional work related issues. Never any problem with code reviews.

I only wish that real work places even began to resemble those in Joel's book(s).

Collectively, sit down in a conference room with all staff that are pestered by this individual. Let this person know that the interruptions are a distraction from your work, and interfere with your ability to work in "the zone".

Inform the manager, if possible.

Ask that all questions be addressed via email to eliminate the work interference and so you can begin to keep a log of both the frequency of interruption and low level of experience demonstrated.

Within a short period of time the group collectively should have either sent a message which put this person off from bothering everyone, or you'll have collected enough email trails to demonstrate to even an inexperienced manager the hiring mistake that was made.

A lesson I learned early as a manager was to hire the best employees I could find, try to see how each person worked within the team and how the team gelled.

Ask him to write his question down so you would be able to answer later when you will be free and speak with your manager to ensure you have quiet working conditions.

Your situation fails The Joel Test's point #8 Do programmers have quiet working conditions?

If a coworker asks you a question, causing a 1 minute interruption, but this knocks you out of the zone badly enough that it takes you half an hour to get productive again, your overall productivity is in serious trouble.

I'd ask him to put all his questions into a big pile, and then sit down and do some pair programming with him during a longer stretch of time.

It does sound like he doesn't know how to program, but that may just be your frustration. Pair programming will teach him how to program (assuming he is teachable, not everyone has the knack of the programz).

the key to determining whether this is the case or not is whether you keep getting the same questions over and over. There are people out there who will ask you how to do something (the same thing) three times a week and never remember and just keep asking. Those kinds of people can't be helped with pair programming.
–
Kate GregoryJan 13 '12 at 15:20

2

Pair prog is a great in this scenario, because he gets help but not for free. By pairing up, it is easy to realize if he is willing to learn or just looking for someone doing his job
–
Peter GfaderJan 21 '12 at 9:08

I know exactly how you feel, i have been in this situation before. It's just role playing and manipulation. It usually happens for many reasons :
- That person doesn't know the answer, is incompetent and doesn't want to come up as incompetent, hence the that's what i thought.
- If that person is asking you dumb question in front of people, and answering them right after, he might try to put you in the incompetent place, or playing games on you (the work place is full of that type of people, trying to climb on top of you).
- That person is lazy and wants you to do his job for him.
- That person is the "by hear" type of guy which means he can reproduce a sample of code but cannot adapt it because he doesn't understand how it works, just where to use it.

The good approach IMO is just to tell that guy, sorry pal, you're on your own now, you're going to have to figure it out yourself this time, I've got things to do. If the problem persists, talk to your manager about it (i know stooling is not the best but hopefully you have a competent manager that has seen snowing before :) )

I would consider most of the answers, even having a conversation with them, an "Escalation" whereas my first response would be something along the lines of offering to pair with them. At this point you have offered help and if they refuse it you can escalate with a clear conscience. If they do pair with you then you can evaluate their actual competence level.

The thing is, if one person writes a library it's completely acceptable to ask them to write code that interfaces with it--at least as a test. There are other examples that are less obviously acceptable but still questionable--like where someone thinks you have already worked through a problem and still might have the resultant code handy.

If they are actually asking you to do their job, it's STILL reasonable to ask to pair, in fact it's a good suggestion if you are stumped and it's a great way to learn.

If they are not interested in pairing then I'd happily go on to any of the other solutions here--in fact depending on their reaction I might skip discussing it with them and go straight to the manager (with not only their request for your help but an indisputable assertion that you offered help and found that what they REALLY wanted was more than just help)

Get him to learn some computer science and help to evolve from brainless scripting; probably he's a kind of person who knows stuff (with proven skills) but has no background.

"You know, that you really can get into more of this stuff, but how about improving yourself over this - now..". Spend some money on amazon to get an good used book (Gang of four, Programming in Haskell,.. Just for fun?) thus add some bookmarks about his recent questions.

If he isn't willing to put in the effort to learn to solve problems by himself after 5 years (instead of asking for a handout from his coworkers), do you really think he's willing to put in the effort to "learn some computer science"?
–
gunit888Jan 13 '12 at 13:59

I would get assistance from management, have a chat about this with them, and then arrange a time to sit down as a group with this developer to deal with the situation.

Alternatively, it is sometimes necessary to be somewhat politic about these things and show the person's behaviour up clearly in front of the rest of the team (and management, if possible), without being rude or confrontational, but by gently questioning why they are doing this. I had to deal with a similar situation, not long ago. In that case, I said to the developer in question, when asked once again for assistance, "If you know what you are doing, as you claim to, then why do you consistently ask questions? And when I answer them, why argue? If you'd like me to help you in future, then just let me do so." The same person was let go by the tech director, a couple of days later (he had been latently aware of problems already).

We were both contractors, FYI, so there was little internal loyalty to either of us, from the TD's point of view. Sometimes, things just need to be brought out into the open.

Since you're on the same team, be a good team player by showing him how to be one, too. Exposing him to management could draw ire from some of your colleagues, and it's karmically bad, in my opinion.
Chances are, management already knows about your colleague, so why step out of line by "showing" them that he was a bad hire?
In the long run, helping this fellow out a little bit now could pay off for you in the long run in ways you might never even imagine.