So as a free software developer, I'm fond that there are users of my projects.

However, from time to time, it happens that some people who are definitely not in the target audience for a piece of software attempt to use it and expect support.

For example, I'm developing a software library (i.e. a re-usable piece of software which can’t be used on its own but is used in applications to achieve something) which achieves X but based on a larger framework/library Y. Sometimes, I get users who want to achieve X but have no idea how to use Y. I try to defer them to use library Z which achieves X without needing Y, which doesn’t always work.

Instead, they start to go through the examples and documentation (which is good), but which aren’t made to be really usable without at least a basic understanding of how Y works. Now they expect me to help them with their issues using Y, not their issues using my project.

I think this is in part because they can’t distinguish problems arising from their lack of knowledge about Y from problems arising from their lack of knowledge about my project (I'm happy to accept and answer questions arising from the latter: because they show that my documentation is insufficient).

Now my question is: How do I defer them to first learn the basics about Y without appearing rude?

What I tried when asked how to do something specific was to reply with:

Anyone with basic understanding of how Y works would be able to infer that from the examples. I can’t teach you how Y works.

I am not sure if that is too rude, and/or if there is a better way. In general, I want to avoid offending my (even prospective) users or to appear to be on a high horse, because I wouldn’t like that myself when trying to use and/or contribute to a project.

  • I think you have come to the rightest place with this question -- I am not in tech and wouldn't understand what you mean here but Interpersonal.SE is full of software engineers who (as a passion) specialise in giving advice how to execute delicate interpersonal moves with tact and finesse @Jonas Wielicki! – English Student Nov 10 '17 at 11:35
  • Is this a free (as in "0$") library? Open Source maybe? If so and it is a "spare-time" project, I guess you don't want to spend too much time on support generally, is that correct? – Fildor Nov 10 '17 at 14:18
  • 1
    @Fildor yes, free as in freedom and as in beer. I do like to spend time on support for people when I get the sense that they need a short kick-off to get a hang of how things work and figure out by themselves how to go from there. I’m not sure how that’s relevant to this question though. – Jonas Schäfer Nov 10 '17 at 14:25
  • 1
    Well, your willingness to give support is crucial to the answer. If you say "it's a spare-time project, it is delivered "as is" - no support available", well then it's this. You say you do enjoy investing some hours in support, then we can suggest different handling of the situation. That was my thought-process behind that question. – Fildor Nov 10 '17 at 14:31
  • 3
    @JonasWielicki Does framework Y have good documentation? If, for example, your library X was built using JQuery, and the issues people were coming to you for were more issues with not understanding JQuery than your actual library, you could politely direct them to JQuery tutorials... but that only works if "Y" has a fairly abundant and accessible library of tutorials or other resources. – Beofett Nov 10 '17 at 21:04

Anyone with a basic grasp on interpersonal skills wouldn't be posting this question.

This title is unequivocally rude. Just to be clear, this is not my real answer, it's the example that proves the point.

You were intending to send your short message to this person, likely with no surrounding context. When you read this title, before you read the rest of the answer, you were in a similar position of having no surrounding context.

In the absence of a further elaboration, the title (and your suggested phrasing) comes across as not just rude, but also hostile.

Your phrasing is the issue.

I understand what you are trying to say. Your statement is objectively correct. You're seeing your words as well-meaning, correct and tersely efficient. But you're not seeing that the other person cannot inherently know that you are not upset with them.

You left no markers to suggest that your reply is well intended (and you're not just annoyed), and it also contains pieces that imply the opposite (that you are indeed annoyed and close to calling them stupid).

Anyone with basic understanding of how Y works

The rest of the reply doesn't even matter, this immediately puts the other person on the defensive. You're reprimanding them for not having a basic understanding of how Y works.

"Anyone" suggests that this person is being unusually ignorant, and that pretty much everyone else is better at it than them.

"Basic" suggests that the problem is hilariously trivial (and implies that it's not worth your time or effort).

would be able to infer that from the examples.

"would be able" is a conditional. In the current context, it is understood as "this should be the case, but apparently not for you". You're not just calling their abilities into question, you're almost explicitly stating that you know that they're unable to understand the examples.

"Infer" is the problem here. Inferences happen privately (and in silence), so you're inherently berating the person for contacting you.

"From the examples" is making a similar claim. It states that the examples are clear and obvious and implies that asking a question is unwarranted (which again labels the person as unusually ignorant).

I can’t teach you how Y works.

What you're trying to say is that you can't teach Y. However, what you're actually saying is that you can't teach this person (about the workings of Y).

Again, this allows for the inference that you're calling the person ignorant, incapable of understanding it even if you were to teach them.

What you told the person:

  • This is a trivial problem.
  • Anyone else would understand this, but you seemingly don't.
  • You should read the examples in silence, instead of asking me questions.
  • Even if I were to teach you, you wouldn't get it.

What you should tell them:

  • My tool cannot solve this particular problem, it only helps with X.
  • To solve the problem when using my tool, you can use Y.
  • Alternatively, you can also use Z instead of my tool, which avoids your current issue and doesn't require Y.
  • The best resource for information on Y is the official Y documentation.
  • The best resource for information on Z is the official Z documentation.

Putting that information in a reply:

My tool does not feature a solution for your current problem. It's only intended to help with X.
In order to fix your problem when using my tool, I would suggest you take a look at Y on their official website. There, you can also find examples on how to fix your current problem.

Alternatively, you can use Z as an alternative to my tool. Z does not have the current problem, so you won't need to work around it using Y. For information on Z, I suggest you take a look at their official website.

I used "your problem" a lot, the repetition is a bit grating. But this is because I don't know what the problem is. You do, when you're writing your reply.
Try to refer to it with a concrete description of the problem, don't just call it "your problem".

Why is my version more polite?

Maybe it helps to compare the differences:

  • I have not called this person's knowledge into question.
  • I haven't implied that anyone else would already know what I'm telling them.
  • I stuck to the facts. You need Y to work around the problem. Whether this person already understands Y or not is irrelevant, they are capable of looking up a tutorial by themselves if they feel they need it. There's no need for me to make a statement about their aptitude.
  • I never suggested teaching them; which means I also never had to explicitly refuse teaching them. You don't want to teach this person, then never mention teaching them. Stick to the facts.
  • I offered Z as an alternative, but I did not explain why I think this person may prefer Z over X+Y. There's no need for me to tell him that I think he's not skilled enough. This person can look at Z and X+Y, and can decide for themselves which route they choose to take.

Think about why this person contacted you. He wasn't asking you to assess his aptitude; he was only asking for your experienced feedback (since you're the developer of your tool).
As it turns out, you can't help with what he's asking, it's simply not part of your tool and it's not your job to teach them other skills.

However, this does not justify calling their lack of these skills into question. The polite thing to do is to refer them to someone/some resources that explains it better than you can.

  • 6
    @Magisch: For the OP specifically, I think the impact of passing eyes is exactly the point. He's intending to send that short message by itself with no surrounding context, and he's not seeing that without any further elaboration, there are many possible inferences about what the OP is implying about the recipient of the message. The rude bolded header drives that point home. I'd rather have the OP understands that first hand (as I've made him the recipient of such a rude message), than avoid an errant downvote or two from people who don't actually go on to read the next line :) – Flater Nov 10 '17 at 10:38
  • 7
    @Magisch: Also, I could argue that it serves the purpose of a clickbaity title to draw in those who vehemently disagree with the title; even though clickbaiting was never my intention :) – Flater Nov 10 '17 at 10:39
  • 17
    My IPS skills must be around 0, since I did not consider the title of this answer rude at all... – Mikhail Nov 10 '17 at 11:10
  • 15
    Thanks, and well played with the heading. It drives the message home indeed ☺. Your breakdown is detailed and helps with understanding how to improve that interaction next time. So I’m thinking along the lines of (since Z isn’t a working alternative in their situation, as mentioned): "This is independent of X; maybe take a look at an Y tutorial here (+link) to solve that step.". Could that still be taken as an offense? – Jonas Schäfer Nov 10 '17 at 11:11
  • 5
    Extremely clear and detailed answer @Flater: you have grasped the essential interpersonal problem here from the (for the layman, bewildering) thicket of software references. Best part: "Anyone with basic understanding of how Y works (...) The rest of the reply doesn't even matter, this immediately puts the other person on the defensive." __ absolutely right; the most innovative answer heading in IPS history; and your solution is also most constructive: I want to give this answer 12 upvotes! – English Student Nov 10 '17 at 11:46

