Is there evidence that the person who wrote this is either impatient with beginners, a techbro, or a jerk? It's a little blunt, but overall it seems like they are trying to be helpful by taking...
Is there evidence that the person who wrote this is either impatient with beginners, a techbro, or a jerk? It's a little blunt, but overall it seems like they are trying to be helpful by taking some time to write it.
It largely isn't helpful, however. The author makes a number of negative assumptions about a person asking questions, none of which are necessarily true: That the person is too ignorant to know...
It largely isn't helpful, however. The author makes a number of negative assumptions about a person asking questions, none of which are necessarily true:
That the person is too ignorant to know what expertise would be necessary to answer their question.
That they're probably asking a common-sense question anyone could answer.
That the potential respondents will understand whether they can competently answer the question or not, and won't jump into trying to answer a question they don't actually understand.
That explaining the question won't take a significant amount of time, and the only reason not to just ask would be out of laziness.
That the question could just as well be worked out by the enquirer, if only they were willing to put in enough work.
That the question is being asked entirely to solve a problem the enquirer has, rather than, say, as part of contributing to a project, and that the enquirer should be grateful for any attention they get.
That the questioner will be familiar with the culture of rudeness common in internet circles like this, and accept it.
I can understand the frustration the author has. Very frequently, these sorts of assumptions are all true, particularly on IRC, and this "any ??? experts around"-type introduction then leads into someone asking a question about how to add two numbers together in Python, or asking if anyone would be willing to do their class assignment for them. But those sorts of people aren't going to read a post like this before asking a question, and they're almost certainly not going to be familiar and comfortable with this sort of brusqueness, so when, as I expect this post was intended to be used, it's posted as a response to them, they'll just be offended. Thus it seems that the post doesn't achieve much other than trying to sound superior and blunt.
Last year I was helping a buddy set up some software and the configs weren't playing nice, so we hopped into the channel. We got it sorted out (no thanks to them), but we thanked them anyways. One...
Last year I was helping a buddy set up some software and the configs weren't playing nice, so we hopped into the channel. We got it sorted out (no thanks to them), but we thanked them anyways.
One of the dudes 'helping' us told us to keep all off-topic discussion in the other off-topic channel.
These dudes were the worst. They were more focused on over-enforcing misunderstood rules than actually helping anybody who came in with a question, no matter how quick the fix was.
I mean, it's just basic politeness. You don't start a conversation with "give me the following information:", you start it with, "hey, do you have a sec?" and if the other is busy, "no problem,...
I mean, it's just basic politeness. You don't start a conversation with "give me the following information:", you start it with, "hey, do you have a sec?" and if the other is busy, "no problem, just had a question about X, maybe I later". It's how human beings communicate. The real issue, if I understand it, is that we're using a chat program for organizing something that would work better in just about anything but chat. Which is a weird thing about the rise of Slack. Everything's a chat message, inviting casual conversation etiquette where it doesn't really make sense.
I don't understand what's polite about making me waste time by finding out whether I can or can not help you. Even in casual chats I find this extremely annoying. I don't know if I can answer your...
I don't understand what's polite about making me waste time by finding out whether I can or can not help you. Even in casual chats I find this extremely annoying. I don't know if I can answer your question unless you tell me what is it that you want from me, and I also don't even know how much time it will take - maybe I can answer you in one sentence and I do have time for that, or maybe it's gonna take a whole hour and I don't have time for that, so the initial question is meaningless and just wastes everybody's time. You can still include it in the beginning of the message, just don't make it the whole message: "Hey, can you help me with something? I'm trying to do X and I can't figure out why Y doesn't work" is both polite and to the point, why not use that?
It doesn't work though. I don't feel nice when the conversation is over, I feel frustrated before the conversation even began. Is it "how nice everyone feels" or "how nice the asker wants...
how nice everyone feels after the conversation is over
It doesn't work though. I don't feel nice when the conversation is over, I feel frustrated before the conversation even began. Is it "how nice everyone feels" or "how nice the asker wants themselves to feel for being nice"?
Anyways, like I said: you can be polite and respectful of other's time, it's a win-win.
It's a balance. Every had a conversation with someone who is very well intentioned but trying way to hard to be polite and avoid offending everyone? It's exhausting. At the other end of the...
"how nice everyone feels after the conversation is over"
It's a balance. Every had a conversation with someone who is very well intentioned but trying way to hard to be polite and avoid offending everyone? It's exhausting. At the other end of the spectrum are people who don't see any point in "meaningless" conversation, try to optimize, and usually regaurded as blunt and inconsiderate.
Somewhere between the two is usually what's appropriate. And that also changes depending on your relationship and familiarity with the person you're talking to, and what you're talking about. And that's the really hard part.
It is a way to get a feel for the time of the other person before you phrase the question. With a response of “I only have a minute, but I can try”, you can phrase it with just the essential parts...
It is a way to get a feel for the time of the other person before you phrase the question. With a response of “I only have a minute, but I can try”, you can phrase it with just the essential parts of the question. With a response of “I have a few minutes, what’s up?” you can explain more of the issue and find a better solution. With a response of “I am not busy, I can help out” you can possibly include backstory into how the issue occurred and how to prevent it repeating in the future. It is perfect for a case where one party has no time issue and the other is very busy. It allows the question and intentions to be modified to fit in with the other person’s workload. It also allows the receiver, who may be the best person to solve the issue but have little time available, to redirect the questioner to another person who may not provide as good of a solution, but may have more time available.
I would agree that you should include a subject so the askee has some idea what to expect.
Also, I speak only from an office environment. I have not frequented help IRCs.
Politeness is a socially constructed behavioural middle ground. Unless you have previously established your communication preferences or somehow disclaimed them ahead of time, you can't expect...
Politeness is a socially constructed behavioural middle ground. Unless you have previously established your communication preferences or somehow disclaimed them ahead of time, you can't expect someone to know that inherently.
Checking to see if anyone is interested in hearing more before unloading all the details of your issue is polite. The level politeness doesn't change between "Can you help me with something?" and "Can you help me with why I can't do X by trying Y?", the quality of the query does.
Compare with email. You don't usually write an email to ask, "can I write a write you an email?" Many people would prefer that at least the first message of a chat conversation start with...
Compare with email. You don't usually write an email to ask, "can I write a write you an email?" Many people would prefer that at least the first message of a chat conversation start with something more like an email than like a phone call.
Yea, I mean, IRC is chat, in its purest form. You're not supposed to write more than a short sentence at a time and people likely discuss the latest Westworld episode a few lines above. How's that...
Yea, I mean, IRC is chat, in its purest form. You're not supposed to write more than a short sentence at a time and people likely discuss the latest Westworld episode a few lines above. How's that an environment for to-the-point efficiency? It just invites casual conversation etiquette.
Email is a digital letter.
PS: This is exactly why I miss forums. I see some sites replace their forums with Twitter and a Discord channel and that's just awful.
One of the most annoying forms of this: a DM from a co-worker on whatever flavor of internal messaging service you have. And then waiting for my reply before telling me wtf it was you wanted to...
One of the most annoying forms of this: a DM from a co-worker on whatever flavor of internal messaging service you have.
Hey you busy?
Got a minute?
Can I ask you a question?
Can you help me?
And then waiting for my reply before telling me wtf it was you wanted to actually ask me. All of these messages are implying they need real-time responses and an actual conversation. If it's that important to have a conversation in real-time either walk your ass over to me, or call me. Otherwise, use the async communication method the way it's designed to be used.
Is chat supposed to be asynchronous, though? I've always had the impression that internet chat is supposed to be quick real-time communication. That's why the reply fields are a single line....
Otherwise, use the async communication method the way it's designed to be used.
Is chat supposed to be asynchronous, though? I've always had the impression that internet chat is supposed to be quick real-time communication. That's why the reply fields are a single line. That's why someone's response shows up immediately. It's supposed to be quick and chatty.
If someone has a non-time-critical question to ask, they should use a non-time-critical channel, such as email.
Above this, though, I've never understood why companies have a chat platform for people working in the same physical space. As you say, if someone's in the same office as you, it's better to talk face-to-face than chat online.
I would much prefer a chat message to someone walking up to my desk. A chat message I can choose to prioritize when it doesn't break my work flow. A person standing next to me is an immediate...
Above this, though, I've never understood why companies have a chat platform for people working in the same physical space. As you say, if someone's in the same office as you, it's better to talk face-to-face than chat online.
I would much prefer a chat message to someone walking up to my desk. A chat message I can choose to prioritize when it doesn't break my work flow. A person standing next to me is an immediate break in flow.
I know that I hold an unpopular opinion about this: I always encourage my fellow developers to stop focusing on trying to prioritize keeping their "flow". If someone from your team needs help or...
A person standing next to me is an immediate break in flow.
I know that I hold an unpopular opinion about this: I always encourage my fellow developers to stop focusing on trying to prioritize keeping their "flow". If someone from your team needs help or information, there's already a number of social barriers that naturally make people hesitate to interrupt other people. I don't want "interrupting flow" to be another. And I've seen developers use "but mah flow!" to avoid interactions to a point of being detrimental to the team.
As for people outside my team, you should generally kick rocks and go talk to my PM.
This is going to sound harsh, but do you do any coding that's difficult? If I'm in the middle of thinking through a problem that's complex, and I get distracted, then frequently that "work"...
I always encourage my fellow developers to stop focusing on trying to prioritize keeping their "flow".
This is going to sound harsh, but do you do any coding that's difficult? If I'm in the middle of thinking through a problem that's complex, and I get distracted, then frequently that "work" (sitting there thinking is surely the hardest part of the work I do) is often gone or at least extended significantly. Add in the fact that I have at least 6 projects that I'm managing at any given time, and "flow" (or "cognitive load") becomes really important. When I've got my brain really dialled in to a 200K line relatively complex project doing Data Analysis, and someone keeps beeping me asking me basic WordPress stuff, it isn't good for the complex project.
I have "office hours" where devs are encouraged to message me at those times because I won't be doing any "heavy lifting" projects, and I have times where I won't be interrupted (if we were still in the office, I'd have my door closed; at this time, I have "do not disturb" in Slack), and I have times where people can drop me a note in Slack and I'll get back to it as it is convenient for me.
It's important to remove roadblocks for other people as much as possible and I rarely set myself to "do not disturb". I think that the right way to do things is necessarily somewhere in the middle for a senior developer - worry about your "flow" or your cognitive load sometimes, worry about removing roadblocks at other times, and label yourself appropriately so people know to approach you or not.
I'd like to think so ;) I think that's a very sensible and pragmatic approach. To be clear, I don't advocate for just throwing the idea of flow out the window. However it's been a point of...
do you do any coding that's difficult?
I'd like to think so ;)
I think that the right way to do things is necessarily somewhere in the middle for a senior developer - worry about your "flow" or your cognitive load sometimes, worry about removing roadblocks at other times, and label yourself appropriately so people know to approach you or not.
I think that's a very sensible and pragmatic approach. To be clear, I don't advocate for just throwing the idea of flow out the window. However it's been a point of contention I've had to deal with at times. It comes from repeatedly encountering lone-wolf style developers who want to just code by themselves and other people can deal with the consequences of their changes. They are usually the ones complaining about their "flow" being interrupted. When in fact if they where more accommodating to some interruptions, that would open up the opportunities for better communication.
I think we're on the same page. I wasn't trying to be harsh, but I was trying to suss out what sort of things you were doing. I'm not super put out if someone "interrupts my flow" for things that...
I'd like to think so ;)
I think we're on the same page. I wasn't trying to be harsh, but I was trying to suss out what sort of things you were doing. I'm not super put out if someone "interrupts my flow" for things that aren't cognitively expensive. But a lot of the tasks that I do day to day have a heavy load; large projects with far-reaching consequences, and I'm the one integrating the work of a team. When I'm doing that, it's like trying to do laundry without a basket; I can do it, but if someone throws something at me, I'm going to drop everything. That's why I find it important to maintain my "flow" (I keep putting quotes around it because I don't like it).
I do a lot of things to try to introduce a "laundry basket" so that the load is easier to manage - I take a lot of notes, and I try to keep my mind agile even at my very advanced age - 40, my team points out to me that I am old frequently as the average age without me is about 27 - and we use a lot of project management software to make sure that we don't lose details. But that uninterrupted time without people throwing things at me is still very important, and I think it's important for most developers.
I certainly agree with you about lone-wolf style developers and how that's bad, but I think that's different from people who are legitimately concerned about their cognitive loads. I think the time is coming a close for lone-wolf "superstars" who aren't really stars at all, but huge burdens on any team that they are in.
Greetings, fellow senior citizen. I like this as an analogy, and as a tactic. This is what I try to relate to newer developers who complain about being interrupted. Basically, there will always be...
even at my very advanced age - 40
Greetings, fellow senior citizen.
I do a lot of things to try to introduce a "laundry basket" so that the load is easier to manage
I like this as an analogy, and as a tactic. This is what I try to relate to newer developers who complain about being interrupted. Basically, there will always be interruptions, so plan for them. In your analogy, build laundry baskets. Take notes, make plans and write them down, revisit those plans regularly with your team.
I come from a background that swings heavily toward pair-programming. One of it's distinct advantages IMO is that when done well is basically impervious to interruptions. If 2 people get interrupted, do something else, then come back even a few hours later, picking up our trains of thought is way easier than if I'm by myself.
I think the time is coming a close for lone-wolf "superstars" who aren't really stars at all, but huge burdens on any team that they are in.
I hope so too. Or at least, that companies recognize them for their specific skills and needs. A "rockstar" working on a fast prototype is great. A "rockstar" that needs to operate as part of a larger team, bringing people along, is usually not great.
It's a hybrid IMO. Email is explicitly async, a voice call is explicitly sync, but a msg/txt can be either. For instance, I often will ignore slack notifications for awhile to focus on something...
It's a hybrid IMO. Email is explicitly async, a voice call is explicitly sync, but a msg/txt can be either.
For instance, I often will ignore slack notifications for awhile to focus on something or to take a break. When I come back I'll reply to them. Fairly often the other person will respond in real time, and if there's further discussion to be had we can continue in real time. If either of us needs to break and go to a meeting or something we then tell the other and excuse ourselves just like a voice conversation.
Unless you are already talking with someone, yes, chat should be considered async. It's the equivalent of shooting someone an SMS or leaving a message in voicemail: it's not something that they...
Unless you are already talking with someone, yes, chat should be considered async. It's the equivalent of shooting someone an SMS or leaving a message in voicemail: it's not something that they would miss by not being online - like a phone/video call - but something that people can get around to addressing as soon as they have some time.
As you say, if someone's in the same office as you, it's better to talk face-to-face than chat online.
But people who work together do not necessarily work in an office, or in the same office as you, or even on the same floor/in the same building. Talking with someone face-to-face often requires you to find them first - which is not trivial - and reach them, and they could be in a meeting or otherwise busy in that instant.
People use this language because they know very well that failing to do so will not get them good responses in the majority of the cases. Outside the world of IT you’re usually expected to check...
People use this language because they know very well that failing to do so will not get them good responses in the majority of the cases. Outside the world of IT you’re usually expected to check on the emotional state and availability of the interlocutor before posing a question or saying anything of consequence. It’s a required form of persuasion. This may only happen once a day, so you’re allowed to be more direct afterwards.
I think many comments here are extending a point being made specifically about IRC to interactions more generally. Different cultures have different expectations around communication, and...
I think many comments here are extending a point being made specifically about IRC to interactions more generally.
Different cultures have different expectations around communication, and frustratingly, people in each culture often feel that their conventions are the only correct ones.
Asking to ask can make sense when asking the questions is, itself, expensive, or where there are potentially obligations of some nature surrounding asking and answering questions.
For example, in scholarly settings, there is often neither an outright responsibility to answer questions, as there might be in a corporate setting, or a complete lack of obligation, as there might be in an online development setting. There's generally a social and scholarly expectation that we'll help other researchers, but we may or may not have the time or the expertise: asking directly for assistance might not provide the opportunity for the person to politely decline, or refer to someone else, with them instead feeling obligated to help. At the same time, even explaining what the specific questions are might be a very time-consuming process, and the way the questions need to be explained might need to be tailored to the specific background of the person you are asking: simply asking the questions would take a large amount of time, which would be wasted if the person being asked couldn't respond.
So, as an example, I received an email a few days ago that I feel went about this the right way. The person wanted to ask me some questions about some experimental techniques that they know I have experience in, whether they would work for their project, and whether I could help them apply the techniques. So they wrote a few sentences about the general style of experiment they were working on, asked two quick questions about general feasibility, and then asked whether I would have time to discuss the technique with them in detail. This seemed ideal: it didn't obligate me, or take a huge amount of time to write or read, but it also gave me just enough context to understand the general nature of they wanted to ask me, think about whether I wanted to help, and know whether I was the best person to do so.
I think that asking to ask a question can, at times, also be useful in programming settings, particularly when you are not sure of your audience or when the question is sufficiently technical. I can recall a time, many years ago, when I thought I was asking a question in a space for development discussions, but which had gradually turned into more a place for technical support. So rather than asking whether I was in the right place to discuss fixing hardware bugs, I immediately launched into a technical question regarding how to approach properly solving a serious bug affecting a few laptop models, as current workarounds had specific and severe shortcomings. Numerous people, recognizing the bug and not reading the rest of my question, immediately responded with mild admonishment that I didn't search for a solution before asking for help, and then explained how to fix the problem I was having by patching the kernel... with a CPU-crippling temporary workaround I had written. Had I more clearly asked, first, about whether I was in the right place to discuss developing a fix for a bug, rather than asking for technical support or a solution, I could have been directed elsewhere, instead of wasting my time, and the time of everyone who tried to answer the question without understanding it. (I did at least learn that the distribution was filled with people who were being extremely irresponsible about what they recommended to users...)
On the other hand, in civic- and business-oriented matters, and a completely separate culture, I am continually frustrated by voicemails and texts I get asking me to call people back, as they want to ask me something, without giving any information, at all, as to what they want to ask. I don't know how urgent or important the matters are. I don't know how much time the return call will take, how much privacy I might need for it, how much preparation or what documents I might need, and so on. It is infuriating, and at the same time, I also know that I can't just demand everyone change their communication styles.
These observations are valid because it’s understandable for people to transfer behavior back and forth internet and “real” life. The author fails to take that into account. With all due respect,...
I think many comments here are extending a point being made specifically about IRC to interactions more generally.
These observations are valid because it’s understandable for people to transfer behavior back and forth internet and “real” life. The author fails to take that into account.
With all due respect, but programmers are usually not very fond of humanities (no criticism here, this is not their jobs), and are also extremely susceptible to the Dunning-Kruger effect.
Some things must not be “algorithmicized”. Their attempts to educate the public on how to conduct social interactions frequently arrive at similar misconceptions and blind spots — sometimes with very obnoxious rhetoric.
I believe the real key here is to understand that human diversity is a wonderful, but often challenging thing. The way I prefer to communicate is probably not the exact same as any other human on...
I believe the real key here is to understand that human diversity is a wonderful, but often challenging thing.
The way I prefer to communicate is probably not the exact same as any other human on the planet. The way that you and @pallas seem to wish to communicate is clearly not quite the same.
One other thing that I'd like to point out here, is that often times people who are asking questions are the very people who lack the lexicon specific to the skill they need help with. They may not be able to compose a very distinct message of what they need as they cannot accurately describe it. Combine that with the frustration that often comes with a tool not working as desired or expected and you may find someone who is more emotional than verbal. They may want to show you rather than tell you.
I’m actually quite objective on technical online spaces and tend to follow all the usual recommendations for IT people. But I’m also very tolerant with those that communicate in a different...
I’m actually quite objective on technical online spaces and tend to follow all the usual recommendations for IT people. But I’m also very tolerant with those that communicate in a different manner.
And I agree with you that the ability to talk about these things is not innate and we must take that into account.
Many assume laziness where there may be genuine ignorance and desire to learn.
It's not necessary to explain the whole thing you need help with, but it's just simple courtesy to give the person(s) you're asking a heads up of what the topic is so they can accurately answer....
It's not necessary to explain the whole thing you need help with, but it's just simple courtesy to give the person(s) you're asking a heads up of what the topic is so they can accurately answer. Someone may be too busy to help with a big request but if it's something smaller they will know they have time to respond.
Is there evidence that the person who wrote this is either impatient with beginners, a techbro, or a jerk? It's a little blunt, but overall it seems like they are trying to be helpful by taking some time to write it.
It largely isn't helpful, however. The author makes a number of negative assumptions about a person asking questions, none of which are necessarily true:
I can understand the frustration the author has. Very frequently, these sorts of assumptions are all true, particularly on IRC, and this "any ??? experts around"-type introduction then leads into someone asking a question about how to add two numbers together in Python, or asking if anyone would be willing to do their class assignment for them. But those sorts of people aren't going to read a post like this before asking a question, and they're almost certainly not going to be familiar and comfortable with this sort of brusqueness, so when, as I expect this post was intended to be used, it's posted as a response to them, they'll just be offended. Thus it seems that the post doesn't achieve much other than trying to sound superior and blunt.
You are right that it could be written much better. Hopefully someone will do that.
Last year I was helping a buddy set up some software and the configs weren't playing nice, so we hopped into the channel. We got it sorted out (no thanks to them), but we thanked them anyways.
One of the dudes 'helping' us told us to keep all off-topic discussion in the other off-topic channel.
These dudes were the worst. They were more focused on over-enforcing misunderstood rules than actually helping anybody who came in with a question, no matter how quick the fix was.
I could not say it better myself.
I mean, it's just basic politeness. You don't start a conversation with "give me the following information:", you start it with, "hey, do you have a sec?" and if the other is busy, "no problem, just had a question about X, maybe I later". It's how human beings communicate. The real issue, if I understand it, is that we're using a chat program for organizing something that would work better in just about anything but chat. Which is a weird thing about the rise of Slack. Everything's a chat message, inviting casual conversation etiquette where it doesn't really make sense.
I don't understand what's polite about making me waste time by finding out whether I can or can not help you. Even in casual chats I find this extremely annoying. I don't know if I can answer your question unless you tell me what is it that you want from me, and I also don't even know how much time it will take - maybe I can answer you in one sentence and I do have time for that, or maybe it's gonna take a whole hour and I don't have time for that, so the initial question is meaningless and just wastes everybody's time. You can still include it in the beginning of the message, just don't make it the whole message: "Hey, can you help me with something? I'm trying to do X and I can't figure out why Y doesn't work" is both polite and to the point, why not use that?
It doesn't work though. I don't feel nice when the conversation is over, I feel frustrated before the conversation even began. Is it "how nice everyone feels" or "how nice the asker wants themselves to feel for being nice"?
Anyways, like I said: you can be polite and respectful of other's time, it's a win-win.
It's a balance. Every had a conversation with someone who is very well intentioned but trying way to hard to be polite and avoid offending everyone? It's exhausting. At the other end of the spectrum are people who don't see any point in "meaningless" conversation, try to optimize, and usually regaurded as blunt and inconsiderate.
Somewhere between the two is usually what's appropriate. And that also changes depending on your relationship and familiarity with the person you're talking to, and what you're talking about. And that's the really hard part.
It is a way to get a feel for the time of the other person before you phrase the question. With a response of “I only have a minute, but I can try”, you can phrase it with just the essential parts of the question. With a response of “I have a few minutes, what’s up?” you can explain more of the issue and find a better solution. With a response of “I am not busy, I can help out” you can possibly include backstory into how the issue occurred and how to prevent it repeating in the future. It is perfect for a case where one party has no time issue and the other is very busy. It allows the question and intentions to be modified to fit in with the other person’s workload. It also allows the receiver, who may be the best person to solve the issue but have little time available, to redirect the questioner to another person who may not provide as good of a solution, but may have more time available.
I would agree that you should include a subject so the askee has some idea what to expect.
Also, I speak only from an office environment. I have not frequented help IRCs.
Politeness is a socially constructed behavioural middle ground. Unless you have previously established your communication preferences or somehow disclaimed them ahead of time, you can't expect someone to know that inherently.
Checking to see if anyone is interested in hearing more before unloading all the details of your issue is polite. The level politeness doesn't change between "Can you help me with something?" and "Can you help me with why I can't do X by trying Y?", the quality of the query does.
Compare with email. You don't usually write an email to ask, "can I write a write you an email?" Many people would prefer that at least the first message of a chat conversation start with something more like an email than like a phone call.
Perhaps calling it "chat" was a bad move.
Yea, I mean, IRC is chat, in its purest form. You're not supposed to write more than a short sentence at a time and people likely discuss the latest Westworld episode a few lines above. How's that an environment for to-the-point efficiency? It just invites casual conversation etiquette.
Email is a digital letter.
PS: This is exactly why I miss forums. I see some sites replace their forums with Twitter and a Discord channel and that's just awful.
One of the most annoying forms of this: a DM from a co-worker on whatever flavor of internal messaging service you have.
And then waiting for my reply before telling me wtf it was you wanted to actually ask me. All of these messages are implying they need real-time responses and an actual conversation. If it's that important to have a conversation in real-time either walk your ass over to me, or call me. Otherwise, use the async communication method the way it's designed to be used.
Is chat supposed to be asynchronous, though? I've always had the impression that internet chat is supposed to be quick real-time communication. That's why the reply fields are a single line. That's why someone's response shows up immediately. It's supposed to be quick and chatty.
If someone has a non-time-critical question to ask, they should use a non-time-critical channel, such as email.
Above this, though, I've never understood why companies have a chat platform for people working in the same physical space. As you say, if someone's in the same office as you, it's better to talk face-to-face than chat online.
I would much prefer a chat message to someone walking up to my desk. A chat message I can choose to prioritize when it doesn't break my work flow. A person standing next to me is an immediate break in flow.
I know that I hold an unpopular opinion about this: I always encourage my fellow developers to stop focusing on trying to prioritize keeping their "flow". If someone from your team needs help or information, there's already a number of social barriers that naturally make people hesitate to interrupt other people. I don't want "interrupting flow" to be another. And I've seen developers use "but mah flow!" to avoid interactions to a point of being detrimental to the team.
As for people outside my team, you should generally kick rocks and go talk to my PM.
This is going to sound harsh, but do you do any coding that's difficult? If I'm in the middle of thinking through a problem that's complex, and I get distracted, then frequently that "work" (sitting there thinking is surely the hardest part of the work I do) is often gone or at least extended significantly. Add in the fact that I have at least 6 projects that I'm managing at any given time, and "flow" (or "cognitive load") becomes really important. When I've got my brain really dialled in to a 200K line relatively complex project doing Data Analysis, and someone keeps beeping me asking me basic WordPress stuff, it isn't good for the complex project.
I have "office hours" where devs are encouraged to message me at those times because I won't be doing any "heavy lifting" projects, and I have times where I won't be interrupted (if we were still in the office, I'd have my door closed; at this time, I have "do not disturb" in Slack), and I have times where people can drop me a note in Slack and I'll get back to it as it is convenient for me.
It's important to remove roadblocks for other people as much as possible and I rarely set myself to "do not disturb". I think that the right way to do things is necessarily somewhere in the middle for a senior developer - worry about your "flow" or your cognitive load sometimes, worry about removing roadblocks at other times, and label yourself appropriately so people know to approach you or not.
I'd like to think so ;)
I think that's a very sensible and pragmatic approach. To be clear, I don't advocate for just throwing the idea of flow out the window. However it's been a point of contention I've had to deal with at times. It comes from repeatedly encountering lone-wolf style developers who want to just code by themselves and other people can deal with the consequences of their changes. They are usually the ones complaining about their "flow" being interrupted. When in fact if they where more accommodating to some interruptions, that would open up the opportunities for better communication.
I think we're on the same page. I wasn't trying to be harsh, but I was trying to suss out what sort of things you were doing. I'm not super put out if someone "interrupts my flow" for things that aren't cognitively expensive. But a lot of the tasks that I do day to day have a heavy load; large projects with far-reaching consequences, and I'm the one integrating the work of a team. When I'm doing that, it's like trying to do laundry without a basket; I can do it, but if someone throws something at me, I'm going to drop everything. That's why I find it important to maintain my "flow" (I keep putting quotes around it because I don't like it).
I do a lot of things to try to introduce a "laundry basket" so that the load is easier to manage - I take a lot of notes, and I try to keep my mind agile even at my very advanced age - 40, my team points out to me that I am old frequently as the average age without me is about 27 - and we use a lot of project management software to make sure that we don't lose details. But that uninterrupted time without people throwing things at me is still very important, and I think it's important for most developers.
I certainly agree with you about lone-wolf style developers and how that's bad, but I think that's different from people who are legitimately concerned about their cognitive loads. I think the time is coming a close for lone-wolf "superstars" who aren't really stars at all, but huge burdens on any team that they are in.
Greetings, fellow senior citizen.
I like this as an analogy, and as a tactic. This is what I try to relate to newer developers who complain about being interrupted. Basically, there will always be interruptions, so plan for them. In your analogy, build laundry baskets. Take notes, make plans and write them down, revisit those plans regularly with your team.
I come from a background that swings heavily toward pair-programming. One of it's distinct advantages IMO is that when done well is basically impervious to interruptions. If 2 people get interrupted, do something else, then come back even a few hours later, picking up our trains of thought is way easier than if I'm by myself.
I hope so too. Or at least, that companies recognize them for their specific skills and needs. A "rockstar" working on a fast prototype is great. A "rockstar" that needs to operate as part of a larger team, bringing people along, is usually not great.
It's a hybrid IMO. Email is explicitly async, a voice call is explicitly sync, but a msg/txt can be either.
For instance, I often will ignore slack notifications for awhile to focus on something or to take a break. When I come back I'll reply to them. Fairly often the other person will respond in real time, and if there's further discussion to be had we can continue in real time. If either of us needs to break and go to a meeting or something we then tell the other and excuse ourselves just like a voice conversation.
Unless you are already talking with someone, yes, chat should be considered async. It's the equivalent of shooting someone an SMS or leaving a message in voicemail: it's not something that they would miss by not being online - like a phone/video call - but something that people can get around to addressing as soon as they have some time.
But people who work together do not necessarily work in an office, or in the same office as you, or even on the same floor/in the same building. Talking with someone face-to-face often requires you to find them first - which is not trivial - and reach them, and they could be in a meeting or otherwise busy in that instant.
People use this language because they know very well that failing to do so will not get them good responses in the majority of the cases. Outside the world of IT you’re usually expected to check on the emotional state and availability of the interlocutor before posing a question or saying anything of consequence. It’s a required form of persuasion. This may only happen once a day, so you’re allowed to be more direct afterwards.
I think many comments here are extending a point being made specifically about IRC to interactions more generally.
Different cultures have different expectations around communication, and frustratingly, people in each culture often feel that their conventions are the only correct ones.
Asking to ask can make sense when asking the questions is, itself, expensive, or where there are potentially obligations of some nature surrounding asking and answering questions.
For example, in scholarly settings, there is often neither an outright responsibility to answer questions, as there might be in a corporate setting, or a complete lack of obligation, as there might be in an online development setting. There's generally a social and scholarly expectation that we'll help other researchers, but we may or may not have the time or the expertise: asking directly for assistance might not provide the opportunity for the person to politely decline, or refer to someone else, with them instead feeling obligated to help. At the same time, even explaining what the specific questions are might be a very time-consuming process, and the way the questions need to be explained might need to be tailored to the specific background of the person you are asking: simply asking the questions would take a large amount of time, which would be wasted if the person being asked couldn't respond.
So, as an example, I received an email a few days ago that I feel went about this the right way. The person wanted to ask me some questions about some experimental techniques that they know I have experience in, whether they would work for their project, and whether I could help them apply the techniques. So they wrote a few sentences about the general style of experiment they were working on, asked two quick questions about general feasibility, and then asked whether I would have time to discuss the technique with them in detail. This seemed ideal: it didn't obligate me, or take a huge amount of time to write or read, but it also gave me just enough context to understand the general nature of they wanted to ask me, think about whether I wanted to help, and know whether I was the best person to do so.
I think that asking to ask a question can, at times, also be useful in programming settings, particularly when you are not sure of your audience or when the question is sufficiently technical. I can recall a time, many years ago, when I thought I was asking a question in a space for development discussions, but which had gradually turned into more a place for technical support. So rather than asking whether I was in the right place to discuss fixing hardware bugs, I immediately launched into a technical question regarding how to approach properly solving a serious bug affecting a few laptop models, as current workarounds had specific and severe shortcomings. Numerous people, recognizing the bug and not reading the rest of my question, immediately responded with mild admonishment that I didn't search for a solution before asking for help, and then explained how to fix the problem I was having by patching the kernel... with a CPU-crippling temporary workaround I had written. Had I more clearly asked, first, about whether I was in the right place to discuss developing a fix for a bug, rather than asking for technical support or a solution, I could have been directed elsewhere, instead of wasting my time, and the time of everyone who tried to answer the question without understanding it. (I did at least learn that the distribution was filled with people who were being extremely irresponsible about what they recommended to users...)
On the other hand, in civic- and business-oriented matters, and a completely separate culture, I am continually frustrated by voicemails and texts I get asking me to call people back, as they want to ask me something, without giving any information, at all, as to what they want to ask. I don't know how urgent or important the matters are. I don't know how much time the return call will take, how much privacy I might need for it, how much preparation or what documents I might need, and so on. It is infuriating, and at the same time, I also know that I can't just demand everyone change their communication styles.
These observations are valid because it’s understandable for people to transfer behavior back and forth internet and “real” life. The author fails to take that into account.
With all due respect, but programmers are usually not very fond of humanities (no criticism here, this is not their jobs), and are also extremely susceptible to the Dunning-Kruger effect.
Some things must not be “algorithmicized”. Their attempts to educate the public on how to conduct social interactions frequently arrive at similar misconceptions and blind spots — sometimes with very obnoxious rhetoric.
I believe the real key here is to understand that human diversity is a wonderful, but often challenging thing.
The way I prefer to communicate is probably not the exact same as any other human on the planet. The way that you and @pallas seem to wish to communicate is clearly not quite the same.
One other thing that I'd like to point out here, is that often times people who are asking questions are the very people who lack the lexicon specific to the skill they need help with. They may not be able to compose a very distinct message of what they need as they cannot accurately describe it. Combine that with the frustration that often comes with a tool not working as desired or expected and you may find someone who is more emotional than verbal. They may want to show you rather than tell you.
I’m actually quite objective on technical online spaces and tend to follow all the usual recommendations for IT people. But I’m also very tolerant with those that communicate in a different manner.
And I agree with you that the ability to talk about these things is not innate and we must take that into account.
Many assume laziness where there may be genuine ignorance and desire to learn.
It's not necessary to explain the whole thing you need help with, but it's just simple courtesy to give the person(s) you're asking a heads up of what the topic is so they can accurately answer. Someone may be too busy to help with a big request but if it's something smaller they will know they have time to respond.