67

Background

I have a "friend" who is currently employed at a job as a software developer. Unfortunately, this friend of mine isn't at all willing to look for solutions by themselves. They would rather contact me and describe their problem, and have me look into it.

I'm happy to help people out, but the problem with them is that since they have no motivation to learn by themselves, I have to start explaining from the basics, and then tell them about the solution. As you can tell, this is an extremely time consuming affair.

I've tried showing them how to Google for their problems, post questions on Stack Overflow, and refer to the developer documentation. Apparently, my advice has fallen on deaf ears. When they have a new problem and ask for help, and I repeat my advice, they follow up with "what should I Google", "I can't understand section X of the documentation", "can you help me find something better" and so on.

Sometimes they have a problem with the projects they are working on, and they ask for my help. According to them, these are "very small" problems which "shouldn't take up much of [my] time", and suffice to say they're not. Sometimes I'll develop a small demo of the thing they need, and this is followed by criticism such as "X doesn't work", "but this is not how it's implemented on website Y" and so on.

When I try to explain to them that it is just a demo, they offer access to the source code and ask me to look through it and adjust my solution accordingly. When I refuse it for obvious reasons, they keep pestering me with requests to improve upon the demo.

I've also tried refusing to help them by saying "no", but this leads them to start working out on a time on when we can discuss the issue.

Frustrated with the state of things, I've tried blocking them on social media, but when I do they'll usually try to contact me over another channel which cannot be easily blocked, such as through phone calls or voicemail.

Question

How can I get this "friend" to stop this behavior?

