October 27, 2005

OPML, incremental development, Winer's gardening etc.

Re : OPML, Scribe says :

I think there's a difference between something that's been generically designed, and something that gets hacked into new situations.


Yep, and the evidence from everywhere is that the second is better than the first. That's what "worse is better" means. It's the basic message from "How Buildings Learn" (old buildings are more freeing) and the main insight of xtreme and agile programming (do one user story at a time) It's why a complete Longhorn rewrite was guaranteed to be late (and probably not much good) while Unix derivitives will roll all over it.

The reason is clear. If you start with something that works for one application, and then hack it for a second, you're only having to solve one problem at a time. If you try to produce something generic, up front, you're trying to imagine and solve all the problems at once.

Of course, as programmers we all know that indescriminate hacking can go wrong. But that's in the situations where you don't balance the hacking with the requisite golden rule : you have to keep refactoring to keep your system flexible and in good shape.

XP doesn't advocate incremental, test-driven development, except with a great deal of refactoring to eliminate redundancy. What Ward Cunningham calls "working the code". Stewart Brand, in HBL, calls this "the romance of maintainence".

Now, it might seem strange to apply this to a format like OPML which is, by definition, pretty much fixed and not going to be continuously maintained and improved.

But in fact, OPML isn't a fire-and-forget format. It's the ecosystem as a whole which is the platform. You should interpret Dave Winer's work gardening and tending the whole OPML ecosystem (much as he's done with RSS, podcasting etc.) as the equivalent of continuous maintenence and integration.

Hacking includes Winer's careful provision of the plumbing for the ecosystem : hosting for blogs, shared outlines, ping-servers etc; it includes the search for new applications and new connections that can be made with other developers and users. Even the sometimes petulant complaints about rivals "confusing the user" or "sabotaging" the standard are, in fact, a kind of maintainence; weeding out the rivals.

That last is not necessarily a good thing, but I'm starting to suspect it is significant for the overall health of the platform. Les Orchard won't make a public spectacle of himself to defend XOXO. Winer will to defend OPML. He's continuously needling, exploring, selling and otherwise refining its "use" pattern on the internet.

In this sense, Winer implicitly understands Shirky's rule that you can't separate social from technical. The platform is the combination of the two. (In fact, all platforms are, which is what makes them so fascinating.)


I would argue, that competition threatening the niche position of OPML is probably considerably larger (and quicker to innovate alternatives) than the world of Operating Systems - especially when viral factors ("everyone else has it") are taken into account.


I don't know if the competitive pressure on OPML is actually all that great. No-one except Dave is really promoting a vision of shared outlining. There are people writing better outlining clients, who'll support OPML anyway. And people who come up with rival formats for the aesthetic reason of "doing it properly" but aren't passionate about shared outlining as a platform.

Unless these two factions have some reason to make common cause and deliberately try to destablize the OPML ecosystem I don't see it. The biggest danger to OPML is that people just won't really get what it's all about and so it languishes in obscurity.

Actually, I can see a potentially huge rival for the widespread adoption of shared outlining : wiki. If I have to bet between shared outlining / OPML, and some kind of wiki (perhaps distributed between lots of clients with transclusion etc.) I'm probably going to bet on the wiki. (But perhaps I'm biased :-)

No comments: