Don't optimize for yourself in communities

| 21 Comments

It drives me nuts every time I connect to an IRC channel, Perl-related or not, and the first thing I'm greeted with is "Don't ask to ask, just ask!" (Over in #perl on freenode, the greeting is "No pasting, at all". BAD USER!)

The problem that the keepers of the channel are trying to solve is when new users come in and ask "I have a problem with arrays, can someone help me?" The regulars of the channel would prefer it if the person seeking help would simply ask the question: "How can I delete an element from the middle of the array." So they put up that chastisement, "Don't ask to ask!"

How incredibly short-sighted!

First, is it really a problem that people ask an introductory "Can someone help me?" Wait, don't answer yet. Don't say "Well, they can just say..." That's not what I asked. Is it a problem? No? Then don't try to fix it.

Second, why not have a more welcoming message to those who you're ostensibly looking to help, and who you'd like to have as part of the community? Why scold people before they've even said anything? How about "Thanks for joining us in #vim! We're glad to answer questions as best we can!" instead?

Third, stop optimizing for your own convenience. Try to consider what your messages are saying to those around you. You just might find the communities you're in to be a nicer place.

People's behaviors are not code that can be optimized by careful code tuning. You can't eke out every last second of efficiency in human interactions.

Addendum: I wrote the welcome for #perl-help on freenode. It says "Welcome to #perl-help. We're glad to help with your questions, but you may need to wait a bit for a response. Posting your code will likely help, please see here: http://paste.scsys.co.uk/" It tells the same things, about how to post your code, and encouraging users to ask questions.

21 Comments

Normally I would agree whole heartedly, be easier on the newbs, but on this I simply cannot agree. "Can someone help me with my problem?" is wasted bandwidth in *ANY SETTING*. Just ask the fucking question.

Also bear in mind that nobody reads the welcome message, so assuming that people have done so will just increase your frustration.

Remember that the fact that they are asking on IRC already means that they have acknowledged their ignorance. You don't have to go very much to make them feel stupid.

Try to remember when someone made you feel stupid on some other channel (What? You've never had to ask for help?!) and avoid making them feel that way.

Sure it's wasted bandwidth. But so what?

No, really. So what? Why is it a problem?

Despite the somewhat unfriendly topics I think these channels are generally quite positive.

Ironically a few days ago I was trying to get help on #vim, provided full context for my problem, and then stated that "my previous keybindings no longer work", explained what they were and where I put them, etc. The response I got was somebody telling the bot "doesn't work?" to display that oh-so-comical message, when in fact I had already given the full details.

I still haven't figured it out btw, for some reason I can't bind tabnext/tabprev to what they used to be, so after code diving through the stock vimrc i just got used to the new ones.

I find this much more offensive (as a vim newbie), that somebody saw some form of the phrase "doesn't work" and decided to hinge on that instead of listening to what I actually said. I don't think this happens often in the various Perl channels I hang out in (and try to help in). I don't think any newbie has ever been kicked for asking to ask or even pasting, just encouraged politely to cut to the chase or not do that again.

The real value is in the help the users receive, not in the fluff they don't really pay attention to anyway.

> First, is it really a problem that people ask an introductory "Can someone help me?"

Yes. It is. Both for the channel regulars and the newbie.

It means two things:

1. They waste the time of people trying to help by forcing them to tell them to ask their actual question coupled with the possibility that the person will only be able to tell them "No clue, sorry." either way. This is 2 minutes and more per newbie who does that, which adds up quickly in highly-trafficked channels.

2. It makes people less likely to talk to them at all due to the above, raising the chance of their problem staying unresolved.

"They waste the time of people..."

If your time is so valuable, why are you hanging around in a chatroom?

People who are in a chatroom making themselves available for technical questions should know how to exercise some customer service skills and not be so acerbic.

> First, is it really a problem that people ask an introductory "Can someone help me?"

If a user is going to ask to ask, it'd be a lot more useful if they could give some inkling of what they need help with, so someone with relevant experience could pipe up and say "Yeah, I know about that, ask away".

If it's a relatively quiet channel, it's also a way to see if anyone is watching the channel before expending the effort of describing your problem, then waiting to see if anyone is watching.

Either way, this is a behaviour you're unlikely to change - you'd have better luck herding cats. With a spoon.

I don't think it's hard to respond with a quick "nick: Sure, ask away!" - even set up a shortcut in your IRC client to make it even easier if you feel like it.

(As an aside: I'm glad I copied & pasted my comment before clicking Submit, and realising that commenting just plain doesn't work without Javascript allowed)

Saying "Don't ask to ask, just ask!" probably means little to a newbie of Perl and the channel. The best you could do is respond with a question, such as:

"What exactly does your confusion stem from? If you think about it for a few minutes, do you think you could ask a more specific question? Otherwise there are a number of online resources available, not least of which perldoc, the official Perl documentation."

Strikes me as better than dismissing them or getting annoyed. Finding the right place to start is a really tough task for someone who's trying to learn out of self-motivation.

Most of the times I thought about asking a general question while I was learning, I started to write it out in a text editor and iterated over all the fuzzy parts, often practicing on my own until I either had a specific question or no question at all, since I figured it out for myself. Suggesting such an approach may also be more beneficial than a wave of the hand.

> If your time is so valuable, why are you hanging around in a chatroom?

Exchanging information and help with people who DO know how to talk in a technical context? Talking to friends?

> People who are in a chatroom making themselves available for technical questions should know how to exercise some customer service skills and not be so acerbic.

Exactly how is it acerbic to state the simple fact that they are wasting people's time? Even if a person sits in a channel with the express purpose of helping newbies, they will not just sit there 24/7 waiting for a newbie to come ask a question. They will make proper use of their time when nothing is going on by learning more or coding more.

Or are you talking about the message "Don't ask to ask, just ask!"? There is nothing acerbic about it unless you decide to read it as such. The tone is completely neutral and would work equally well with a :) as with a >:| .

