Don't ask to ask, just ask
dontasktoask.com
dontasktoask.com
In another post, I make a case for never, ever asking "are you there?" in Slack[0]. It's been popular for my friends who work on remote teams inside of larger non-remote companies.
Both are relevant, both try to encourage us to be respectful of the time and effort others might give us.
https://josh.works/whole-messages-in-slack#you-there-and-oth...
We avoid slack at the place I work for this reason - email, public boards and other async methods work fine for managers and makers.
An hour after that, I got a reply from him: "lol. Anyway I just wanted to let you know that there's a bug in SW version 0.3..."
And I was wondering, why not open with "Hello jbay808, I just wanted to let you know..."? It was a perfectly good asynchronous discussion after that.
If I barged into your office for help and before you'd even made eye contacted started with "hey jbay808 I'm trying to run this database migration but keep getting validation errors..."
and that was the first thing I'd said to you in three days? no good.
Doing this in slack? :chef-kiss:
A senior executive at my company would sometimes ping me with "got a minute?"
And whenever I saw it, I'd always think
> I'm about to get a raise or i'm about to get fired
When it's HR, or someone where the person sending the message is significantly more powerful than the person receiving it should consider that their "ping" might be interpreted as negatively as possible, unless they specifically indicate that everything is fine.
(Turns out the VP was reaching out with some question about how we logged data to a 3rd party tool, not to fire me. :phew:)
This was particularly challenging when a meeting would be scheduled.
> VP: Hey wonder_er, I just put a meeting on your calendar to chat tomorrow
spends 24 hours wondering if I'm going to be fired
turns out the call was to say "good work, here's your annual performance bonus".
We have fun.
OK, this must be it.
FROM CUSTOMERS DELETE *
Ah, you just wanted to ask a question? Oops.
Yes but if someone asks you if you are there, they most likely want an actual conversation. It's the closest you can get to ringing your phone or droping by your office to see if you are available.
If it made sense to have an asynchronous discussion, most people would probably just send you an email.
If the first person responds the real question is typed out to get the help they need.
If it's someone less useful in the domain the next question is usually - hey do you know anything about the email system. Instead of the real question.
I think it's just a conversation style that translates from real-life problem solving.
I'll usually write up my question and post it in a public channel. Then, depending on the situation, I might `@` one (or more) of the people who's insight I'm primarily seeking, but because it's public, others can take a look.
If my primary person doesn't reach out, I'll copy the URL of the message as a DM to the next best person, and ask if they've got advice/thoughts.
Either I or the person who looked into it will add a comment to the thread like "resolved" or "ok, {so-and-so} helped me figure out the problem, which was..."
Working in management, I hated this strategy so much.
1. if i reply and the other person then writes their question right away, a reply from me is expected immediately, as we already in a "conversation" (but I might have other things to do)
2. if i somehow don't see it or see it much later, some potentially important information or question did not get conveyed - and it could take equally long for the person to see my reply and finally write out what they want
At some point I had to turn off slack notifications completely as I couldn't get anything done without getting super distracted by them (to the point that I was feeling phantom vibrations from my phone) and anyone who asked if i was there would hit case 2. I did try to explain to people that this kind of question didn't really make sense but I guess many see slack is a social chat tool like any other where such practices are common - and not a tool to distribute information in a company to the relevant recipients in an informal and instant yet often asynchronous way.
{quick reason}, {urgency_level}
If I received a message like this, even if I were on vacation, I would spend brain cycles determining if I should reply.Trusted coworker who's had some challenging interactions with a manager? I'll interrupt my vacation/being sick to hear/help.
PM wondering why I've not responded to a jira comment from yesterday? I'll just keep on keepin' on with my vacation.
guess what - if somebody asks "are you there?" it's often deliberate power play with the intention to get from you a verbal commitment to be fully available as soon as you answer affirmative.
I'd start with a draft that was like,
"Due to xxx situation, we have political momentum this week and want to take advantage of it by canvassing even harder than usual. Can I ask you to take another shift this week?"
That became,
"Will you take a second canvassing shift this week? Due to xxx situation, we have political momentum this week and want to capitalize on it by doubling our canvassing shifts. Will you commit?"
The second gets better results and is way less irritating to read as a recipient, even though it feels aggressive to write it.
I suppose the former is more likely to be mentally filtered out as spam or marketing before the end of the first sentence (no aspersions upon you or your communication! It's valuable. But it also looks similar to the format of spam or marketing, through no fault of your own)
The first example sounds manipulative and disrespectful.
1. When you front-load the explanation before the thing you're explaining (the request), the reader doesn't make the mental connection, so the explanation doesn't do its job well. It functions similar to a thesis statement in writing.
2. People want you to get to the point. The essential part of the message is that you want them to do something. Burying it under a long preface comes across as wasting their time and lessens their confidence that the request will be a good use of their time.
3. People have short attention spans, and if they don't find something actionable in a message quickly, they'll just say, "This seems like a Big Thing — I'll come back to this later."
I want to add a third one: ask your question in a channel if possible, not as a direct message to someone. DM'ing someone directly puts a lot of unfair pressure on that person, and also denies other people from both helping and learning. I think some people are embarrassed to ask for help in channels, and that's an embarrassment well worth getting over.
That being said, I have worked for some shitty bosses who have told me not to post questions and information in channels directly because they want them “vetted” first. I’ll never work for someone like that ever again.
I probably agree on the second, but I think the first is subject to what the definition of 'better' is. If someone has to give me, say, a bad evaluation of my performance, then the most efficient way for them to do it is to walk up, say "terrible performance" (and possibly list reasons), and leave—but I certainly don't feel, as the recipient of the news, that that is the best way for it to be delivered.
So if we're going to talk about communication efficiency, we need to define what's the goal being optimized here.
If a manager wants to minimize the time spent dealing with one of the engineers and wants to see this engineer quit, then the "cursory explanation" can be considered "efficient".
If this same manager, instead, wants to maximizes the odds the engineer stays and improves her/his weak points, then the "comprehensive" explanation might be a lot more efficient, despite requiring the manager to spend more time at it.
At work, efficiency is polite and predictability is nice.
Watercooler talk excepted, of course, and my company has a couple "watercooler" Slack channels.
"Good morning everyone, would anybody be available to answer a question? I am running into [describe your problem]. Thank you.".
Easy, polite and to the point.
Though we also usually have private team channels and separate support channels for a team in our Slack. I.e. the SRE team might have their own sre-priv channel for team chatter, and an sre-support channel for external support requests, so perhaps that is a function of this format.
You'll often see a new msg in the support chan with something like the following:
> Hey #TEAM, we're seeing an issue with the spline reticulator not reticulating splines. Started last night. Details in :thread:. Thanks!
followed by notes/logs/stack traces as needed. Works quite well, and doesn't choke the channel with endless walls of text.
I am a complete idiot at coding. And one of the biggest barriers to getting good at it is I don't even know how to ask good questions.
Online communities are already toxic places for newcomers. Ask a dumb question on StackOverflow and you get downvoted and griped at. I know I am an idiot! I know I don't understand what I am asking for! This is a cry for help!
>..which is just lazy. If you're not willing to do the work to solve your problem, why should we?
When I ask a vague, dumb plea, I am intentionally trying to weed out the pedantic people who would rather write a blog post about how dumb I am than stop to help me. If they have the time to follow up, they will have the patience to help me. Everyone else should move along.
If everyone has to stop and think of a logical and formalized way to ask a question, no one will bother asking for help. Think of every time you have reached outside of your domain - you would be so much worse off if you spent the entire time researching the right way to ask something than just asking for help.
In fact, I will turn it around. If you are not actually stopping to thoughtfully answer dumb questions, you are not actually teaching anyone anything.
The domain I'm thinking about in my example is tournament organizing. So many questions start off with.
> Can someone help me?
Or
> I have a question.
And want nothing else than a 'sure' or 'yes?' before asking their questions. But why not just ask the question / state the issue that is almost always already thought out as:
> I'm having an issue with registering my team.
Or
> Am I eligible to participate if X?
There was no long and thought out process of "logical and formalized" question forming here. It was just avoiding the waste of time between the asker having a question and getting an answer.
Yes, if only humans could outsource such desiderata to some kind of specialized "engine" that could produce human language sentence given a set of explicit data and instructions.
Would this be the right forum to ask about how to design such an engine? Seriously asking because it doesn't look like anyone here has experience with solving such a novel problem.
We want you to be careful and think when you ask.
We want you to distill the problem you have down to a minimal, reproducible example, so we can easily plug your code into an interpreter or compiler, make it work, and then answer your question.
We also want you to demonstrate that you've made an effort yourself, not by saying "I've really tried," but by demonstrating your efforts with your post.
We're still not guaranteed to recognize your efforts and good faith, but that's because we have the freedom to up- and down-vote posts for just about any reason whatsoever (excluding the posters themselves).
What you seem to want is to do minimal work, and maximize the work required of the person you're seeking help from. If you want to ask for a customized lesson and tutorial, you can ask for that on Reddit, Quora, Yahoo Answers, or many other Q&A sites - but not on Stack Overflow.
> When I ask a vague, dumb plea, I am intentionally trying to weed out the pedantic people who would rather write a blog post about how dumb I am than stop to help me.
What you're really doing is whittling down your audience to only those who have a lot of time on their hands. (There's a lot of overlap between that group and the one you're trying to avoid.)
Here's an example hierarchy of shitty to good questions to drop in IRC:
> I have a question
> I have a programming question
> I have a Go question
> I have a question about interfaces in Go
> How do you implement an interface of a 3rd party package in Go?
Or perhaps if you don't know what you're asking for, maybe something like:
> I'm not quite sure how to ask this, but how can I make my code work with library code? I think I heard something about interfaces?
That's all the article is arguing: get to the point and try to be as specific as possible.
As a beginner you're doing a disservice to yourself by throwing your hands up and declaring you have no idea what's wrong. It may well be the case that you have no clue what's going on, but it's such an important skill as a programmer to learn how to approach the unknown. Collect what information you can, try to build a mental model, and only then try asking a question.
But I don't live in a world where people drop in and ask me enough questions that I feel the need to criticize the quality of question.
"Hey, are you free on Saturday?"
These kinds of questions are what TFA is getting at. These questions are socially awkward and unaware.
Reducing effort to near zero out of spite (or whatever your motivation is) doesn’t feel constructive. Why not make an honest, good-faith attempt insteas to help others help you?
Something like:
“I’m trying to do X. Here’s my attempt but it doesn’t work. I’d expect my code to run successfully but it prints ERROR instead. What does the message mean and how do I fix it?”
goes a long way already.
Bonus points if you minimize your example and make it self-contained. (Note that I didn’t say “spend an afternoon polishing your example.” Just spend a couple of minutes deleting lines of code until you feel it’s small enough to be useful.)
This is a skill that can be learned. Admittedly it's harder to ask good questions when you're very new to something (there's a higher ratio of unknown unknowns to known unknowns), but the point still stands.
As a programmer, you have the good fortune of belonging to a very helpful community. Programmers, some of them highly paid, help each other out online, for free, all the time. If you're going to ask someone with highly valued skills to help you out free of charge, you have a duty to make an effort with the question you ask.
Equally, if you fail to express your question well, you're not likely to get a good answer. Someone answering questions for free, in their own time, gets to pick which questions to answer, and your poorly-expressed question isn't going to make the cut.
> Ask a dumb question on StackOverflow and you get downvoted and griped at.
You're expected to follow the rules and make an effort. Lazy, vague questions, or questions that break the rules, or 'questions' that aren't questions at all, are meant to get downvoted. That's what the downvote feature is for. This shouldn't be a surprise, StackOverflow has rules and guidelines.
That's not to say StackOverflow is perfect. There's some amount of silly pedantry and hostility.
> I know I am an idiot!
Probably not, and anyone saying you are should end up getting downvoted for flagged for being abusive.
> I know I don't understand what I am asking for! This is a cry for help!
But that's not the same thing as asking good questions. There are good and bad ways to ask basic programming questions, just as there are good and bad ways to ask advanced programming questions.
> When I ask a vague, dumb plea, I am intentionally trying to weed out the pedantic people who would rather write a blog post about how dumb I am than stop to help me.
This is counterproductive and, frankly, comes across as rather entitled. You aren't hiring a salaried employee, you're asking strangers to help you out free of charge. You're in no position to 'weed out' anybody. You'll get more and better answers if you ask your question well.
> If everyone has to stop and think of a logical and formalized way to ask a question, no one will bother asking for help.
This is absolutely the wrong mindset for StackOverflow. People submitting StackOverflow questions are expected to make an effort, just like the people who submit answers. The StackOverflow format isn't intended to be conversational and fast-paced. Care and consideration should go into both questions and answers.
Asking questions skillfully works out better for the questioner, who is more likely to get a high quality answer. It's better for the answerers, who can see at a glance if your question is something they can help you with. Lastly, it benefits future users of StackOverflow who are searching for answers to similar problems.
With sloppy questions, you won't get good answers, and you won't help build the site as a searchable repository of knowledge.
> Think of every time you have reached outside of your domain - you would be so much worse off if you spent the entire time researching the right way to ask something than just asking for help.
Outside StackOverflow, sometimes that may be true, such as if you're starting out at a new job and are assigned to another employee to teach you the ropes. On StackOverflow though, it isn't the right mindset at all. On a site like StackOverflow, it's vital to have high quality questions. You aren't having a conversation, you're contributing to a question-and-answer site, so do your part and put the effort in. Answerers enjoy answering good technical questions, but they don't enjoy the process of improving an unclear question.
> In fact, I will turn it around. If you are not actually stopping to thoughtfully answer dumb questions, you are not actually teaching anyone anything.
This confuses questions about basic programming, and poorly expressed questions that frustrate potential answerers. They aren't the same thing at all.
With all that said, good news: asking good questions is a skill, so you just have to learn how, and then make the effort when asking questions. (People who say Just ask good questions! are doing a disservice, there's more to it than just telling people to ask good questions.) There are various articles on asking good questions, the best I know of is the classic by Eric S. Raymond, How To Ask Questions The Smart Way. I'm not the first in this thread to mention it. http://www.catb.org/~esr/faqs/smart-questions.html
You're the one lacking knowledge, the one needing help, the one who can't figure it out themselves.
The experts don't need to be teaching anyone anything. No one owes you anything. And if you demonstrate unwillingness or inability to formulate a proper question then they have every right to ignore you.
https://wiki.nikitavoloboev.xyz/research/asking-questions
Boiling it down to a series of broad steps:
1. Do your own research first.
2. Include things you have tried and thought of before asking the question.
3. Be explicit about what you want to achieve in the end and provide as much information as possible to help.
4. Respect other people's time.
Learned it the hard way.
At least then you're already providing enough info about what you've done so far that you can get a better quality response, or even a response advising to do something totally different.
Most of my posts are a little long-winded as a result, but I'm laying down the breadcrumb trail for someone who might be able to help but see things differently.
Give more background in the next lines
We usually work on challenging problems. It's unreasonable to expect to easily share relevant context when getting help from someone.
I send _extremely_ detailed notes to coworkers all the time. I usually _take_ detailed notes as I work, so it's fairly easy to "package" the note for someone else's consumption.
For a recursive example, this: https://josh.works/better-questions#examples
I've documented how I ask questions and how I ask for help, so I can share it with others... who ask questions... and ask for help. >_<
At least for me (as someone who's more often answering the questions at my company), this varies quite a bit. Certainly sometimes there's a deep technical problem or an issue requiring genuinely tricky troubleshooting, but often it's a new hire who is still getting up to speed and didn't realize that there's some command that they need to run that will solve all of their problems. In a case like that, I worry about an environment where they feel afraid to ask a question unless they've already fought with the problem for a long time, and where they feel obligated to post an extensive write-up of the steps they've already tried. I would call that an "opposite extreme" since they're significantly less productive than they would be if they had been more willing to reach out for help early on. That's my main concern with the article: it has a tone of scolding people for the way that they ask questions, and I worry that it would cause people to be afraid to ask questions even when it would be best for them to do so.
I think the ideal approach is a balance: some initial detail on the problem, but with an understanding that deeper details can come in the follow-up (which might be over chat or over a call or some other medium).
When COVID hit, the grocery store posted a nice multi-paragraph letter on the window to the effect of "This notice is to inform you that due to an executive order signed by Gov. ... wearing a mask while in this store is now required." Took several months, but finally it's replaced by a much better, "No mask, no service" sign using an image of a mask and massive font.
One from my apartment building was an entire letter essentially telling people "security cameras in use".
Get to the point. Use few words and large fonts. Use images. Don't make people think.
Or is it a regulatory thingie, that you "must" have the letter? (genuinely asking - are you in the US)?
Especially because this one claims at the bottom that it was mostly taken from here: http://sol.gfxile.net/dontask.html
So... why not just link to that page? Why register a domain and pretty much copy-paste that content?
I'm not trying to be inflammatory, just trying to understand this concept. Do people share these links with others or is it just for Hacker News credo?
When you haven't talked to a person in a while (or ever), especially someone who is used to being asked for favors, they may become guarded and reticent if you open with small talk out of nowhere. They will sense the other shoe and be preoccupied with predicting when it will drop.
It's better, I'm told, to rip off the bandaid. To say something like, "Hey can I borrow your <tool I don't own>? It would really help me. How are the kids? Did you ever finish that shed you were working on?"
It's much less manipulative and open about what exactly is happening. And it's open-ended. You don't end up sabotaging yourself by interrupting halfway through their story about emergency visits to the orthodontist to ask about that tool, because you only allocated three minutes to pretending to be interested.
There seems to be an attitude that we shouldn't be rude to people, but to be honest, I learned such things at a young age from blunt responses like this. Along with the old response "Can I ask you a question" "You just asked me one". They forced introspection.
Nothing wrong with "Any Java experts around? I haven't updated my Java knowledge since version 5, and am looking for resources to lean from", for example.
Similarly, "Hey John, would you have 15 minutes? I have a question about such-and-such API that you have worked with" is non-problematic, whereas "Hey John, would you have 15 minutes?" by itself is.
If the next thing you say does not depend on the response, say it right way.
In short: when you have something to say, say it.
"How to Ask Questions The Smart Way"
http://www.catb.org/~esr/faqs/smart-questions.html
'Smart Questions' should be required reading when onboarding college hires to technical jobs. I still think about it when writing emails, and it helped me greatly when I was a tester to write better bugs.
I've started doing it intentionally. If I'm stuck on something, I'll start a slack message with no real intention of sending it. Works wonders.
But we don't, and we probably can't. Cultural, language, religious, gender, and educational differences mean that part of any non-trivial discussion is going to involve some sort of "handshake" where you establish the rules of the discussion. And it is going to be a slightly set of rules for any discussion. I've seen sites (and before the web, messages) like this for years. You paste the link and are on your way. Or, more commonly, you paste the link and then proceed to provide the information someone is looking for. This is a variation of the "use the search, this has been covered" fight that every forum has.
Why go through that? If you want to engage with somebody, do it. If not, don't.
These negative feedback loops are great!
Positive feedback loops are ones like "Java sucks. You can't even do $THING_THAT_YOU_KNOW_IT_CAN_DO_BUT_DO_NOT_KNOW_HOW" which need websites.
Anyone who doesn't use it doesn't get a response.
Same thing about "Do you have a minute?" (most of the time in the company's internal chat, but sometimes as well on the phone) => I'm really working most of the time on stuff that might range from bureaucratic things to confcalls in major incidents => mentioning the context&problem would allow me to take an informed decision.
Having said this, I do fall into this trap from time to time :)
In other words-- in what specific way can you fuck up the UI of HN to cause users to become so timid and confused that they create posts asking if it's ok to post here.
Another fun one would be to screw up the UX for replying such that an average of 2% of each thread is filled with veterans telling neophytes not to create top posts but to instead reply underneath the comment they're responding to.
Because it has the potential to be asynchronous.
If I glance through a channel and see a bunch of questions then I can answer them in just the time it takes for me to write an answer. Whereas if I see "Hey can anyone help me?" then I need to ask "Possibly. What's the issue?" and wait for the asker to return, see my message, then formulate their question.
Note that this is assuming a programming chat room. "Asking to ask" makes slightly more sense in a 1-1 DM with someone.
> the norms and etiquettes of conversation pre-exist for a reason
Mostly for face-to-face conversations.
The reason I tend to do this is because sometimes I have problems with figuring out what my issue actually is, and that I might be running into an XY problem. For these reasons I prefer to engage in a synchronous form of communication.
That doesn't mean that I expect someone to commit or that I won't respect the person's boundaries when they refuse to help for whatever reason.
It works both ways. Bad questions too often get answers, but often bad answers. That is, questions often should be met with more questions. But they're not. Many people are wired to want to help - which is great - but too few are wired for critical thinking and analysis.
Edit: Maybe also threaten violence if your question isn't answered.