Standards Are Boring
Dave Cridland Apr 16
Let's start with containers.
Containers are so ubiquitous, they've become a shorthand for "shippable", and pretty much everything you can possibly think of has become, in effect, a rectangular container, with fastenings at each corner.
Yes, I really am talking about physical shipping containers, not Docker, Kubernates, or any of those. No software here, these are the big metal boxes, most often used as large boxes to put other stuff in. But they're not just used as a dumb box - in fact, the format has become the ubiquitous shape of pretty much everything you can think of.
The uses range from military drones to shipping tanks (as in either large containers of fluids, or tracked vehicles with big guns). There are refrigerated containers. There are containers that contain machine shops. There are sets of containers that contain large engineering workshops. There are deployable Pizza Huts (really!), that ship in containers. There are shipppable toilet blocks, and dog kennels. There's even my favourite, the delightfully-named TActical Reconnaissance Deployed Imagery System, or TARDIS - which is a sort of mobile office for RAF Tactical Imagery. This is where the term "containerized" comes from.
All of these work so well because once something is a container, it becomes trivial to ship and deploy - because the humble container is what everyone works to, because a bunch of people spent countless hours figuring out exactly what a container should be, in ISO 668 and ISO 1496-1.
Yup, the Intermodal Container, as it's formally known, is an Open Standard. And, as we all know, standards are boring, and not at all innovative. As someone who's worked in Open Standards for a long time, I've had this charge levelled at my work for decades. You'd expect me to reject it, but there's a significant amount of truth here, and it's actually something to be quite proud of.
The container itself is not very exciting. It is, if anything, deliberately made boring. By encouraging everyone to stick to the same dimensions, with the same twistlock fastenings at each corner, nobody can innovate and create, say, slightly bigger containers to squeeze out a few more inches of space.
On the other hand, by providing a stable, standardized platform of shippable, everyone gets to innovate with confidence on top - you know that if you build a hospital constructed of ISO shipping containers, it becomes shippable across the world on ships, lorries (trucks for the Americans), trains, and even some aircraft. The funny blocks on each corner secure your hospital units in transit, and act as lifting points for cranes. You don't have to actually check every ship, or truck, or train.
And in case you wonder, yes, someone has stuffed a hospital into containers. And then put it in a plane.
What's happened is that the International Standards Organisation, ISO, has taken the container and made it a commodity. There is literally nothing interesting about containers themselves. The innovation has all been done, and then ground away by the standards mill. You can't, by design, get a good or bad container. They just are.
But since you can ship a container - or anything that pretends to be a container - across the entire planet in a few days without worrying, people have innovated like crazy on top of the concept. While containers, and the standardisation of them, is not very innovative in itself, the innovation built on top of them is vast.
It'd be easy to point to the Web and think the same - but the Web is, in many ways, a terrible standard. It's huge, for one thing - a browser these days has to handle realtime video, transactional databases, multiple heavyweight languages for layout, styling, documents and of course the most byzantine programming language ever invented. And the goalposts are constantly moving, because it's an all or nothing thing.
So instead, let's look at email.
When email came on the scene, literally everyone had their own email systems. The venerable Sendmail was written simply to gateway between them all. Rapidly, the IETF devised a standard format for email, so at least once you got a message from one system to another you could understand it.
Eventually, though, transports and routing were all standardised, and basic ASCII messages became Boring - the ultimate goal for all standardisation work.
The innovators didn't stop, though - they devised hacks for encoding binary files into these ASCII messages. They developed arcane ways of sending more than just ASCII. They abused the message entirely to send commands, building entire systems on top of email - mailing lists and file servers for example (the former are still around, the latter have long-since died out).
Gradually, many of these were taken and made Boring, so we ended up with MIME, for example, which gave us more than just ASCII messages, with attachments, and - eventually - annoying HTML emails than an entire generation of marketeers would think were a really good idea. But all of these things have become, well, boring.
You can see counter-examples in spades, too.
Twitter, Google, and Facebook are all cases where we've failed to create a commoditized version of the fundamental concept, with the result that while Twitter, Google, and Facebook are themselves innovative, they don't drive much innovation at all.
You can think of it in fractal terms - as the bubble of commoditized, standardized concepts grows, the surface area upon which we innovate grows an a much faster rate - but that innovation alone doesn't provide the same foundation.
All of this has, though, an impact on how we design standards. In order to maximize that innovative surface area - the event horizon of boringness, if you prefer - we have to ensure that standards have sufficient extension points.
TLS, for example, has just undergone a major revision in the form of TLS 1.3, and much of this effort has gone into adding more extension points.
In the XMPP world, we've stuck with XML for nearly 20 years - not because it's quick to design and work with static structures, compared to JSON, but because its built-in support for namespaces means anyone can extend it easily, without clashing with anyone else, and without having to coordinate their work. This maximises the potential for innovation.
So while Standards might be boring, it's the kind of predictable, comforting boringness that provides the foundation for some astonishing leaps of innovation.
If you're interested in doing something Boring and not at all innovative, the IETF - Internet Engineering Task Force and the XSF - XMPP Standards Foundation are entirely free to participate in, and in both cases your contribution to the vital world of Boring will be hugely appreciated.