A few months ago I wrote up some of the lessons we've learned the hard way in standards-based feature development. One area I glossed over was the role of "Explainers" (thread!):https://docs.google.com/document/d/1cJs7GkdQolqOHns9k6v1UjCUb_LqTFVjZM-kc3TbNGI/edit?usp=sharing …
-
-
Unlike most product features, standards-track features require (at least) two design documents: one for the public surface area of the feature and another for the implementation of that surface area within a given codebase. *NEITHER OF THESE DOCUMENTS IS A FORMAL SPECIFICATION*
Show this thread -
This is often disorienting for folks who are new the process or who have previously implemented specs but haven't designed new features.
Show this thread -
Coming at the problem of feature design with the tools of an after-the-fact implementer frequently leads engineers astray! Previous, successful designs had formal specs; why not this new idea?
Show this thread -
After all, specs fully detail every aspect of the prospective design, tightly defining terms and details that will need to be sorted out at some point. That is, it seems like a time-saving device to write down your idea in the language and structure of a formal spec.
Show this thread -
Nothing could be further from the truth! Feature designers are looking for *needs* to meet and *constraints* to satisfy. Fully specifying the minute details of a broad-strokes sketch introduces designers to the wrong level of detail, drowning them in complexity.
Show this thread -
To get to a full understanding of the constraints on the design space, you have to shop your design around to prospective users, engage them in the process of writing end-to-end code samples, and in general "swimming in" a proposal.
Show this thread -
Well-run design processes do multiple passes of this iteration process, and designs change dramatically as constraints and needs become iteratively clearer.
Show this thread -
Aside: anyone who presents finely detailed aspects of a design they just implemented in their runtime (and presumably are about to ship) is a metaphorical danger to themselves and others. They're wrong but they don't know how (yet).
Show this thread -
What this highlights is that the design phase of a feature requires malleability. Ideas need to be cheap enough to throw away. Over-tightly describing the details of a system creates pressure in the opposite direction: it increases the cost of change.
Show this thread -
Specs are also written with a different audience than high-level design docs: high-level designs outline the problem being solved (and for whom), describe how the proposed design compares to alternative approaches, and close the loop by showing how the proposal satisfies needs.
Show this thread -
Detailed specs, OTOH, describe to fellow implementers how the internals of a proposed design are rationalised against the spec-world. Nobody actually lives in spec-world, it turns out...yet like Klingon or Elvish, the language of it is beguiling to some and highly specific.
Show this thread -
And that specificity is needed. If something doesn't make spec-world sense, it'll eventually be modified such that it does (sometimes in a breaking way; which is bad)
Show this thread
End of conversation
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.
& Web Standards TL; Blink API OWNER
Named PWAs w/
DMs open. Tweets my own; press@google.com for official comms.