From d81db1dcb96c8a27798f94972cc4ed0039cb1ccb Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Thu, 10 Sep 2020 11:19:44 -0400 Subject: [PATCH] doc: add technical values document MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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](https://github.com/nodejs/next-10/pull/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 PR-URL: https://github.com/nodejs/node/pull/35145 Reviewed-By: Christopher Hiller Reviewed-By: Trivikram Kamat Reviewed-By: Richard Lau Reviewed-By: Beth Griggs Reviewed-By: Anto Aravinth Reviewed-By: Daijiro Wachi Reviewed-By: Stephen Belanger Reviewed-By: Ruy Adorno Reviewed-By: Andrey Pechkurov Reviewed-By: Gireesh Punathil Reviewed-By: Ash Cripps Reviewed-By: Ben Coe Reviewed-By: Rich Trott Reviewed-By: Tobias Nießen Reviewed-By: Joyee Cheung Reviewed-By: Pranshu Srivastava --- README.md | 4 ++- doc/guides/technical-values.md | 62 ++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 doc/guides/technical-values.md diff --git a/README.md b/README.md index 0d2d047ebac29b..ecacab8921ceba 100644 --- a/README.md +++ b/README.md @@ -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 @@ -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 diff --git a/doc/guides/technical-values.md b/doc/guides/technical-values.md new file mode 100644 index 00000000000000..b912f7610b8471 --- /dev/null +++ b/doc/guides/technical-values.md @@ -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