Anyone with basic understanding of how Y works would be able to infer that from the examples. I can’t teach you how Y works.

That's pretty rude. You're basically using a polite way of saying "If you weren't incompetent, you wouldn't be asking this question", which is kinda true in your case, but that's not what you want to bring across and not helpful to the user in any way. You want these users to go for easier alternatives instead.

Instead, you should probably focus on how your new users could benefit more from another framework, like:

I would suggest that you try Z instead, as my library requires a significant amount of understanding of Y to be utilised properly and I am not able to provide a full tutorial on how to use Y in this context

This achieves several things:

  • The focus is on redirecting the user and helping them, instead of telling them why they shouldn't have asked
  • It's not rude or insulting in any way
  • Being shown a path forward, the new user is less likely to keep annoying you

If this is not applicable because the users completely lack context in what they're doing and would be probably unable to use other libraries for the same lack of knowledge, you can take a different but still friendly tone:

I would suggest that you visit a tutorial or acquire some knowledge in Y, since it is required for both my library and similar ones of its type. I'm not in a position to teach you how to use Y since this is not in the scope of my product's support

  • 6
    Ha! I was writing the exact same thing, so I'm upvoting yours instead. I recommend adding: "I am willing to offer personal help for a hourly rate of..." which is a nice way to tell that they shouldn't expect you to work for free... – peufeu Nov 10 '17 at 9:25
  • 1
    As I mentioned, suggesting Z as an alternative doesn’t always work (and didn’t work in this case), for example because they need Y due to another library which depends on Y. (In fact, in this case, they tried Z first and that didn’t work out for them.) – Jonas Schäfer Nov 10 '17 at 9:27
  • @JonasWielicki If you can't come up with an alternative to suggest in their context, saying "I would suggest that you try another library instead" works just as well. This is basicly a kind-ish way to let them know they're in over their head with your product and shouldn't bother you. – Magisch Nov 10 '17 at 9:28
  • 6
    Also if you really want to go the extra mile, you can provide them with some reference links to get them on their way with project Y. I am in support myself and often do this when asked questions that are out of scope of my projects, and it is always well received. If it helps, just have a text file containing the links so you can just copy/paste them each time. – Digitalpeanut Nov 10 '17 at 10:22
  • 1
    @Donglecow 41 If OP gets this a lot, that might save him some time, too. If not, it's a good bit of work, but also a nice gesture. – jpaugh Nov 10 '17 at 17:10

