What’s the Recipe for a “Healthy” Community?
In all the chatter in the last day about what’s up with MooTools, which is a topic that’s been on my mind for a while (i.e. how to explain that there’s actually a lot going on, if you ask me) I keep coming back to the same refrain that I have seen posted all over the place: that the MooTools ‘community’ leaves something to be desired.
What, exactly, is that? I’m curious. As someone who cares about evangelizing the software to which I contribute so much, I find myself considering what else we could or should be doing.
The way I see it, there are only a few ingredients here:
- A set of strong contributors to the framework itself.
- A collection of helpful people who are willing to dedicate time to helping others.
- Resources for learning the software and getting help.
- A way to share one’s own contributions
- Frequent communication about the software and its use
Am I missing something? Let’s consider each of these:
Contributors
I hope we can all agree that the framework itself is well written. MooTools is meticulously groomed and maintained and in order for a feature to be added it has to really demonstrate its merit. Users with ideas for features that are not included in the library are strongly encouraged to release the code themselves. If there’s one thing the contributors are really good at it’s actually authoring the framework. They aren’t perfect and they often make controversial mistakes, but by and large, I’m quite happy with their output.
Helpful People
While the core developers are great at developing the MooTools core, they aren’t always the most extroverted and helpful sorts. Indeed, they tend to focus almost entirely on the framework itself to the exclusion of many other things. It’s rare to see Tom or Valerio, for instance, posting in the MooTools user group. I personally don’t hang out on IRC very often (mostly because I find myself too distracted by it). Is this a bad thing? I see people on the Google Group helping each other out all the time. I see total noobs show up and ask what amounts to a stupid question but for the most part they find help anyway. It’s rare that I see someone on the forums complain about not getting help, though I do occasionally see someone posting that they don’t like the help they got. Shrug – you can’t please everyone.
Resources for Learning and Help
MooTools has an active IRC channel, an active Google Group community, and an unofficial forum. On top of that there’s a complete tutorial (plus documentation of course), a book, and people like David Walsh, myself, and others blogging about it. I get personal emails sent to me all the time and while I don’t answer them all (directing the senders sometimes to the Google Group) I try to be as helpful as I can afford to be. What’s missing here? I’m not sure.
A Way To Share
On the one hand, MooTools doesn’t have a plugin repository which I think it desperately needs. Digitarald is working on it, but it’s still not ready to launch. But on the other hand, there’s nothing stopping people from releasing the code themselves. I’ve even offered to host code for others and distribute it here until the plugin repository is ready, and for those who want to host their own, I’ve offered my tools to them for free. David Walsh and I have started twittering about any new MooTools plugins that we find and invited anyone to send us news about their work. It would be one thing if there were tons of people releasing things into the void and demanding a repository, but despite our invitations we have to constantly work to find things. If this is a deficit – that those who use our framework have no place to release their work – it is a burden that is as much an issue for the community as it is for the MooTools developers.
Frequent Communication
Ok, here we have a topic that MooTools is obviously not so good about. Unlike some other frameworks, we have no core evangelist (unless you count me and/or David Walsh). The core developers simply don’t post much and would rather spend their time coding. Consequently weeks and months can go by without them sharing their thoughts. If there’s one thing I could change it would be this. Well, that and I wish that the framework published itself more often. I’d love to see MooTools start releasing bug fixes on a weekly basis (at least). Who knows, maybe we can get that to start happening, but I will at least cede the point: MooTools could be more outspoken about itself.
To that end I’ve started posting here much more often and posing questions like these to you. So I’ll ask these: What would a “healthy” community look like to you? What do you wish MooTools was doing that it isn’t? What do you think the community should do for itself?
Follow @clientcide on twitter to get notified of new posts.
To follow me personally on twitter, follow @anutron.
January 21st, 2009 at 6:32 pm
Thanks for the post on this, anutron. I support MooTools devs’ decisions but I know for myself I’ve “drifted” from the MooTools community since 1.2 release. I think it’s mostly because I didn’t want to keep reading all the complaints in the Google groups. =P
I used to stick around the forums because I felt that a good way I could help out in the MT community was to offer suggestions and help for those who requested it. It was nice having a forum with subforums to categorize the discussions (and I realize this is something that can be done with Nabble/Google groups, and there is the unofficial forums), but I think I miss the contributions from the old regulars. I learned a lot from them. Plus, it was really convenient having everything on the mootools.net site — forums, docs, demos… yeah… we’re all lazy like that, I guess.
So… I’ve thought about replying to the threads regarding the MooTools community but once I started typing, I realized that things are pretty much the same (just decentralized), and not everyone likes change. I don’t think there’s anything I’d change… devs are improving MooTools, people are creating plugins and blogging about MooTools. It’d just be nice to have a centralized discussion… because, imho, Google groups is disorganized compared to the original MooForum. (Yes, I know there’s the unofficial forum, though I haven’t really spent too much time there.)
Ah well. I’m done rambling. You got it right though — can’t please everyone. There’s no real reason to try… just keep hacking =)
January 21st, 2009 at 6:40 pm
Heh, another thought… I think it’s nice to have *some* interaction with the core devs. I mean, yeah, we could look at the Lighthouse tickets to see what kind of stuff is happening, but it’s also nice to get an idea of what’s going on at a glance (of which the blog does a decent job). MooTools devs don’t necessarily have to spend a long time letting us know what’s up, just that something is up, there’s something to look forward to, etc. I think that’s a good reason to keep using MooTools — it’s improving and being optimized, and I like that. I don’t want to use a framework that’s out of date…
January 21st, 2009 at 8:12 pm
Speaking as someone who has been learning javascript because of mootools and is well, embarrassed to ask for help in public rely on people like You, David Walsh and Virtual Gadjo (who I never directly or indirectly spoke to but taught me a lot with his posts on the old official forum)
What I am getting at is there may not be a problem with the community at all, it could that mootools attracts the type of coder like me, the type who doesn’t like to ask for help, wants to figure out as much as they can on their own and because of this method is never really sure if what they have made is worthy of releasing or would be quickly pointed out as flawed and sloppy.
I suppose this is can be determined.
If you are the type of person who decides you want to do something in mootools and follows this pattern…
1. searches forums and sites to see how other people have approached it
2. gets stuck and keeps quietly lurking and searching and trying until you figure it out
3. Have a moment of great pride and accomplishment that quickly turns into self doubt wondering if you did it right or it could be better.
4. This self doubt almost guaranteeing you would never “officially release” what you have done.
Then post here and go hey that sounds like me.
It would explain a bit, while mootools is popular, more popular than the common indicators point too (see poll on David Walsh’s site for example) there seems to be the recent trend of people saying otherwise.
I know this post is getting really long but I have been thinking about it somewhat ever since the old mootools forums where threads basically calling the devs elitist were popping up weekly.
All frameworks are different in ways, all coders have different styles and working environments, it would only seem logical then that their respective communities would be different as well and their respective communities should be tailored to it through a natural slow evolution.
(also it just seems a bit poetic that a framework devolved by self identified introverts would also attract a good bit of the same type of people as users, or maybe I am just trying to make the data fit the theory)
January 22nd, 2009 at 12:07 am
While I agree with a lot of points I think you missed something: MooTools is a library that was created by people that devoted their precious spare time and is free to use. They are not obliged to do any of this or to devote a certain amount of time for the project, nor is anyone forced to use MooTools. In addition, I don’t think the core developers made direct profit (as in $) while developing mootools.
As you note that there should be a weekly release this is something you simply can’t achieve with a voluntary base like mootools has. I would be more actively working on the core if bugfixing wasn’t such a tedious task. And seriously, it is no fun making a feature work by cross-browser-testing something random in like 7 browsers. I can deeply understand why the core devs don’t really like working on that. Or the same reason why I don’t often help people in IRC any more – there was a time where I spent most of my day helping but it kinda sucks the energy out of you when you hear the same questions over and over again. I’ve limited myself to only help the people that I think know what they are doing.
Personally I devote my time on stuff around MooTools as the Core is something that is taken care of and just works. The separation of mootools-core and mootools-more was a good move though I first wasn’t a fan of all this. By moving away from what MooTools itself (as in mootools.net) isn’t about any more (Accordions), the project can focus on its base functionality that make the library outstanding.
@carise:
Just hang out at the official irc channel on freenode, there is a lot of stuff going on about moo itself :) And some core devs are online there occasionally.
(and btw. Aaron make that comment textarea bigger :) )
January 22nd, 2009 at 1:25 am
I think you’ve gotten all the points on a healthy community. I really like the idea of a weekly release for bug fixes. Even if it’s minor, it still means that things are active and improving.
January 22nd, 2009 at 1:46 am
Ya, we have a bad habit of being stealth ninja programmers. Slipping through in the middle of the night and producing teh aswome.
I must admit I focus much more on addons and extensions and plugins. There’s just really not too much to do in the core of the code. We are working on some awesome nerdy stuff, but not really anything that “normal” people would care about ;)
January 22nd, 2009 at 3:52 am
I agree with carise: _some_ feedback from the devs would be nice. It’s nice to see that things are actually happening, y’know? Will there ever be a 1.3? What will be in it? What do the core devs want to see in the future? What do they want from the community?
January 22nd, 2009 at 4:42 am
I’m with Carise here.
The only thing I’m missing is the forum. I’ve never been fond of mailinglists, IRC, groups or anything other than forums for community interaction.
I think Debian GNU/Linux is a great example here. It boasts a huge community, yet documentation and examples can be hard to find because it’s located on dusty old mailinglists and blogs scattered around the net. When I first saw the Gentoo distribution, it had a official forum, and even though gentoo is more complicated to manage than Debian, it was always possible to find a fix for it on the forum. I think forums are more user friendly and is more prone to people chipping in because of this.
I read your blog where you explained why the forum got closed and I understand that, yet I still think mootools should have an official forum for it’s users to share it’s experience. I’m not saying the core team should be the forums front figures there, I think the community will eventually become that.
Another thing I could use is a combination of mootools.net and clientcide.com, that is, frequent blogging, plugin repository, wiki and tutorials.
January 22nd, 2009 at 5:22 am
it’s nice too see a lot of people thinking about MooTools…
I have an idea about an easy Plugin Repository, it’s not about a forge it’s about easy use of Plugins and centralizing it [something like that could be included into a forge, or built on it's own]
I created a screencast about it – just take a look: http://is.gd/gP4D
and discuss about it on mooforum: http://is.gd/gP2G
January 22nd, 2009 at 6:34 am
Here’s my view on it all:
1) I completely agree that MooTools needs a plugin repository, and am really really happy to hear that it is in the works. While I myself would probably not use it much I think it generates a lot of good attention. One of the greatest aspects of jQuery, and one reason why so many people go that route, is that it has a thriving plugin repository. This needs to be integrated into the MooTools site and, if all goes well, needs to host some decent plugins worth attention.
2) It would be nice to have some feedback from core developers, and one way this could happen is the make it a point for weekly or bi-weekly updates on MooTool’s blog. The core developers could take turns writing posts concerning updates, patches, plugins etc. This means that the time spent writing posts would be shared and would not be much of a burden for each individual.
I think one of the real obstacles is voicing the strengths of MooTools across the Internet. The real problem with the MooTools community is that it seems isolated. I watch the jQuery community spread as more and more blogs are posting the “30 Best jQuery Scripts” or “Improving Your jQuery Skills.” This isn’t happening by chance. And there is no one reason.
John Resig is very vocal about jQuery. He posts comments on a large number of jQuery related blog articles. Corporate types are becoming more familiar with it as opposed to MooTools, Prototype or other frameworks (partially due to Resig). This causes them to push the framework onto their developers. And, as the web of supporters grows larger it gains momentum and begins to catapult itself. MooTools needs some sort of spark to get a “movement” of sorts going. I’m not really sure how this would happen, and how to go about it. Maybe it is out of anyone’s control. But I know that this framework has the capability of branching out much much further than it currently does. I think it really comes down to people voicing its strengths. Not just the core developers, but any fan at all.
January 22nd, 2009 at 6:44 am
One other thing I’d like to see is MooTools core developers pushing for its integration in some popular content management systems or other bundles. I know that a lot of people install Wordpress, Joomla or other CMSs and become familiar with the frameworks bundled with them. Then, due to this familiarity, they tend to prefer them over others. I haven’t really looked into which CMSs or other bundled packages include MooTools, but am sure that more would do nothing but help the community grow.
January 22nd, 2009 at 9:19 am
Wow. Great feedback from everyone here!
My thoughts:
@dave, your theory that we are all introverts I think is probably not the case. Any community is a mix of people, some who are not likely to ever share their thoughts or work, but others who are. The key, I think, is that we – the developers of MooTools – need to encourage this, even if the outcome of other people’s work is something we would never write or use. Just seeing other people write stuff and post about it should be a cause for accolades.
@chris, I fixed the comment area! I’ll also add a simple editor to it.
@thomas, I too am focused less on the core than I used to be. It does it’s job and I focus my time on extending and adding plugins.
@tim, the value of having Clientcide be it’s own thing is that I can both speak more freely about my work and about MooTools from my perspective as well as share code that maybe isn’t up to the standards that everyone expects from MooTools. I can be a little more reckless here.
@thomas, you have some nice features in your plugin support and I like them, though I’m not sure your approach makes the most sense for an official repository. The repository requires things like integration with SVN/Git/CVS so that users can acquire the latest code as well as a download builder. Your method of importing scripts is convenient to use as a programmer but ultimately means much slower pages for users of such sites.
@Tim, I don’t see MooTools focusing on outreach to the extent you suggest any time soon. I’m by far the most outward facing person on the team (indeed, my main contribution is outreach, at this point). The fact is, we just aren’t the kind of people who seek the limelight. Resig talks all over the world about jQuery, which in many ways is an extension of himself. That’s awesome and I’m sure he enjoys it. But if that’s not something you want to spend your time doing, it could be hell to put yourself through it. I’m quite content to blog about my thoughts and leave it at that.
January 22nd, 2009 at 9:56 am
@dave: Heh, you hit my typical research pattern spot on. I’d rather use 5 hours of googling than ask for help. Its one of the side effects of learning GNU/Linux from friends whose typical response was “RTFM” :D
January 22nd, 2009 at 10:07 am
@dave, @Tim You said exactly what I always mean to say but never end up saying it because I figure it’s good “netiquette” to google/read up on the topic, and then if I can formulate a semi-intelligent question, I ask. :) (I’m always tempted to tell people there is *no excuse* whatsoever for skipping the docs/Mootorial/demos/etc. because there are slow learners out there like me who could learn MooTools and finally figure out Ajax and Javascript and stuff (this is no joke — I did not understand Ajax for almost one year until I picked up MooTools).)
January 22nd, 2009 at 2:04 pm
I think the plugin directory is critical. Its not just so users have a place to publish their code. Its not just so current users can find plugins to help them out. It’s so people will choose the framework.
New users will feel more comfortable picking the framework if there is a plugins section on the main homepage. It acts as a quick reference to the size of the community, inspires confidence that plugins will be easy to find, and provides examples on how mootools works.
Id rather look at some popular plugins when being introduced to a language then read through documentation.
January 22nd, 2009 at 4:17 pm
All the things I showed are not really about the Backend behind. It just showed that MooTools is really awesome and it can even help people who are lazy (like me) and don’t really want to manually include all this js or css files in the head of the page.
About the argument with the speed, yeah sure you should not use it that way in an productive environment but for local testing I think it’s reasonable as you get a lot of benefits from it.
For the productive environment you need to create one file out of all this files, but this can also be taken care of by the Repository.
I now explain my ideas in far more detail on the thread, please take another look.
http://is.gd/gP2G