Agile Standards Development
Agile Standardization in CSS
A number of people have expressed concerns that the W3C process inhibits agile specification development. This need not be the case. Fantasai and Tab Atkins will share their experience of how the CSS Working Group develops a major Web technology as a living standard within the W3C process. We'll talk about techniques for successful modularization, the specification development process, the editor/WG authority split, and mixing sources of innovation. Steve Zilles will moderate and expand the discussion to how these techniques can be applied in other WGs.
Presented much more fully in Fantasai's blog post at http://fantasai.inkedblade.net/weblog/2011/inside-csswg/.
Agile Standardization in CSS
- Modularization Considered Helpful
- The real spec process
- Editor / WG authority split
- Sources of innovation
Modularization Considered Helpful
CSS 1 was tiny, and had no need for modules.
CSS 2 was large, and the lack of modules was severely painful. Each chapter was too tangled up with the others.
CSS 3 attempted to do modules, but ended up still being too interconnected. Dependencies killed us.
We finally got it right by rebasing CSS3 over a new 2.1 bedrock, and making the majority of CSS3 modules depend only on 2.1.
We are gradually rewriting the bedrock portions of 2.1 into CSS3 modules, but that doesn't stop the progress of other new modules.
The Real Spec Process
The W3C officially recognizes the following stages:
- Editor's Draft
- Working Draft
- Last Call
- Candidate Rec
- Proposed Rec
- Rec
The Real Spec Process
In practice, we treat the W3C process as having 3 stages:
Editor's Draft | (transient)
|
Working Draft | (Design)
|
Last Call | (transitional)
|
Candidate Rec | (Testing)
|
Proposed Rec | (transitional)
|
Rec | (Maintenance)
|
The Spec Maturation Process
We observe that specs mature in sub-stages that roughly map to the W3C process.
Exploring
| The spec is incomplete, rapidly changing, and might include many features that will be dropped later.
| pre-FPWD and early WDs
|
Revising
| The module is mostly complete and has a well-defined scope. The spec will go through several rounds of revisions still.
| mid-stage WDs
|
Stabilizing
| Spec is fairly stable at this point. Only minor polishing and LC comments are left. New feature suggestions are deferred to the next level.
| late-stage WDs and LC
|
The Spec Maturation Process
(cont)
Call for Implementations
| Spec is considered complete. While experimental implementations were welcome before, at this point implementations are officially requested for feedback. Testsuites are written here.
| beginning of CR.
|
Recommended
| Spec is considered stable and ready for wide use, though testing may not yet be complete, and minor issues might still come in for handling. To indicate this stage, we put the spec in our CSS Snapshot.
| late CR
|
Finished
| Spec is done and enters maintenance mode. The only changes at this stage are errata.
| Rec
|
Editor / WG Authority Split
We've found that neither the editor nor the WG should be responsible for all decisions. While the CSSWG is officially always in control, it delegates varying amounts of authority based on the spec's maturity level.
- Exploring - The editor is mostly autonomous. They only consult the WG to report major changes, and to ask for guidance or help.
- Revising - The editor handles most decisions, but seeks WG input for design-level changes or conflicts.
- Stabilizing - The editor handles feedback and makes changes in response, but seeks WG approval for anything significant.
- Call for Implementations - The editor only handles editorial changes on their own, and gets WG approval on all other changes.
- Recommended and Finished - Trivial editorial changes can be done by the editor. Significant editorial changes and all substantive changes require WG approval.
Sources of Innovation
Any debate over whether specs should be driven by standards bodies, or by implementations, or by web designers is pointless and wrong-headed.
A good spec combines contributions from all three sources at every stage.
Sources of Innovation
For example, just within the Backgrounds and Borders module:
- implementations lead
- Rounded corners
- designers lead
- Image borders
- specs lead
- Multiple backgrounds
At a module level:
- implementations lead
- Transitions, Animations, and Transforms
- specs lead
- Selectors, Multi-column Layout, Media Queries, Color
- total mashup
- Basic UI, Flexbox Layout, Text, Conditional Rules