When Ryan was the only committer and most of the regular node contributors were in the bay area we'd assemble 8 or so people together when we wanted to deal with a new challenge to node. At first we went to the Old Oakland office of CouchOne where I worked but then we upgraded to Matt Ranney's much nicer San Francisco Voxer office.
We scaled out of that pretty quickly, the contributors and stake holders spreading across the world made impromptu local meetings intangible. At first I put together a closed node core meeting before the first NodeConf but it didn't go as well as we'd hoped. Then I ran an unconference, NodeConf Summer Camp, at Walker Creek Ranch, and that served as a much better environment to hammer out the details of streams and seeds of ideas like domains.
Today there are a handful of regular committers to core. They do a regular conference call and contribute consistently. There is a loose structure that appears to be working for them. I decided to end the unconferences and bring NodeConf proper to Walker Creek Ranch instead.
Node's biggest challenge is its growth. This kind of sustained explosive growth in users and ecosystem is somewhat unprecedented. The work we've done to create a positive and inclusive community could be easily lost in that growth.
Conservative numbers have node's growth at over 100% a year. That means that if every current node user doesn't impact, on average, one new user to propagate the culture we've worked to create we will start to lose it. We have to change the way we organize, the way we teach, and the way we interact as a community so that we might handle such dramatic growth.
Node core's growth, in terms of contributors, has not shared the same growth curve as its users or ecosystem. Node core is stabilizing, it's tuning performance, all great things for the project and the community but also things that make contributions by newcomers more and more difficult. Those that work actively on core already do a lot and should not be asked to take on any additional burden.
The majority of users and value being created are in the ecosystem. The ecosystem is not owned by a company. Joyent's ownership of node.js has not become a critical issue for our community yet and it is hard to imagine it will in the future considering that the majority of growth is happening elsewhere.
The ecosystem is owned by all of us. Every package is owned by the creators. We don't have ecosystem ownership issues. Our biggest challenges are not going to be fixed by a non-profit or foundation taking ownership of core being that the committers are the ones that would need to handle the burden of such an institution.
We, as a community, have some incredibly hard challenges ahead and creating institutional infrastructure isn't going to fix them. The growth is far too great to try and control or bring under the the management of any process. The ecosystem expands so quickly because it lacks institutional barriers to growth and adoption. What we have is a community and a culture we need to scale, that can't be solved by a single project or a single institution but by all of the community members and leaders working hard to promote the kind of place we all want to be.
So many things to respond to! You all rock though, and these are great comments and concerns.
"Ownership," as an issue related to the actual ownership of copyright and direction is only an issue in node core which is owned by Joyent. The only people we could expect to run such an organization would be the current maintainers. Ownership is not an issue outside of core and the larger community and ecosystem have no owner.
I don't think a foundation or central organization will work to direct node, JS, or its community, for reasons I'll try to elaborate on as I work through many of the other comments.
There have been multiple efforts here which we can learn from.
After doing the first JSConf Chris Williams started to gather people together in an informal organization who were running more conferences. There's nothing official but there is a backchannel and we all talk regularly. At this point we mostly give each other mental support or access to certain contacts. Nearly every member of this backchannel is working with other people in the "JSConf Family" of events, especially the first year conferences.
Chris also attempted to create a larger public channel where all of the JSConf Family events and others could talk. This mostly failed, people didn't ask all that often and replies were rare. The channel eventually died. It took me a while but I think I finally have some understanding of why this didn't work.
Private channels allow people to ask questions and express frustration they wouldn't normally do publicly. In addition, the members of a private channel have an implied responsibility as members. I've organized several conferences now in private GitHub repos, people are very engaged and responsive and it works much better than alternatives like private email. After the conference we've made these repos public so that people can learn from the process. Why not do them publicly from the start? This was my only attempt No9/peerconf-2013#1 and it's a mess. Being that anyone can comment nobody is responsible for their suggestions or implying that they are willing to take on the work of realizing their suggestion. It's hard to tell who is willing to put in the work and who is not.
That said, how can we create a place where anyone can come and get help?
I think a successful formula is to create a place that is very specific. I tried to make a place where anyone could come doing a node event but engagement has been lacking https://github.com/mikeal/node-meatspace/issues which is in stark contrast to the engagement we've seen with people coming to the NodeSchool channels to launch local versions.
It seems that the formula here is to avoid centralization as much as possible. The Node/JS/Web is very wide with hundreds of smaller sub-communities. Getting help from people with experience is easy once you reach the people who are passionate about the same thing you are, these are found in the sub-communities not in broader generalized forums.
The same thing goes for creating something new. Nodebot and NodeSchool events have very different formats because of the differences in what they are trying to teach and the communities they are engaging.
Another thing to note is that the more centralized something is the more it will grow some sort of ruling class. Maintainers, committers, curators, whatever you want to call it. The problem with this system is that people who engage don't feel responsible for doing things themselves so much as they think it is the responsibility of the ruling class to do them. Conversely, de-centralization is more democratizing, there not only isn't anyone to tell you can't do something there is no dominant structure, process, or class to expect it from.
@SaraJo this brings me to your first comment. While in the short term it may have been beneficial to have this sort of leader I think that in the long term it ends up being a huge hindrance. The community eventually grows to the point that one person cannot dictate the culture even if they are the best figure to be doing so. The longer the community goes without growing a distribution of leaders who re-enforce the culture the weaker it is in sustaining that culture.
Our biggest challenge is growing more/new leaders and encouraging more people to run community events like NodeSchool, NodeCopter, NodeBots and future events for new and growing sub-communities.
Action Items