More than a year ago I had the pleasure meeting a man by the name of Amit Green. At the time we got to talking about lots of things, and eventually his arguments helped turn the tide on making the big changes required for Dojo 0.9. As a part of of those discussions, he convinced me to read this book, which in 2007 read as part wise tome and part time-capsule from a simpler, slower time in business. Perhaps the most important thing I took away from it was the difference between power and authority. To quickly summarize, "power" is the ability to affect change while "authority" is the right to make any given decision. It's easy to see how these are different: the person actually doing the work has all the power while the person who signed off on the spec has the authority. Sometimes these things are embodied in the same person but the minute they're not you have a "management problem". The solution isn't to just assume that one person will do everything; you'll get no division of labor that way which defeats the entire point of modern economics. Instead, you have to get everyone to respect the other parties such that authorized decisions represent the interests of those with power and that those with power have some agency.
But what happens when that process breaks down? When those with power forget that they have (or should have) instigating new decisions or framing them correctly? Or when everyone on the outside assumes that those with authority are the ones who can really make something happen? I'll argue that you get the web as we know it today.
As a case study in putting your faith in the wrong idols, you can't do better than posts like this which "blame the W3C" (via Molly). Blaming the W3C for not pushing the web forward is both humorously off-target and distressingly common. I've written about this before, but fundamentally you can't blame the W3C for failing to act because it's not the W3C's job to act. An MBA should be able to tease this out a bit more effectively – any decision only requires that you have answers for five questions: why? what? how? when? who?
Answering these for pushing the web forward is straightforward, even on a simplistic level:
- Why?: it's too hard to build reasonably sophisticated interactions with current web technology
- What?: new tags, JS and DOM APIs, CSS syntax, and renderer support for all of the above. Eventually, a spec or five reflecting these new technologies.
- How?: we could try asking the W3C to do it, but they don't have any power. When they've been left to their own devices, the W3C has failed. Miserably. Over and over and over again. Instead, browser makers should introduce new stuff and then agree to agree on it (via the W3C or similar organizations).
- When?: introducing new features in any given browser seems doable in short-order. In the case of Open Source browsers, the answer is "as soon as someone decides to invest in them". Competition has even spurred Microsoft to some level of action. The likely time-scale for new features over all, though, appears to be on the order of 5+ years. That's clearly not soon enough.
TODO: investigate ways to speed this up.
- Who?: browser makers and others in a position to affect the code that goes into the renderers we use.
Figuring out "how" leads you directly to "who" in this case. The action we all want is the sole purview and responsibility of the browser vendors and they alone have the power to push the web forward. The "web standards community" has made it clear that they'll need the imprimatur of some authoritative body where agreement can be forced, but that hasn't kept the browser vendors from taking the initiative there, either. The big, open questions then center around how the "web standards community" can make enough room for renderer vendors to try out new stuff, since that's how we get new things. Demanding agreement on what to do before trying it out demonstrably doesn't work, so it's then imperative that there be a mechanism for the web to iterate prior to standardization. In fact, I'll argue that this is now the biggest reason that Paul Ellis isn't getting the improvements he wants out of the web: there's no mechanism in place by which any browser vendor can take significant risks without incurring the wrath of a swarm of WaSPs, or worse. Attempts to even begin to lay the groundwork for such a mechanism have been shot down forcefully by may folks who, like Paul, view "fixing the web" as the W3C's job.
Standards bodies are animated only by the needs of industry to reduce costs by forcing vendors to agree on things. Like Open Source, they can act as a back-stop to the monopoly-creating power of network effects by ensuring that the price of software commodities eventually does reach zero. In this context, then, the W3C's only effective function is to drive consensus when visions for how to go forward diverge or lead down proprietary ratholes. Asking the W3C for more is the fast path to continued disappointment.
The W3C is just a sail and all sails need the wind to function. You can't blame the sail for the wind not blowing.