> Exactly how is it acerbic to state the simple fact that they are wasting people's time?

Social niceties are not always a waste of time. For someone sitting in an IRC channel where he is known and welcomed, there is no need. For a newbie, unsure of herself, afraid of being shit on for asking a dumb question, those baby steps can be crucial.

Humans are not computers. Humans do not interact like they are a bash shell.

I think you're right as to the larger point (trying to optimize people is narcissistic and doomed to failure), but your examples suck. Channel rules (like don't paste in here, use nopaste, link) are Good Things, and ditto a friendly "Just ask your question!". There's no problem here, nothing to fix.

> your examples suck.

How kind of you to say.

"Every time I connect to an IRC channel" - maybe you just don't understand how full of these questions/paste-spam a channel without these simple rules can get if you keep your client connected 24/7.

Like most of the clued, helpful regulars do.

<user has joined> "Can someone help me?" (5 minutes pass) <user has left the channel>

That is frustrating for people in the channel who are happy to help, but happened to be busy/afk/whatever 5 minutes ago. And the user didn't get any help.

<user has joined> user: "Can someone help me?" (5 minutes pass) me: "user, Hi! We can probably help. What is your question?" (5 minutes pass) user: "I'm trying to ... how can I ...?" (5 minutes pass) <user has left the channel>

That makes me feel like I wasted my time. Plus, the user still didn't get any help!

<Repeat daily for several years.>

So, "Is it a problem?" Yes. But it is actually more of a symptom of too many people not understanding the dynamic of "instant" messaging. "Don't ask to ask!" is not a chastisement. If you think it is, then you are not using the same communication norms as everybody else and you will probably be better off asking the mailing list.

In fact, everyone will be better off if you ask the mailing list, where the answer will be archived so that others can find it in a search.

Sure, new users are scared and timid and uncertain and etc. We should all stop writing code right now and hold somebody's hand and read the documentation to them... Well, maybe that's not going to be very productive.

Maybe someone will write a friendly IRC bot which will exchange pleasantries with new users and help them learn the ropes. "Hi $nick, what's your question?"... "Well, I can't help you with that but I think you should ask the mailing list. Signup here: $mailing_list and I'm sure you'll get an answer soon enough." ... "I know... But don't be shy, we all have to start somewhere." ... "Good luck!"