Ideally, I would like this person to become self-sufficient in this regard. However, any action that gets them to stop pestering me (I'm okay with them finding another person) is okay too.

I would prefer to resolve this in a way that avoids conflict.

7
  • 9
    Who is this "friend"? A friend of your friend? By the way you put it on the quotes, it seems you are not really friends?
    – Vylix
    Commented Sep 11, 2017 at 8:24
  • 43
    Have you told your friend that what they're doing is likely to get them instantly fired if their boss found out? They don't sound like they have the right attitude to be a developer at any rate, but "offering access to the source-code" will get you fired, sued and probably make you un-hirable if potential employers ever find out.
    – Erik
    Commented Sep 11, 2017 at 8:26
  • Their age (and maybe education) might be important too. Do they just learned to be a developer? Are they self-taught?
    – Vylix
    Commented Sep 11, 2017 at 8:27
  • @Vylix I'm referring them to "friend" because recently in recent times we don't really have interactions outside of talking about software development. (But that is entirely another story, and I don't want to mention any details.) Do you want me to clarify this in the question?
    – user2099
    Commented Sep 11, 2017 at 8:49
  • 5
    I have the feeling that the "other details" you don't want to mention are core to the problem here. Most people would have long since given up on diplomacy and told "friend" where to stick his/her questions! Sounds like you're dealing with someone who knows he/she can get away with asking forever. In which case: you need to be solving the "other details". Commented Sep 12, 2017 at 7:27

14 Answers 14

54

You are in the vicinity of a Help Vampire. The post explains the symptoms much better than me, though I suspect you already know them all too well already.

If you follow the links you will find that the recommended solution is typically to cease your enabling behavior. By helping out with reading documentation, setting up demos and continuously rewarding the help vampire you are making them come back.

Very likely is that this person is suffering from Learned Helplessness, though the possibility also exists that this person is just having you do their work for them. The person simply sees no other way to escape the inability to code other than asking you. If you read up on the very interesting experiments you'll find that you have to show the test subject how to escape this situation - this you have tried and very admirably so but you are failing at enforcing their autonomy. In order to gain confidence in their own decision-making people have to make their own decisions and learn from them.

Over the years I've programmed I have also dealt with people asking for help but I've typically refused anything but giving guiding advice, and very little of it. If you want this person to start learning you have to stop teaching every little basic at every step and leave them to do their own research.

Put together a list of your common suggestions:

  • Google
  • Ask Stackoverflow
  • Read the documentation
  • Find a tutorial

Then simply link it over and over until they follow it or stop pestering you. This way you will give useful suggestions continuously until it gets through or they learn.

3
  • 3
    The links about Help Vampires and Learned Helplessness might also be good to give them. Commented Sep 11, 2017 at 10:04
  • 1
    @StigHemmer I've considered doing that and linking to this thread, but won't it be quite rude and/or passive-aggressive?
    – user2099
    Commented Sep 11, 2017 at 10:17
  • 10
    @user2064000 I think the extreme degree of help vampire behaviour described in the original post warrant such a level of rudeness on your point. After all, their behaviour hasn't been polite either, to put it simply.
    – March Ho
    Commented Sep 11, 2017 at 10:58
55

You shouldn't reward laziness. To learn, they need to debug code they've written.

They're used to you saying yes and they rely on that. If they need help that's fine, but you need to set some boundaries before they take further advantage of your good nature, coding is time-consuming as it is. They need to learn on their own and being spoon fed really isn't going to help anyone. To me, they're currently taking advantage of you.

If he's really your friend, just say something like:

You're not going to learn by me doing stuff for you all the time, I really need to get on with what I'm doing. Come back to me in an hour, if you haven't got anywhere then I'll answer questions, not code solutions.

If they're employed to be a software developer, they need to hit a deadline, so they'll have to learn to solve problems on their own if you won't spoon feed them, anymore. If they aren't that good at software development, it's their own problem, not yours. They shouldn't have got employed if they know their skillset isn't up to scratch. What if they have policies on giving out the code to someone else for help? That could get them fired.

The best way in this scenario is they need to see what it's like without your help (i.e. you coding for them). it's nice of you to help but don't do it for them. Because you want to help them stop the behaviour, blocking them isn't the best option. You can simply ignore them, but then that doesn't become a question of helping them change their behaviour, it becomes a question of how to ignore someone when you've blocked them over social media.


Seeing as you've tried to tell them about the usual suspects (Stack Overflow, documentation, and simple googling). I'd introduce them to rubberducking, they need to go through their code line by line and learn that they need to do that. Reading it back to themselves might help them know where they're going wrong, understand the code better or solve their own problems.

3
  • 11
    rubberducking is one of the best tools out there rubberduckdebugging.com
    – Reed
    Commented Sep 11, 2017 at 13:34
  • 1
    I would add that in some government contract scenarios asking outside people for help is an absolute NO-NO. You could technically use any correspondence asking for help as a written contract due to be paid and set any price you want for the work as the work was requested without having negotiated a price. There are usually strict rules against asking for outside help as specific and detailed as OP is providing. This could get your "friend" fired.
    – leigero
    Commented Sep 11, 2017 at 19:12
  • Like Bradley said and on top of that, ask them to figure out in the question of "what to google", "what is the desired result", tell them to code and only then if something doesn't work, you will help not before. They might say well "I am stuck", tell them to get on and engage the mind. See their level of code and what they think, sometimes we humans are afraid to take a leap without a trusted one but most of time we do well just by getting pushed and pushing the boundaries.
    – localhost
    Commented Sep 12, 2017 at 7:46
24

You are being used and should stop what you are currently doing - start with a "No"

You are being used and you should try to stick to a simple "No". The best way is probably to go with a "I'm sorry, but I don't have the time to help you with your problem. It's costing too much of my time and I've already shown you ways you can try first."

It's important that this person learns that you won't do their work for them anymore. They are used to you delivering them far too much information.

Stick to your "No" - don't go back on it if the person contacts you through a different channel

And you have to stick to your word. Don't go back on it when they call you on your phone. Just because they try a different channel doesn't mean you suddenly have more time to do their work for them, which you really shouldn't do to this extent.

Hang up if they don't stop pestering you until they realize it's not worth the effort

If they still don't stop pestering you should hang up the phone. After a few times they will learn that they can't do this anymore and that it's costing them too much time and effort without the result they were hoping for.

Addendum - your friend should be careful with company property

I won't go into detail about them providing you the source code that is required for their work so that you can work on demos because I am not a lawyer and the following is certainly not legal advice. That might be something for Workplace.SE, but I am sure that this is illegal in most contexts. You should notify your friend that they should stop this behaviour or they will at one point get into a lot of trouble because of this. For example by posting parts of the source code on StackOverflow. They should learn to be careful or it will be a painful lesson when they finally have to learn it.

0
15

The other answers are spot on for dealing with "friends" who take advantage of you like that.

In case you run into a situation where it's a colleague or somebody else you have to work with, here's what helped for me:

  1. Redirect them to email ("Hi Bob... sorry, I'm in the middle of something right now, please send me an email about it.")
  2. Assign a fixed time per day/week/month for answering Bob's emails. E.g. every three days at 9 a.m. you give yourself 20 minutes to try to answer Bob's emails and help. After you're finished (and make sure you don't use more time than you budgeted!) you hit send and return to your other work.
  3. During all other times, redirect to email and ignore any incoming help requests from Bob until you hit a "Bob window" again.
  4. Observe how Bob gets tired of waiting if you're not instantly available and starts to research himself. Or observe how Bob gets fired for being incompetent ;-)
  5. If Bob escalates to your boss and your boss comes to you, you can point to the emails written in step 2 and ask: "Boss, I'm trying to help Bob as best as I can while still getting my other work done. How would you prioritise helping Bob? Is it more important than delivering FancySoftware on Tuesday? If so, I'll allocate more time to helping Bob but that means we can't make the Tuesday deadline. Otherwise I'm afraid he'll just have to wait."
5
  • 3
    This doesn't really relate to the OP. Also, the first step might be to check with your manager how much of your time you should spend helping Bob.
    – stannius
    Commented Sep 11, 2017 at 19:34
  • 3
    Step 0: warn your manager that Bob is taking time from your other projects. Explain the steps that you will be taking. When Bob starts complaining, your manager will be aware of the situation. If Bob makes up stuff about you, your boss will be able to compare against your explanations. Commented Sep 12, 2017 at 8:21
  • "Or observe how Bob gets fired for being incompetent" - how has he avoided it so far?
    – Mawg
    Commented Sep 12, 2017 at 9:18
  • 2
    @Mawg By latching onto other people who help him do his job (see OP)? In my experience: once the helpers stop helping the incompetence becomes more and more obvious Commented Sep 12, 2017 at 9:58
  • 2
    @EnricNaval The timing of "step 0" (or step 5 in my case) depends on the culture at your company. Doing step 0 early may also give the impression that you're unwilling to help out a colleague, "not a team player", etc. pp. Not saying that's right or fair - but I've seen it happen. Commented Sep 12, 2017 at 10:04
12

I have been in the position of asking for more help than I should, although not in programming.

When I first started practicing medicine alone (out of residency), it was incredibly stressful; I had no one looking over my shoulder to make sure I wasn't going to harm someone. On "iffy" cases, I had a hard time deciding the best course.

The best answer I got was from a colleague who told me, do what you think is right, and check with me after. "After" meant after the patient was discharged. I did and he would affirm my decision (or tell me what I did wrong, which was usually minor and fixable. This "relationship" lasted for a few weeks at most. I found my footing. I was forced to rely on my own judgement, which was a great gift.

Within a few years, people were coming to me with hard cases.

You have been kind to this person, but the help needs to either stop now, or take a different course.

If the person is insecure, affirming them when they've made the right decision and helping them to find their mistakes only after they've made them helps to build confidence (unless they never make the right decision.) But make sure there's a limit on the amount of time you'll be a mentor. (e.g. 1 month.) If the person never makes the right decision, they should not continue in that position but should take additional training.

If the person is lazy and only wants help, not to learn, when the time is over - which may be now - ask how long they expect you to do their work for them? It can't be any more rude than blocking them, etc.

8

Teach him how to look, what to look for

I just switched job where they use a framework I had not heard of, with a workflow I was not used at all. Because this framework abstracted a lot of my work, I had little use of my procedural knowledge of PHP and I needed to know how the framework handled this and the terminology.

In the beginning I required a lot of help, but every time I made sure to ask why they did something instead of asking for the solution. Because of that, I had the basics under control faster than they expected me to. This was mainly because they had taught me the terms, the logic behind their choices and the logic behind the why the framework works like this.

When I had a intern I applied the same logic. In the beginning he would ask me a lot (a lot). I explained that it was taking too much of my time. I started telling/guiding him what to look for. Instead of giving him the answers, I told him how to find it, teaching him the proper way of thinking and saving me a lot of time, while still actually helping.

He disliked it in the beginning because he didn't get what he wanted (a direct solution), but after a while he realised he was asking fewer question, which give him a confidence boost, creating a positive loop.

2
  • 3
    +1 This is a great way to handle such a person - IF (and it's a big if) they are actually willing to do their own work. Unfortunately if you've got someone who is truly lazy at heart, pretty much any attempt to get them to think for themselves, do their own research, etc. is going to fail.
    – JVC
    Commented Sep 11, 2017 at 17:09
  • And you've learn that you are just a tool to them, which is another reason not to give them the answers :)
    – Martijn
    Commented Sep 12, 2017 at 7:13
7

It all depends on the outcome of the "friendship" you have with this person. Do you care about breaking it off with them or not? If you care about breaking it off, take the steps below:

The best way of dealing with someone like this, is to:

  • Tell them you will not help

  • Tell them WHY you're telling them that you can not help as in tell them how it affects you when they keep asking

  • Suggest a way forward with clear boundaries - tell him where he can get help instead (sounds like you've already done this, remind him of this) and some boundaries as in: what situations you can help and what situations you can not help.

0
7

I have been such a friend, and my collegues had a simple solution for me: instead of asking a question from the moment I had a problem, they proposed me to write down my question, and only when I had a list of questions, blocking me, I could come and ask them.

The following happened: because of their remark I realised that I needed to investigate more for myself, and sometimes just by continuing the work and stumbling upon next information, I managed answering my own previous questions.

Good luck

7

A simple solution is handing them over a work-contract. Let them pay for the work you do, so for a software developer you should charge between 70 and 140 dollar/euro per hour. If he hands you the source code and expects you to fix it, he's trying to hire an outside developer or consultant. Which means it comes with a price, not for free.

1
  • 4
    Ask for payment in advance, so you don't have to deal with collecting.
    – emory
    Commented Sep 12, 2017 at 10:31
3

Don't give them answers, make them find it themselves.

I suggest instead of providing an answer, or even source code as a solution, ask them questions that lead to them figuring out the answer themselves.

"Please, I need some help of you with this."

"What is your exact problem?"

"I just generally don't know how to do XY."

"Have you tried googling for a way to do it?"

"No, what should I google for?"

"Well, what describes what you need the best and shortest?"

and so on. You don't give a solution, just a direction and they need to work out the answer themselves. If they're really stuck, like not understanding the documentation, you can explain it to them in simpler wording if you have time, but DO NOT give them any solutions. That'd teach them that they can get what they want from you if they just ask hard enough and play dumb.

If that doesn't help, say "No" and stick to it. It doesn't matter where they try to contact you, and if they ask, don't give them the opportunity to argue. No means no, you don't need to justify yourself and your decision is not open for discussion. Make that clear. You help them because you like to, but you're not obliged to do anything for them.

On a side note, them showing you their companys source code (or even offering) could be very well illegal, because they probably signed an NDA or similar. But of course, IANAL

3

As much as he has a problem... you have a problem too, of a different kind.

He has a problem, in that he doesn't want to do his job, and wants someone else (you, in this case) to do it for him.

You have a problem, in that you can't get yourself to say "no" in a situation when it should be said.

By not stopping it, you're enabling his behavior; you're letting him do it. Keep in mind that, the longer this situation lasts, the worse will his reaction be when you finally stop doing his job.

He will have convinced himself that the current state of affairs is normal and expected, and that if you at any time stop doing it... well, he will think that now you aren't doing your job, that you aren't giving him his due, that his failure is your fault, in his mind.

You hope that he will understand in time; but this is not true. As long as nothing blocks his current behavior, he won't understand. You can keep enabling him for 5 or 10 years and he still won't understand.

The only way how he can understand is if all of the following happens:

  1. You (and everyone else) stop doing his job for him.
  2. The situation forces him to do it (as in, he will get fired if he doesn't). Even this is not a guarantee - some people sink so deep that they will rather lose their job than do their job. But maybe by the time he loses other things after losing his job, he will eventually understand he has to work.
  3. Eventually he will learn how to do it, because he is forced to.
  4. And finally, once he learns how, and is doing it, someone else is going to try to get him to do the job of that other person for him, like he is now doing to you. At that time, he will understand.

As for you: stop enabling him. You may lose a friend... except that someone who's using you in this way is not a friend of yours. You may be a friend to him, but he isn't a friend to you. Whether he understands immediately or not, you have to stop. Be polite, don't bitch and call him names, just stop, ignore his communications, and do not ever give in.

Some positive feedback might be in order - if he actually starts doing his part, and genuinely needs just a little bit of help that he could not have googled for himself, if you can unblock him without much effort, do it, as a reward for him doing his part. This is more to reinforce positive behavior than anything else.

1

A strategy I have used is to start asking them questions that will lead them to their solution. Which debugger are you using? How do you know the value of the item_count variable? What code created that file?

If I am pressed into giving and answer, I like to give only the next breadcrumb that they should follow in the direction of a solution.

1
  • 1
    Yeah, but then you're still practically teaching them the basics. The vibe that I'm getting from the question is how to get people to teach themselves, instead of constantly pestering someone else.
    – Zizouz212
    Commented Sep 11, 2017 at 16:29
1

The "friend" remains sure you will "help" them. Any normal words like "Sorry, I'm busy" are heard as invitations to bargain."No" plus silence are your tools.

I've been this person. You are doing them no favors by obeying them.

It doesn't sound as if you are this person's instructor or employer. So, you have your own work to complete by deadline.

I'd Reply to their email and CC in their instructor-boss. "I don't have permission to leave my assigned work. Please ask your supervisor."

1

We might not have enough information to answer your question well. I have been a needy programmer so I do understand the dilemma.

If you are stuck with this person in your life (e.g., brother-in-law, boss's daughter), it's still to your own benefit and SURVIVAL to set a clear boundary. You could say, "I've already given as much time as I can to your questions. I can't give you any more time on these types of problems."

If your boss expects you to solve this person's problems, then to keep your peace of mind, you should set limits AND ask for more compensation. Otherwise you will be frayed around the edges and unable to deliver your best work.

1
  • 2
    No, they are just a friend and we are not in the same organization.
    – user2099
    Commented Sep 12, 2017 at 17:32