In addition to the other great answers, I'd like to repeat my suggestion from comments:

Encourage to write a (good) question on Stackoverflow.com


  • You may need to answer a support question only once and you can always reference it.
  • Other users may have answers, and thus shifting support effort away from you.
  • It will make your lib known (and understood) better.
  • It is great community which most probably will have some knowledge about "Y". (Thinking is: You won't be the only one telling them "this is about Y, not X" )
  • ^^ Just to name a few.

See also : https://stackoverflow.com/help/product-support

P.S.: I am not affiliated to the site apart from being an enthusiastic user.

  • I thought about that, too, but I appreciate that not everybody has and/or wants an StackExchange account and I don’t want to suggest that it is required to get support in any way. – Jonas Schäfer Nov 10 '17 at 14:53
  • @JonasWielicki Oh, I didn't mean to make it your only support platform. SO discourages that, too (see link). Only as a supplement. – Fildor Nov 10 '17 at 14:56
  • 2
    @JonasWielicki When I first joined, asking questions without an account was perfectly viable (though you don't get the benefits of an account like reputation/etc.). That was eight years ago, so has it changed since then? – JAB Nov 10 '17 at 15:16
  • @JAB I just tried it out. You need to register an account to ask a question. So, I admit it may pose some hurdle to some users. But not more than creating an email account or registering in a discussion board. And I also think it is worth knowing and having an account for anyone who is writing software. – Fildor Nov 10 '17 at 15:23
  • 2
    Honestly, I'm not sure this answer's suggestion is such a good one for Stack Overflow. The kinds of support requests being asked about here are exactly the (or, a) kind Stack Overflow is not meant for: specifically, SO bills itself as being for expert questions, and part of what that means is that the person asking for support has a reasonable level of background knowledge required to use the thing they're asking for help with. So, pointing people to SO may help Jonas (the OP), but it's really just passing off the problem to someone else who is no more interested in handling it. – David Z Nov 11 '17 at 3:59

Many companies discover that no matter how desirable a higher market share is to them, or no matter the incremental revenue, some customers are just not worth the effort. (E.g., consider Netflix and their DVD-by-mail business.)

You can make that choice too. If you do decide to cut the user loose you can still be helpful to him: Remind him that the specifications of your software X require the use of software Y. Suggest that he needs to understand Y better before making progress with X. Even suggest the specific thing (or two) he needs to understand better about Y. Then leave him to it.

Frankly I see this a lot on SO; e.g., a question is asked that not only shows basic confusion about what the user is trying to do, it also shows the user is leaping headlong into an area he knows absolutely nothing about involving lots of complicated foundation stuff he hasn't even begun to understand. The C++ tag is full of this, e.g., "I'm writing in C++ an AI for this MMO I'm developing as a first project to learn programming, but I can't figure out how to add elements to this vector ..." (Followed by a wall of code, of course.)

I don't really mind this because the philosophy of the site - supported by its owners and the current user base - is to help no matter how basic the question, as long as it isn't an obvious "do my homework for me". But in real life, outside of SO, there are stupid questions asked by people who haven't put in sufficient effort and who deserve to be ignored, and there are also basic questions that are asked by people who don't know better right now but when pointed in the correct direction will do fine on their own. Assume your user who is unaware of Y is in the latter group, give him a pointer, and let him proceed on his own.


Consider your work rewarding in that it is helping others.

I am a physicist that is learning c code and other software languages. In the physics world, I can hold my ground. However, in physics, there are times when I can get confused looking at other peoples work and then have the "I got it " moment. This happens a lot in software as there can be many variations of syntax in software. What may be elegant for some can be confusing for others. Consider your work rewarding in that it is helping others. I sometimes teach and when I am asked a question by a student, I want to answer and have the interest and passion for that question as if I have been waiting for that question all day.

  • 1
    I don't see how this addresses the question? – mbrig Nov 13 '17 at 15:52

I think it is important to remember that everyone learns differently, and that what they are doing, is learning the hard way.

You should not discourage them from doing this because learning this way it one of the ways that people actually get to see why something is true, or how something works, rather than just accepting what someone else told you.

That said, you should also be mindful that they are not wasting too much of your time by relying on you to keep pointing them in the right direction, or just by generally taking too much of your time while they keep running into dead ends.

I don't think your approach is overly rude, but it leaves for the possibility that they might perceive that since you cant teach them about how Y works, that you just don't personally know, leaving them to believe that the only way forward is for them to figure out how it works.

I think the best approach is to calmly and politely steer them in the right direction and to help them see why your approach is the right way to do things, rather than expecting them to just trust your judgement.. which ideally they would just trust your judgement. But you unfortunately can't expect that from them.


As some people were born geniuses, some others were born... Unlucky.

I once had this conversation with a really old man about "Are we all born the same or not" and I mean here born with the same capacities.

Clearly we had some geniuses during History : Mozart, Tesla, Einstein, Van Gogh... The list would be long. So this very same old man told me "If some people were clearly born with some facilities, why not some others with disadvantages ?"

What I'm trying to say here, is I think that you need to understand no matter how hard you try, some people cannot. Cannot learn, cannot understand, cannot remember. And yes, I'm using can because I'm referring to the capacities of these persons. It's not they don't want to do this or that ; their brain just won't let them. I know it seems like a lack of effort. But it isn't.

  • 5
    How does this help OP communicate that he does not provide support for Y? Besides, are you sure the people who write OP do so because they are unable to learn? Seems a bit cheap to assume the one cause OP has no control over. – meriton Nov 10 '17 at 14:03
  • 2
    Whether or not what you say is true or applies to the situation doesn’t really matter. I would not see some kind of disadvantage in being able to learn or understand a reason to be rude. – Jonas Schäfer Nov 10 '17 at 14:08
  • 2
    I am researching intelligence and hate how it is viewed in society: Either it is stated that "everyone is equal" (which is nonsense) or people are looked down on, which is disgusting from a moral point of view. I am one of the lucky ones, but I have a friend who is literally mentally disabled in intelligence. From his mindset he basically is a philosopher. He will never publish articles, due to his lack of brain power, but it makes it much sense to look down on him as it makes sense to look down on someone for being short. Awesome guy! – Make42 Nov 10 '17 at 14:12
  • 5
    Regardless of the objective correctness of cognitive differences between different people, making a conclusive statement about someone's (lack of) cognitive skills is rude and arrogant, and completely devoid of interpersonal skills. – Flater Nov 10 '17 at 14:15
  • 5
    @Make42: "Either it is stated that "everyone is equal" (which is nonsense) or people are looked down on, which is disgusting from a moral point of view." Ehm, what about the third option: we acknowledge that we're different but respect each other regardless of our differences? We are not all equal, but we do all have equal rights. – Flater Nov 10 '17 at 14:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.