> maybe you just don't understand how full of these

I do understand. My point is still that if you're looking to build a community, you don't optimize for yourself, you optimize for those who are less clued in.

> Like most of the clued, helpful regulars do.

It's possible to be clued and helpful and still not aggressive to the newbies.

> We should all stop writing code right now and hold
> somebody's hand and read the documentation to

If the attitude is simply going to be "RTFM," then why bother answering questions at all?

I dunno, it seems to be somewhat of a double standard. Two posts ago, you said that "there is no one directing Perl 5 development tasks, and nor can there be. Open source contributors are volunteers" - and having rules on irc channels makes it bearable for the regulars to stick around.

> It's possible to be clued and helpful and still not aggressive to the newbies.

Not all of us can stay patient and saintly as long as you.

> If the attitude is simply going to be "RTFM"

Oh come on.

My mother told me to always ask first. Sorry, that is the way I was raised.

Every once in a while I go to perlbuzz to read about something that is cool. And most of the time I read an article that sounds like something in Perl or its community is exactly not cool but broken in whatever way.

Don't I remember it correctly that you created perlbuzz to post something *positive* about Perl?

Couldn't this article have the same raw content but written like this:

Have you ever been watching a Perl irc channel for a while and wondered how "they" are able to answer millions of questions seemingly around 24 hours a day, every day? And "they" seemingly even try to optimize it further to cover even more useful content when they politely say `Don't ask to ask, just ask'. Simply saying Thanks for all the help is the least a blog like this can do. Now go out and meet those incredible people hanging around there and ask them something.

It's the same rule in any setting. Asking to ask is wasted breath. Telling people, "don't ask to ask, just ask" is as helpful to them as telling them to "use strict" when they didn't ask.

And most of the time I read an article that sounds like something in Perl or its community is exactly not cool but broken in whatever way.

That's not always directly a bad thing. It is in my experience a symptom of any sufficiently old community.

As communities grow older and larger, social complications arise.

Without people to complain about how things are going and discuss the problem itself nobody will ever do anything about it. And there's only one thing worse than a community with a problem, and that's a community in denial with a problem.

Having people willing to discuss such issues is the only way to manage the problem and try to find ways to solve it, stir the management pot as you will.

Without these people, the community will just become an exclusive self-serving pot of rot, and will eventually die out. For good examples of this, see all your local churches who have no desire for outreach programmes and no desire to adopt changes in the world and work with them. They're all filled with people who've been in the system for the better part of the last century, and when they die, nobody will replace them.


For what its worth at least with Perl there is a sense of community. When I was a Php programmer, either I had my head in the sand, or there really isn't much in the way of "a community", there are multiple segmented sects of community that appear to exist sporadically in random places, but there doesn't appear to be much of a cohesive community where everyone who's part of the community is involved.

I'm also unaware of there being any substantial communities for any other major players, they all appear to have similarly ad-hoc systems, where people who develop libraries you use every day, are random nobodies you never talk to.

IMO, be thankful for what we have, because its somewhat unique.

ericwilhelm has provided the actual sane answer.

We *are* optimising for the visitors. I also see sooo many instances, returning to look at the channel after some minutes or even an hour away (yay meetings).. Of users who connect, ask if anyone is about, and leave after 5-10mins or less.

If anyone *is* about, but busy/working, then its the user who loses out if that person looks, says "yes", gets distracted by work again, looks back another 5 mins later, and the user has left. If that initial contact had asked a question, the first reply could have been the answer.

In the cases where a channel is busy, the user loses out again if they don't ask a question, as yes, the regulars are busy in another way, not just idling around to help. Here the greeting may get lost in the noise, whereas an interesting question may actually get answers.

Try hanging around in one for a while..

Leave a comment

Job hunting for programmers


Land the Tech Job You Love, Andy Lester's guide to job hunting for programmers and other technical professionals, is available in PDF, ePub and .mobi formats, all DRM-free, as well as good old-fashioned paper.