Skip to content

Commit 35c9fc9

Browse files
committed
doc: add technical values document
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]>
1 parent 7fc1a4a commit 35c9fc9

File tree

2 files changed

+67
-0
lines changed

2 files changed

+67
-0
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ For information on reporting security vulnerabilities in Node.js, see
144144
* [Contributing to the project][]
145145
* [Working Groups][]
146146
* [Strategic Initiatives][]
147+
* [Technical values and prioritization][]
147148

148149
## Current Project Team Members
149150

@@ -635,3 +636,4 @@ Other keys used to sign some previous releases:
635636
[OpenJS Foundation]: https://openjsf.org/
636637
[Working Groups]: https://github.com/nodejs/TSC/blob/master/WORKING_GROUPS.md
637638
[Strategic Initiatives]: https://github.com/nodejs/TSC/blob/master/Strategic-Initiatives.md
639+
[Technical values and prioritization]: TECHNICAL_VALUES_AND_PRIORITIZATION.md
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Technical Values and Priorities
2+
3+
This document outlines the project's technical values and relative
4+
prioritization used when making tradeoffs.
5+
6+
## Values and priority level
7+
8+
This is only a subset of the overall priorities, listing only
9+
those which are at the top of the priority list. Anything on this
10+
list is very important for the project despite the relative priorities shown.
11+
12+
* Priority 1 - Developer experience
13+
* Priority 2 - Stability
14+
* Priority 3 - Operational qualities
15+
* Priority 4 - the Node.js maintainer experience
16+
* Priority 5 - Technology and API currency
17+
18+
## Value descriptions
19+
20+
### Developer Experience
21+
We value ensuring that developers are productive and enjoy developing
22+
with Node.js. Some key elements of this include:
23+
* Approachability (both technical and community)
24+
* Great Documentation
25+
* Bundling friction-reducing APIs and components, even though
26+
they could be provided externally
27+
* Enabling/supporting external packages to ensure overall developer experience
28+
29+
### Stability
30+
To avoid introducing churn into the Node.js ecosystem, we value stability
31+
and consistency across releases and avoid breaking changes.
32+
Some key elements of this include:
33+
* Backwards compatibility
34+
* Predictable and stable releases
35+
* A strong safety net, including explicitly testing how changes
36+
in Node.js affect userland packages.
37+
* Careful consideration of what goes into LTS releases
38+
39+
### Operational Qualities
40+
We value keeping Node.js safe, performant and lightweight as
41+
well as the ability to investigate and debug problems in
42+
development and production. Some key elements of this include:
43+
* Throughput (speed)
44+
* Startup time
45+
* Binary size
46+
* Memory footprint
47+
* Debug tooling (debugger)
48+
* Diagnostic tooling (profilers, heapdumps, coredumps, etc.)
49+
* Addressing security vulnerabilities in a responsible manner
50+
51+
### Node.js Maintainer Experience
52+
We value the productivity and happiness of the Node.js maintainers.
53+
Some key elements of this include:
54+
* Approachability of the codebase
55+
* Good internal documentation and guides
56+
* Low-friction policies and processes
57+
* Good CI and tooling to make maintainers productive
58+
59+
### Providing modern APIs and Technologies
60+
We value providing developers with modern APIs and technologies
61+
following existing standards whenever possible.
62+
Some key elements of this include:
63+
* Participating in standards work and organizations
64+
* Web API compatibility
65+
* Supporting and exposing new technologies and standards through early adoption

0 commit comments

Comments
 (0)