Deciding the future of Corilla
David Ryan
8111

David, there are two fundamental modes of collaboration: showing and hiding. Showing means you create a platform in which everyone can see everything and thus fit their contributions into what is already there. Collaboration based on showing is fundamentally easy to implement, and there are lots of platforms out there that implement some flavor of collaboration by showing for documentation.

The problem with collaboration by showing is that it does not scale. In fact, it fails to scale in multiple directions. First, it does not scale because it depends on people being able to see everything and the more there is to see, the more overhead that creates, to the point where you spend all your time on communication and catching up rather than creating new work. Second, it does not scale for complexity or specialization of tasks. Everyone uses the same tools and if you add support for more functions, the tool becomes more complex for everyone, and if you don’t support more functions, the tool becomes less functional for everyone.

In the end, all documentation collaboration-by-showing products run into this impasse. It is a technology that is easy to start but hard to finish.

The alternative is collaboration by hiding. In collaboration by hiding, you segregate people’s work behind interfaces, reducing the amount people have to know about what their collaborators are doing as much as possible. This hiding may seem counter-intuitive as a collaboration strategy, but it is the only way to do collaboration at scale. This is why we now live in the age of the API. APIs are simply ways for developers to collaborate without having to know much about each other’s work. APIs hide implementation and data. An API is considers best which hides most.

Interfaces work by partitioning tasks and encapsulating and transferring information from one partition to another in a systematic and reliable way. For content, structured writing provides a method for capturing the information needed to partition tasks in a content system. Unfortunately, no existing structured writing system is actually designed to do this. They use structured writing for publishing and content management purposes, but any collaboration support they offer is largely collaboration by showing, with the added complexity of document and management markup imposed on all of the collaborators.

I believe there is another approach that can use structured writing to implement collaboration by hiding. (I describe it in my forthcoming book, Structured Writing: Rhetoric and Process, from XML Press.) It is also an approach that favors the development of semantically rich content, which is thought by many to be growing in importance.

But it is an area which has received little attention from tool developers. The model is a much greater departure from what people are used to, which always presents a challenge to anyone who is trying to sell something. But it has the potential to provide a way past the impasse that every collaboration-by-showing tool runs into in this space, and to do so without becoming a monster CMS.