Messy beats tidy

Messypainting
Painting by Mark Chadwick

I was pleased to see James Clark admitting JSON has overtaken XML, at least for the web world, and William Vambenepe pointing out that RPC over HTTP is giving True REST a good kicking. They both imposed a lot of up-front demands on developers and promised a lot of automated benefits once the world caught up. Neither delivered.

They failed for web developers because they require planning and design to use effectively. Most of us barely have an idea of who our customers when we start a project, let alone a strong set of requirements. The strength of our world is that our systems are malleable enough that we can make it up as we go along. I spent most of my career in embedded systems and on the desktop, and it was an absolute delight to discover how simple it is to produce workable non-trivial applications on the web.

XML asks you to figure out a schema before you start. Proper REST APIs require providers to plan a set of URL locations and verbs to apply to those resources, and clients to figure out their conventions. Enthusiasts counter that you should be doing this sort of planning anyway to build a robust system, but that's a preference, not a law of nature. Doing a shoddy job quickly and learning from it often beats long development cycles.

Technologies like JSON, or APIs using HTTP for transport but with a domain-specific payload, fit into this chaotic development model. There's a similar dynamic with Hadoop, one of its biggest advantages is that you never have to pick a database schema, you just run jobs on the raw source files like logs or other data dumps.

The painful thing for any adult supervisor watching this sort of development is that they know how much technical debt is being accumulated. The reason it makes sense is that the debt almost never comes due. We re-write whole systems as the requirements change out from under us, projects fail (almost never for technical reasons) or we switch to a well-designed open source framework someone else has built. It's no free ride, you can see how hard it was for Twitter to retrofit their systems to cope with massive scaling, but the successful startups have been the ones able to move fast. We're in an era where punk rockers beat chamber orchestras.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: