Introspection of an Open Source Effort
A post mortem on my efforts on NodeSchool.
The following writeup is a personal reflection on my time on NodeSchool and why I quit it. This might be interesting for you if you wonder what is going on in the NodeSchool, how to deal with Open Source education, why I rarely comment anymore and there might even be some lesson hidden in here about how to not do Open Source.
In a sense it builds on recent articles about when to leave an open source project, what it feels like to be be a maintainer and a while back sustainable open source was a topic, more than once.
🌱 How I got started
For many years I have been working on OSS but after many set-backs and lonely efforts I have become careful not to just join any project when I first heard of NodeSchool.
At NodeFest 2014 we had the first NodeSchool in Tokyo. As part of the staff I was able to spend some time with maxogden and I found his effort in translating the first workshopper interesting and inspiring. He worked on implementing the translation for learnyounode.
Having Node.js learning material available in Japanese is important for the people here. So I thought: working on the translation of things is not time wasted. In fact, I stopped working on another project, that in-retrospect might have been better suited for myself, because I thought working on NodeSchool will be good for the community.
I avoided a common mistake of mine by setting a clear personal goal this time. By putting in effort I wanted to make sure that there are more NodeSchool developers and companies around to talk to. Unlike Node.js in the Rest of the world, in Osaka there was no active Node.js study group and the event community always consisted of the same people. So, about a month after the Tokyo NodeSchool I set up the NodeSchool Osaka events, which I would host on the 3rd Thursday of the month.
🌿 Becoming a maintainer
In the beginning of 2015 the IO.js discussion flamed up. Rod Vagg (author of learnyounode), Mikeal (active voice in the NodeSchool org group) and many others became occupied with this massive OSS effort rather than with NodeSchool or the PR’s that I sent (most of which were for translation efforts).
“If everybody moves to IO.js, who will take care of the good work at NodeSchool?”, I thought.
“I will not let NodeSchool die!“, I subconsciously decided.
At some point I was added as maintainer to workshopper and learnyounode and I could progress in my work without having to wait long for answers of those members.
🌊 Loosing grip
Then something weird happened… I felt like I became the only person answering issues. Was it my eagerness to answer questions? Was it my longing for a connection to a community (as a foreigner I lacked local connections)? Have I been unfriendly to people?
I felt very lost since then. All I wanted was to support the effort of other people: Provide tools, fix issues, clarify things. But suddenly I was alone, and that is a feeling that since haunted me with NodeSchool: Whenever I wanted something done I could simply do it: Just commit or create a PR and more times than not it didn’t get much response.
No oversight and little confirmation… What I contributed: Was it as the inventor intended? Did I do something that Max, Rod or Michael didn’t intend? Who owns this? (Who started it?)
The answer that I got when I asked who owns it was: “Intentionally no-one”. The NodeSchool is an international, open, effort. Any rules on what to work on would be counter-productive and in order to appeal to folks we should keep the doors open and light. (this is a transcription of the many conversations, most of which still archived in the orgs issue tracker)
I did not understand what that means at the first time (but I was intrigued) and since it only became slightly clearer. It was the first “education” project that I knew that was entirely open and studying a free structure was right in my ally.
😅 First struggles
NodeSchool thrived for a while. Many contributors contributed a lot of translations; new workshopper’s arrived from Australia twice a year and things were quite okay. More important to me: The NodeSchool Osaka event was running well. We had a steady attendance and the mentors were joining regularly. If it wasn’t for a silent voice in my head …
No member of the Osaka meetup stepped up as either mentor nor organizer. See, the problem is this: I am a loud, white male in Japan. And while my noisy and direct behavior itself isn’t really supportive at first place, what is worse is that the regular way how communities are organized (by a japanese alpha-male who acts like a sensei in a martial arts dojo) is not really working for me (I have tried to act the part).
The result is that the event has always been seen somewhat foreign. But something else was weird as well: While I tried to illustrate and learned from what the students asked me: the other mentors found it annoying… bothering even. And at no point came the self-inclined offer to take over the event. Even though I suggested it subtly and later directly at more than one occasion in order for this to become an actual community.
To his credit I need to mention that by some chance Abe Harafumi-san (who had a hard time to join on Thursday’s) started a few months back a weekend NodeSchool Osaka, that in turn I can’t attend for family reasons. Hopefully he is doing a better job than me.
😓 Burning out
Some time last year the mentors stopped showing up on thursdays (they also skipped on the weekends). All the time that I spent on NodeSchool, offline and online, took its toll on my salary and I had to focus on paid work. Nevertheless, there were some issues that bothered me. Issues that made it harder for me with my NodeSchool event so I pushed some initiatives to fix a few things. But at one point it all eventually collapsed. The code didn’t go anywhere, I was the only mentor and organizer of the Osaka Meetups and the issues with the workshoppers and other tasks just piled up.
I was exhausted. I tried to find someone that would pay my time on NodeSchool to relieve the pressure at home, but couldn’t think of someone to do that without compromising the NodeSchool goal. I knew that any half-assed way to ask for contributors wouldn’t get me anywhere, so I decided to collect my last energy to ask for help in a public message.
I knew that it would mean some more work to motivate the people to board on and have the discussions once more that I had so many times before. It was on borrowed time from my end but I didn’t see another way. I didn’t handle all the tasks well, and when one interaction was particularly unpleasant it finally poked the last hole in my confidence and motivation and I couldn’t go any further. I quit.
🤕 A look back
The main motivation for working on the NodeSchool was to “do good for the community” and today, after a few months of trying to get back on my feet I can’t help but think that NodeSchool doesn’t do that, maybe it even can’t.
While, sure, there is free material to learn Node.js, the material is not written by educators, and the language might be less than optimal — if not in english then in any of the translated languages. The translations are there but exactly because we have translated the workshoppers, it is extremely difficult to update them. All the translations might need to be updated as well.
This is a lot of continuing effort that would be acceptable if those taking on the effort would gain something from it. As with the mentors of NodeSchool Osaka I see the pattern that what is interesting at first loses its effect after a while.
🐃 Managing Motivation
Finding the time and space to regularly hold the Meetups is tough for every NodeSchool host and while it is nice as a marketing material for Node.js it doesn’t help much with transforming the attendees into a Workforce that uses Node.js.
A few hours a month can not replace a good book or, better, an actual school that teaches Node.js systematically and in a common tongue. Maybe it should not surprise that there are only few schools teaching Node.js since they are competing with a free public resource to study Node.js “Why should I pay to study that in school if I can get it for free at a meetup?”. Is the NodeSchool actually counter-productive to education for Node.js? Maybe. Does that reduce my confidence? Definitely!
What about a Sponsor for the workshoppers? The only sponsors of workshoppers I know are promoting their framework or product (like git-it or how-to-npm). After the initial effort, there is little or no motivation for those companies to pay their employees beyond the first version, I am not sure how many of those have been built after-hours. Getting an education company (that actually receives money for teaching Node) to pay for that seems unlikely because their edge in the education market is their material and teachers. Giving them away for free is against their interest.
What about sponsoring NodeSchool? Adding monetary support to NodeSchool is pretty hard because after receiving the money someone would need to decide how to distribute it. Without a proper hierarchy or decision process that seems impossible. Even if we could go for things like crowd-funding.
What about the Node.js Foundation? I have had a conversation with the Node.js Foundation about sponsoring and: it is unlikely. The purpose of the Foundation is to improve the standing of Node.js and more than paying for it their effort would be rather to find someone to do it. Which they do by the way (see orgs#422).
🤔 Future?
Now, I put one of the theories of Mikeal to the test:
it’s because we’re still there to do it.
The past few months I have not been there to do it. I asked JP Wesselink to remove me from the NodeSchool core team and didn’t answer anything organization related. Since I left: Riyadh Al Nur and JP Wesselink indeed continued handling the chapter org issues, but I have not seen any progress on a bigger-picture level. Lets see how the “Merge into NodeSchool”-event will fare. I am sure there is some future for NodeSchool, just likely without me.
I will continue to work on some workshoppers — but mostly for studying myself and I will keep it at my pace. I am not sure if I did anything good but maybe this article helps you get a bit of a picture for what it can mean to spend years of effort on OSS.
Wow, writing this was cathartic. Thank you for reading, I hope you can learn from it.