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]>
  • Loading branch information
mhdawson authored and Trott committed Sep 13, 2020
1 parent 4109903 commit 90b77ca
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 0 deletions.
2 changes: 2 additions & 0 deletions 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 @@ -635,3 +636,4 @@ Other keys used to sign some previous releases:
[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]: TECHNICAL_VALUES_AND_PRIORITIZATION.md
66 changes: 66 additions & 0 deletions TECHNICAL_VALUES_AND_PRIORITIZATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Technical values and priorities

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

## Values and priority level

This is only a subset of the overall priorities, listing only
those which are at the top of the priority list. Anything on this
list is very important for the project despite the relative priorities shown.

* Priority 1 - Developer experience
* Priority 2 - Stability
* Priority 3 - Operational qualities
* Priority 4 - Node.js maintainer experience
* Priority 5 - Technology and API currency

## 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 want to earn the trust of developers and end-users. Therefore, we value
stability.
Some key elements of this include:
* Backwards compatibility
* Predictable and stable releases
* 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
* Diagnostic tooling (profilers, heapdumps, coredumps, 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 - Technology and API currency
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 90b77ca

Please sign in to comment.