11cb0ef41Sopenharmony_ci# Technical values and their priorities
21cb0ef41Sopenharmony_ci
31cb0ef41Sopenharmony_ciThe project uses these technical values to establish priorities and guide
41cb0ef41Sopenharmony_cicollaboration.
51cb0ef41Sopenharmony_ci
61cb0ef41Sopenharmony_ciThese are the shared values as of this writing and will
71cb0ef41Sopenharmony_cievolve. We hope they are useful to people new
81cb0ef41Sopenharmony_cito the project in order to better understand which contributions
91cb0ef41Sopenharmony_ciwill be aligned with the current direction and as thinking
101cb0ef41Sopenharmony_cipoints when trading off between conflicting goals.
111cb0ef41Sopenharmony_ci
121cb0ef41Sopenharmony_ciThe factors influencing every discussion/decision are
131cb0ef41Sopenharmony_cidifferent and priority 1 does not always trump priority 2
141cb0ef41Sopenharmony_ciand so on.
151cb0ef41Sopenharmony_ci
161cb0ef41Sopenharmony_ci## Values and priority level
171cb0ef41Sopenharmony_ci
181cb0ef41Sopenharmony_ci* Priority 1 - Developer experience
191cb0ef41Sopenharmony_ci* Priority 2 - Stability
201cb0ef41Sopenharmony_ci* Priority 3 - Operational qualities
211cb0ef41Sopenharmony_ci* Priority 4 - Node.js maintainer experience
221cb0ef41Sopenharmony_ci* Priority 5 - Up to date technology and APIs
231cb0ef41Sopenharmony_ci
241cb0ef41Sopenharmony_ci## Value descriptions
251cb0ef41Sopenharmony_ci
261cb0ef41Sopenharmony_ci### 1 - Developer experience
271cb0ef41Sopenharmony_ci
281cb0ef41Sopenharmony_ciWe value ensuring that developers are productive and enjoy developing
291cb0ef41Sopenharmony_ciwith Node.js. Some key elements of this include:
301cb0ef41Sopenharmony_ci
311cb0ef41Sopenharmony_ci* Approachability (both technical and community)
321cb0ef41Sopenharmony_ci* Great documentation
331cb0ef41Sopenharmony_ci* Bundling friction-reducing APIs and components, even though
341cb0ef41Sopenharmony_ci  they could be provided externally
351cb0ef41Sopenharmony_ci* Compatibility and interoperability with browsers and other JavaScript
361cb0ef41Sopenharmony_ci  environments so that as much code as possible runs as is both in Node.js and
371cb0ef41Sopenharmony_ci  in the other environments
381cb0ef41Sopenharmony_ci* Enabling/supporting external packages to ensure overall developer experience
391cb0ef41Sopenharmony_ci
401cb0ef41Sopenharmony_ci### 2 - Stability
411cb0ef41Sopenharmony_ci
421cb0ef41Sopenharmony_ciWhenever possible, we seek to ensure that working code continues to work. To
431cb0ef41Sopenharmony_cikeep the trust of developers and users, we value stability.
441cb0ef41Sopenharmony_ciSome key elements of this include:
451cb0ef41Sopenharmony_ci
461cb0ef41Sopenharmony_ci* Backward compatibility
471cb0ef41Sopenharmony_ci* Stable releases on a predictable schedule
481cb0ef41Sopenharmony_ci* A strong safety net, including testing how changes
491cb0ef41Sopenharmony_ci  in Node.js affect popular packages
501cb0ef41Sopenharmony_ci* Careful consideration of what goes into Long Term Support (LTS) releases
511cb0ef41Sopenharmony_ci
521cb0ef41Sopenharmony_ci### 3 - Operational qualities
531cb0ef41Sopenharmony_ci
541cb0ef41Sopenharmony_ciWe value keeping Node.js safe, performant, and lightweight.
551cb0ef41Sopenharmony_ciWe value enabling the ability to investigate and debug problems in
561cb0ef41Sopenharmony_cidevelopment and production. Some key elements of this include:
571cb0ef41Sopenharmony_ci
581cb0ef41Sopenharmony_ci* High throughput (speed)
591cb0ef41Sopenharmony_ci* Fast startup
601cb0ef41Sopenharmony_ci* Small binary size
611cb0ef41Sopenharmony_ci* Small memory footprint
621cb0ef41Sopenharmony_ci* High-quality debugging tools
631cb0ef41Sopenharmony_ci* Robust diagnostic tools (profilers, etc.)
641cb0ef41Sopenharmony_ci* Responsible security practices
651cb0ef41Sopenharmony_ci
661cb0ef41Sopenharmony_ci### 4 - Node.js maintainer experience
671cb0ef41Sopenharmony_ci
681cb0ef41Sopenharmony_ciWe value the productivity and happiness of the Node.js maintainers.
691cb0ef41Sopenharmony_ciSome key elements of this include:
701cb0ef41Sopenharmony_ci
711cb0ef41Sopenharmony_ci* Approachability of the codebase
721cb0ef41Sopenharmony_ci* Good internal documentation and guides
731cb0ef41Sopenharmony_ci* Low-friction policies and processes
741cb0ef41Sopenharmony_ci* Good CI and tooling to make maintainers productive
751cb0ef41Sopenharmony_ci
761cb0ef41Sopenharmony_ci### 5 - Up to date technology and APIs
771cb0ef41Sopenharmony_ci
781cb0ef41Sopenharmony_ciWe value providing developers with modern APIs and technologies
791cb0ef41Sopenharmony_cifollowing existing standards whenever possible.
801cb0ef41Sopenharmony_ciSome key elements of this include:
811cb0ef41Sopenharmony_ci
821cb0ef41Sopenharmony_ci* Participating in standards work and organizations
831cb0ef41Sopenharmony_ci* Web API compatibility
841cb0ef41Sopenharmony_ci* Supporting and exposing new technologies and standards through early adoption
85