|
| 1 | +# Technical values and priorities |
| 2 | + |
| 3 | +The project uses these technical values to establish priorities and guide |
| 4 | +collaboration. |
| 5 | + |
| 6 | +## Values and priority level |
| 7 | + |
| 8 | +* Priority 1 - Developer experience |
| 9 | +* Priority 2 - Stability |
| 10 | +* Priority 3 - Operational qualities |
| 11 | +* Priority 4 - Node.js maintainer experience |
| 12 | +* Priority 5 - Up to date Technology and APIs |
| 13 | + |
| 14 | +## Value descriptions |
| 15 | + |
| 16 | +### 1 - Developer experience |
| 17 | +We value ensuring that developers are productive and enjoy developing |
| 18 | +with Node.js. Some key elements of this include: |
| 19 | +* Approachability (both technical and community) |
| 20 | +* Great documentation |
| 21 | +* Bundling friction-reducing APIs and components, even though |
| 22 | + they could be provided externally |
| 23 | +* Enabling/supporting external packages to ensure overall developer experience |
| 24 | + |
| 25 | +### 2 - Stability |
| 26 | +Whenever possible, we seek to insure that currently-working code continues to |
| 27 | +work. We seek to keep the trust of developers and end-users. Therefore, we value |
| 28 | +stability. |
| 29 | +Some key elements of this include: |
| 30 | +* Backwards compatibility |
| 31 | +* Stable releases on a predictable schedule |
| 32 | +* A strong safety net, including testing how changes |
| 33 | + in Node.js affect popular packages |
| 34 | +* Careful consideration of what goes into long term support (LTS) releases |
| 35 | + |
| 36 | +### 3 - Operational qualities |
| 37 | +We value keeping Node.js safe, performant, and lightweight. |
| 38 | +We value enabling the ability to investigate and debug problems in |
| 39 | +development and production. Some key elements of this include: |
| 40 | +* High throughput (speed) |
| 41 | +* Fast startup |
| 42 | +* Small binary size |
| 43 | +* Small memory footprint |
| 44 | +* High-quality debugging tools |
| 45 | +* Robust diagnostic tools (profilers, etc.) |
| 46 | +* Responsible security practices |
| 47 | + |
| 48 | +### 4 - Node.js maintainer experience |
| 49 | +We value the productivity and happiness of the Node.js maintainers. |
| 50 | +Some key elements of this include: |
| 51 | +* Approachability of the codebase |
| 52 | +* Good internal documentation and guides |
| 53 | +* Low-friction policies and processes |
| 54 | +* Good CI and tooling to make maintainers productive |
| 55 | + |
| 56 | +### 5 - Up to date Technology and APIs |
| 57 | +We value providing developers with modern APIs and technologies |
| 58 | +following existing standards whenever possible. |
| 59 | +Some key elements of this include: |
| 60 | +* Participating in standards work and organizations |
| 61 | +* Web API compatibility |
| 62 | +* Supporting and exposing new technologies and standards through early adoption |
0 commit comments