The Harmony Process

"Harmony" is the name TC39 uses for our standardization process. The process is simple but has been effective for making progress on design and consensus-building.


Proposals go through several steps before becoming part of a standard.


Proposals start out in the form of feature sketches (committee members typically refer to these as "strawman proposals" or "strawmen"). Feature sketches can be added at any time. They often arise from suggestions from the developer community.


When TC39 agrees that a feature is important and promising enough to consider for inclusion in the next edition of the standard, it gets promoted to official proposal status (often referred to as "achieving Harmony" or having "Harmony status"). Reaching proposal status is not a guarantee that a feature will be included, but it indicates a higher degree of confidence.

TC39 sets a deadline for accepting proposals for a given edition. The deadline for ES6 proposals was May, 2011; no new major proposals are being considered for ES6.


Finally, a proposal becomes an official feature of ECMAScript when it is included in an edition of the ECMAScript standard. TC39 aims to have at least two interoperable, production-quality implementations of a feature in major JavaScript engines before accepting it to the final standard.


Because TC39 has a reasonably large number of participants, it's not feasible to do collaborative design work with the whole committee. Instead, each proposal is shepherded by a small sub-group of "champions" (usually just 1 or 2 committee members). The champions do the design work for the proposal independently and report back to TC39 in face-to-face meetings and on es-discuss.