nodejs / board

The Node Foundation Board of Directors

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Q&A w/ @feross on Individual Membership Candidacy

mikeal opened this issue · comments

This thread is for asking @feross questions regarding his run
for the Node.js Foundation Board of Directors.

(A) If elected, what do you envision would be three most important issues that need to be addressed and how would you go about advocating for / resolving those?

(B) In a single sentence, how would you describe the role of the person elected to the board?

Hi @feross, thanks for running to be an individual member of the board. I read your application and I was hoping you could expand more on how you think the NodeJS Board can improve "Being nice humans" within the ecosystem. What do you hope to accomplish should you be elected?

  1. What do you see as the most significant obstacle to node.js's continued growth?
  2. What do you think the node.js foundation can do to address your answer to #1?

I was at Arctic JS (a conference I helped organize) when this issue was opened. Sorry for missing it. Here are my responses!

If elected, what do you envision would be three most important issues that need to be addressed and how would you go about advocating for / resolving those? (@jasnell)

1. Education.

The nodejs.org website should provide best-in-class documentation and tutorials.

We need to do better at onboarding new community members. There are actually lots of resources available (from NodeSchool, a decent start at some official node.js guides, substack's streams handbook, and other community efforts) but they're all in disparate locations. So most newbies end up struggling alone, begging for advice in #Node.js on IRC, resorting to outdated StackOverflow answers, or worst of all, using dubious tutorials published by SEO specialists.

We need friendly tutorials that are freely available from the nodejs.org homepage, available in multiple languages. This gives us the best chance of getting newbies from all sorts of diverse backgrounds up to speed on the Node way of doing things: small modules (modules that do one thing well), semantic versioning, best practices, etc. This also levels the playing field for folks who are less comfortable asking for help, or who come from underrepresented backgrounds.

The benefits to the ecosystem would be enormous and immediate, and the monetary investment to produce such material would be minimal. (Not more than one full-time staff writer, i.e. $60-80K per year. Of course, community contributions would be welcome too.)

2. Invest in the Commons.

There is a lot of talent in the Node community! We’ve created so many clever, beautiful, and amazing packages. Most start out as experiments, but some eventually rise above the rest, and become heavily relied upon as a sort of assumed common infrastructure.

You know the packages I'm talking about: through2, request, debug, glob, minimist, browserify, mkdirp, ws, minimatch, inherits, resolve, tap/tape, and many, many, more.

These packages are usually maintained by folks who also have 100s of other packages vying for their attention. So issues and PRs languish while these individuals struggle to deal with stress and burnout. Those who quit their jobs to do open source full-time often struggle to maintain a decent standard of living.

I know for a fact that several of the most talented people in our community live without a reliable source of income or even basic healthcare, despite the fact that their packages power the apps and websites of many of the richest corporations in the world. This is a tragedy and an injustice.

I think the Node Foundation should play a role in solving this problem by investing in the commons, i.e. finding ways to support maintainers of packages that are critical to the health of the larger Node ecosystem. This would result in more robust and secure packages – so it's worth doing because of the ROI alone. But, even more, it is the right thing to do by the people who've helped to make Node the massive success that it is today and the new folks who will continue to maintain this huge common infrastructure in the future.

If I'm elected I promise to dig into this important issue and figure out a sustainable way to support the common infrastructure that we all rely upon to get stuff done.

3. Community outreach.

The average Node user who's busy spending their time Getting Things Done™ doesn't have time to proactively participate in WGs (working groups) or the GitHub issue tracker. This means that their use cases and unique circumstances might not be taken into account when changes are made to Node.

Product-first startups actively seek out learnings from their customers and iterate based on that real-time feedback. We can do the same. We should have ongoing efforts to bring average users into the development process to help set priorities.

The current Node board skews heavily towards corporations. There's nothing wrong with corporations, but we also need to learn about the average user's use cases, needs, and wants. As Node matures, we need to be careful to respect all the disparate, weird, and wonderful use cases that exist: IoT, robots, P2P, distributed apps, Electron apps, front-end development, data science, academic research, numerical computing, drones, alternate JS VMs, big data processing, etc.

We're already doing a great job with WGs, but a more proactive approach would help us find users who aren't willing (for whatever reason) to step up and be a part of WGs and the GitHub issue tracker.

In a single sentence, how would you describe the role of the person elected to the board? (@jasnell)

The board member's role is to fight for the users.

How do you think the NodeJS Board can improve "Being nice humans" within the ecosystem? What do you hope to accomplish should you be elected? (@rosskukulinski)

As previously mentioned, I think the Node Foundation should play a role in supporting maintainers of projects that are critical to the Node ecosystem, both inside and outside of Node core.

I have a lot of empathy for maintainers suffering from open source burnout, a never-ending queue of unresolved issues/PRs, and the difficulty of balancing work and open source. These people do the most important work in the Node ecosystem and it's often completely behind-the-scenes, unpaid, and thankless. They're responsible for Node's enormous success, and they could really use funding and assistance from the Foundation.

The Foundation should do what it can to support these folks because it's the right thing to do. Such support could come in many forms:

  • Providing support to improve package documentation, via a dedicated, paid documentation person.
  • Directing eager new potential contributors to "help wanted" or "good first contribution" GitHub issues across various projects in the ecosystem.
  • Providing assistance to maintainers whose modules have been affected by security issues, like the recent buffer issue in ws. This would help them to Do The Right Thing™ during what's always a really stressful and challenging situation.
  • Providing financial support to get important/difficult issues fixed in modules that everyone depends on.
  • Providing mental health services to community members who need help.
  • Outreach to increase the diversity of contributors to Node core and ecosystem projects. This benefits the whole community by bringing in new ideas and making it a better representation of society as a whole.
  • More ways that I haven't thought of yet. Suggestions welcome!

These are all things that I think the Foundation ought to do, and they're all things that would be pretty difficult for anyone else to execute well.

1. What do you see as the most significant obstacle to node.js's continued growth? (@jden)

This isn't an issue for Node right now, but I think it's a risk that all projects face as they mature and get a lot of vested interested involved in the governance of the project. And that is:

Not listening to the needs of actual, real users.

It should be a constant priority of any open source project, WG, or standards body to be constantly increasing the level of input from actual users. This has to be a proactive effort and it should be a top priority.

Otherwise, we risk wasting effort solving problems that only a small subset of users have and squandering our limited resources.

2. What do you think the node.js foundation can do to address your answer to question 1? (@jden)

The Foundation should seek input from the community about use cases, pain points, and needs. The Foundation should share the results of its research with the TSC (technical steering committee) so that user feedback is part of the decision-making process whenever significant changes to the Node platform are being considered.

Whenever there's an issue where the TSC would benefit from more information from the community, but they lack the time or resources to get that information themselves, they should be able to rely on the Foundation to step up and help out.

Here's a concrete example of what I'm talking about: the Foundation should support (through funding or otherwise) existing TSC member efforts to analyze the usage of the various Node core APIs in the wild so better decisions can be made when APIs are being deprecated. This process has been a bit informal and haphazard in the past, but with Foundation support we can make this infrastructure more rigorous, and reduce the risk of breaking the ecosystem when we accidentally deprecate things too soon.

Even better, when deprecation inevitably does happen, the Foundation should consider devoting resources to helping package maintainers migrate from deprecated APIs to supported ones. When we support the ecosystem, we all benefit.

Election is over, results are posted.

Congratulations @feross - let me know if there's anything I can do to help you in your role.