This may not be the proper place to post this, but because of traction, we were pretty much ordered to disable the bot's auto-welcome in the javascript chat, which makes it kind of a big deal to me. Since most participants in this discussion are seeing the auto-welcome as one finished unit, I'd like to say how it came to existence.

But first I'd like to talk about margarine and my great-grandfather.

My grandmother used to tell me how she worked during vacations. Her father (let's call him Bob) was an engineer (or something of the sorts) in a company which made oil-based produce. One of their products was margarine. I think she told me one of her duties was packaging the margarine slabs. You know, putting them into these neat rectangular packages. It was a pretty annoying job, but it quite a few decades ago, and they didn't have something better.

And then they did. Bob, my great-grandfather, added a component in the production line which packaged the margarine. It was (and is) very not-trivial, since you have a moving product and you have to fold it *just right* with fixed mechanical movements. But it was a success, and all was well, and happiness was spread through all (except those who ate the margarine).

Since we're mostly programmers here (and those of you who aren't can still relate to the point), we know that any advancement, any introduction of a product is made out of some simple steps:

1. The world is in a state where problem A exists (A can be margarine packaging, communicating with your friends, eating ice cream, anything).
2. We identify A as a problem which we want to fix.
3. We build a solution (this may take a while).
4. A is no longer a problem for us.

This is a self-feeding loop, since introducing a solution can spawn many other problems, known as "bugs". Our solution isn't necessarily perfect.

Let me introduce a problem. We're in the javascript chat room. We want and like to help people (we really do!). We dedicate hours of our lives to educate and solve problems without asking for anything in return, because of our own reasons (some of us are bored, some of us are interested in the problems, some feel that education is the best way to advance the js community and the programmer community in general, etc).

And we notice things which annoy us. One of them is when new people show up, they have the same problem StackOverflow has - they're used to a certain format, but we work in another format. In some chat rooms (especially MMO chats for some reason), it's common practice to say things like "anybody here?" or "can anybody help me with X?" or "can anybody help me?", or maybe they just randomly select someone and ask. But we don't quite like it. We're here to answer questions. We can't answer your question...if we don't know what it is. Answering these questions produces 0 value in general, and just aggravates us because we see them [over](http://chat.stackoverflow.com/transcript/message/272399#272399) and [over](http://chat.stackoverflow.com/transcript/17?m=6991926#6991926) and [over](http://chat.stackoverflow.com/transcript/message/8656316#8656316)...

We notice a pattern, we notice a problem. We're now at the second step to solving it: https://github.com/Zirak/SO-ChatBot/issues/39 And we have the technology.

So we make a system. It had bugs, the community complained. They were so severe, we [shut the system down](https://github.com/Zirak/SO-ChatBot/issues/42), only two days after it was launched. But we didn't give up. We improved the system, we fixed bugs, we considered edge cases. 9 days later, it was live again. A month later, the system got improved again.

The system solved our problem. It didn't just do that, it did a lot more - new users really liked it ([1](http://chat.stackoverflow.com/transcript/17?m=12605213#12605213), [2](http://chat.stackoverflow.com/transcript/17?m=12595420#12595420), [3](http://chat.stackoverflow.com/transcript/17?m=12399692#12399692), [4](http://chat.stackoverflow.com/transcript/17?m=10803692#10803692), [5](http://chat.stackoverflow.com/transcript/17?m=9828961#9828961), ...). It made them feel welcome (maybe because, well, the message *does* welcome you). So not only did it mostly solve our problem, it improved the overall feel of new users. Unlike IRC welcome messages, which are actually giant walls of text, this was a 2 liner asking something simple of you.

Can the system be better? Certainly! It still has bugs, it can still be improved, it can be more meticulous about who it welcomes and who it doesn't using better metrics. Heck, it might even have cross-site problems, since I really just made it for the SO chat, not SE in general. However, the important fact here is that *it solves a real problem we had*. Before it, we had to say "please don't ask to ask, just ask" about four dozen times a week. Now, it's a lot less (because some people either manage to forget, or need a reminder). Just [today, when I was catching up to the whole story](http://chat.stackoverflow.com/transcript/message/12962195#12962195), someone came in and showed us the problem again.

I'd like to point out another important fact: Just because the system works for us doesn't mean it'll work for everybody. Some rooms don't need this kind of message. Some might just not like the idea. Some might not even have the problem to begin with - because we're a heavily invested technical room this problem began. Horse Grooming chat rooms may have 24/7 long discussions about...horse grooming, without ever having to face this.

And another important point, which may have been lost in the flow, the automation of it. In several points, we were asked to just do it manually, that is if we see a user acting in a problematic way, we welcome him. But that's just going back to how thing were before the system, which as described, was not ideal, which is why the solution sprouted in the first place.

To conclude, I'd like to say how community driven the bot is. [Benjamin Gruenbaum](http://meta.stackexchange.com/a/207142/220449) said it before me, and I'd like to repeat: The bot is shaped by the community. We have an active and healthy discussion going around for every suggestion. If we see something isn't going well, we talk about it and improve. Features were added and removed, features were thrown away at planning stage, and it's all community driven. We also ask moderators (one of SO's mods is also a regular in the room) in some gray areas, ask for their approval. We do all this because we're programmers. Our job, our source of fun, is identifying problems, and solving them. So I'd like to ask the moderators to reconsider making this site-wide. Since they're the people who make the rules, my next commit is going to respect that and remove the auto-welcome. But it won't feel right, and it won't feel fair.