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