Skip to content

Commit

Permalink
doc: add technical values document
Browse files Browse the repository at this point in the history
As part of the [next-10](https://github.com/nodejs/next-10) we found
we needed to capture the project's technical values/priorities as
a starting point before discussing key technologies/areas for the
next 10 years of Node.js

This is a first cut that the team put together. The discussion
took place in a few meetings as well as this
[PR](nodejs/next-10#11). We believe the doc
should live in the core node repository as it is intended to
reflect the agreement of the collaborator base.

I think this is a good starting point but we also
acknowledge that only a small subset of the Node.js collaborators
have participated/commented so far. This PR should be a good
way to get additional review/input from the larger set
of Node.js collaborators.

Signed-off-by: Michael Dawson <[email protected]>

PR-URL: #35145
Reviewed-By: Christopher Hiller <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Beth Griggs <[email protected]>
Reviewed-By: Anto Aravinth <[email protected]>
Reviewed-By: Daijiro Wachi <[email protected]>
Reviewed-By: Stephen Belanger <[email protected]>
Reviewed-By: Ruy Adorno <[email protected]>
Reviewed-By: Andrey Pechkurov <[email protected]>
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Ash Cripps <[email protected]>
Reviewed-By: Ben Coe <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Pranshu Srivastava <[email protected]>
  • Loading branch information
mhdawson authored and addaleax committed Sep 22, 2020
1 parent ee1bcdb commit d81db1d
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 1 deletion.
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ For information on reporting security vulnerabilities in Node.js, see
* [Contributing to the project][]
* [Working Groups][]
* [Strategic Initiatives][]
* [Technical values and prioritization][]

## Current Project Team Members

Expand Down Expand Up @@ -633,5 +634,6 @@ Other keys used to sign some previous releases:
[Contributing to the project]: CONTRIBUTING.md
[Node.js Website]: https://nodejs.org/
[OpenJS Foundation]: https://openjsf.org/
[Working Groups]: https://github.com/nodejs/TSC/blob/master/WORKING_GROUPS.md
[Strategic Initiatives]: https://github.com/nodejs/TSC/blob/master/Strategic-Initiatives.md
[Technical values and prioritization]: doc/guides/technical-values.md
[Working Groups]: https://github.com/nodejs/TSC/blob/master/WORKING_GROUPS.md
62 changes: 62 additions & 0 deletions doc/guides/technical-values.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Technical values and priorities

The project uses these technical values to establish priorities and guide
collaboration.

## Values and priority level

* Priority 1 - Developer experience
* Priority 2 - Stability
* Priority 3 - Operational qualities
* Priority 4 - Node.js maintainer experience
* Priority 5 - Up to date Technology and APIs

## Value descriptions

### 1 - Developer experience
We value ensuring that developers are productive and enjoy developing
with Node.js. Some key elements of this include:
* Approachability (both technical and community)
* Great documentation
* Bundling friction-reducing APIs and components, even though
they could be provided externally
* Enabling/supporting external packages to ensure overall developer experience

### 2 - Stability
Whenever possible, we seek to insure that currently-working code continues to
work. We seek to keep the trust of developers and end-users. Therefore, we value
stability.
Some key elements of this include:
* Backwards compatibility
* Stable releases on a predictable schedule
* A strong safety net, including testing how changes
in Node.js affect popular packages
* Careful consideration of what goes into long term support (LTS) releases

### 3 - Operational qualities
We value keeping Node.js safe, performant, and lightweight.
We value enabling the ability to investigate and debug problems in
development and production. Some key elements of this include:
* High throughput (speed)
* Fast startup
* Small binary size
* Small memory footprint
* High-quality debugging tools
* Robust diagnostic tools (profilers, etc.)
* Responsible security practices

### 4 - Node.js maintainer experience
We value the productivity and happiness of the Node.js maintainers.
Some key elements of this include:
* Approachability of the codebase
* Good internal documentation and guides
* Low-friction policies and processes
* Good CI and tooling to make maintainers productive

### 5 - Up to date Technology and APIs
We value providing developers with modern APIs and technologies
following existing standards whenever possible.
Some key elements of this include:
* Participating in standards work and organizations
* Web API compatibility
* Supporting and exposing new technologies and standards through early adoption

0 comments on commit d81db1d

Please sign in to comment.