Skip to content

Instantly share code, notes, and snippets.

@mikeal
Last active December 29, 2015 22:39
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mikeal/7738226 to your computer and use it in GitHub Desktop.
Save mikeal/7738226 to your computer and use it in GitHub Desktop.
The road ahead.

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.

@thoward
Copy link

thoward commented Dec 5, 2013

So maybe what the "NodeJS Community" needs (so weird to talk about it as a thing) is documentation.

This discussion comes from the idea of having Node become owned by a foundation, the goals of which, we assume would be to:

  • do all the stuff related to legal ownership and management of a open source project
  • direct and enforce/encourage specific cultural values
  • be a centralized resource for the community as it grows

If we look at ASF as a model for this, it does all of those things for it's projects. It provides the infrastructure to host the code/issue trackers/etc, it has mailing lists for all the projects, it does all the legal things it needs to, and it has created "The Apache Way" which is it's weird hybrid of cultural values and software process.

When I joined ASF as a committer, it was easy for me to learn what the community expected and valued, because there was a document I could read that explained it, plus lots of mailing list where I could read old discussions on various topics, and where I could ask questions. I could also just lurk and see how other people's situations played out and learn from that.

Anyhow, a foundation doesn't have to do all the cultural work and all the technical work. There's no need for all these things to exist in a single entity. Joyent is doing a good job of bullet point number one up there; owning the code and managing the development on that code. Folks like Chris have become sometimes-accidental/sometimes-explicit cultural leaders (eg: An End to Negativity), there's a mailing list, which is a mix of cultural and technical topics. There's a bunch of them, actually.

But all this stuff is totally disorganized and hard to discover.

@mikeal you talked about this directly in your own blog: http://www.futurealoof.com/posts/the-fiction-of-leadership.html ... On one hand I see this as a strength of the Node community (non-inflated egos, emergent decisions, no barriers to input, very accessible to newcomers), but on the other hand it's a fucking mess and eventually someone will get hurt by it.

Maybe a reasonable next step would be for there to be a "Node Foundation" which does not own the Node code, but DOES own the culture and community: in the sense that it holds the responsibility of centralizing cultural values, being a meeting and discussion place for the community, etc. It would have no "power" per-se (assuming that ownership of the code imparts some kind of power to Joyent, which it really doesn't).

It seems the primary goal of a foundation like that would be to provide clear and unambiguous cultural guidelines, (similar to "The Apache Way"), which are well documented, and mediate discussions around that culture. Additionally, it can be a place to discuss/coordinate/community events. An active entity to promote and expand the community and keep those human values intact.

Maybe the myth of Node Leadership should stop being a myth. Perhaps it's time for our de-facto leaders to step up to the plate and take responsibility for this. No one wants to assume that role because it feels too egotistical to do so.. but isn't it also irresponsible not to do it when you are uniquely positioned and capable of it? When the community clearly needs leadership?

If something like that foundation existed, Joyent (and/or StrongLoop) wouldn't have to risk it's business every time something new came up that as a problem for the community. They could refer to the Node Foundation for questions about culture/process/values/governance/etc, and just agree to follow the recommendations of that foundation. As an independent entity, "corporate interest" grumbling wouldn't factor in. Governance would have a forum to be discussed, without any direct "power" to influence those discussions.

Maybe it's not even a "foundation". Maybe it's just some documentation text on a website. Maybe it's just folks like @mikeal, @voodootikigod, @izs, @substack, @maxogden, @hackygolucky, and lesser folks like myself picking a central place to talk about what we feel is important to us and encourage other people to do the same, and giving them the tools they need to do that, and the tools they need to build more community.

That seems like something that could be run for almost no money, some time, and a lot of effort... and the best part; no one needs to approve it to get it started.

Sorry if I'm rambly, I usually don't talk about this kind of stuff. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment