at one place. If I am reading this word, I am not reading that word; if I am looking at this page, I am not looking at that page. Even if what we describe in words is concurrent, event-driven, and multi-tasking, once it is in words it will look like it is single-tasked.
Text has few connections. The only real relationship that exists between physical words is next-prior. This is the sequence of the words and it is tracked in a single-tasking mode using the place-holding reading control mechanism. We have developed different flavors of next-prior at different levels of abstraction to approximate different types of connections. We group sets of concepts into sentences and then into paragraphs and into chapters. We assign different purposes to different chapters to use the physical proximity to model the logical relationship. We indent paragraphs to show decomposition or ownership and there is usually some implicit relationship of knowledge elements at the same indentation level. If we want to reinforce a sequential relationship we may assign numbers to the paragraphs. If we want to de-emphasize sequence and infer equivalence, we may annotate the paragraphs with bullets.
In the electronic version of the written word we are able to embed hyperlinks to “join” concepts together that are physically separated in the document. But while the hyperlink allows physical connection of ideas and quicker transition between them, it doesn’t clearly show proximity of the knowledge. On paper, the physical proximity
of ideas is still the strongest mechanism for associating knowledge.
Words have limited scope. There is a relationship between the understandability of a document and the number of words. We manage this complexity by the mechanisms I’ve described and by adjusting the abstraction level of the words we use—we can use fewer words, but only if the meaning of these words (which is often located elsewhere) is more “knowledgeful.” We see this clearly in certain disciplines such as the medical profession, which has created a domain-specific lexicon to allow more efficient communication. We have the option of using fewer and simpler words but then we inevitably convey less meaning since the sentences must contain less knowledge.
Insular association. Lastly, within one document, it is very difficult to associate ideas that are contained in another document. We do this through indexes and citations, but the ideas are still “further away.” When we want to really bring them together we have to rewrite the ideas and include them in the source document (with attribution). This uses physical proximity of the words to emphasize the logical relationship of the ideas carried by the words.
If we were to use words and paper (in either the dead-wood or the electronic form), to describe the behavior of a system, we would expect it to work well for those systems where the knowledge maps closely to the ontology of the medium, specifically systems that are: sequential, single tasking, control based, mostly consisting of localized knowledge (the proximate knowledge is related and related knowledge is proximate), all the necessary knowledge is local and the abstraction level of system statements does not require extensive external reference because either the definition is simple or the complexity is abstracted into the language statements. And, of course, the knowledge would not be too “big” or too “complex.”
Paper is not Good for… On the other hand, we should expect that describing the operation of systems using paper formats would not work well for systems that are: multi-
tasking, event-driven (especially out of state or time sequence), that need to interface with other knowledge repositories, especially where the abstraction level has not been defined and standardized, and that are large and complex.
If we look at the types of systems we were building a couple of decades ago, they fit well to the strengths of paper. They were silo’d, insular, control-based sequential systems that were, compared to today’s systems, rather simple. But we don’t build these kinds of systems much anymore. The systems we are building now are those for which the ontology of paper does not work very well and we have to rethink how we think about systems. Given that software is a knowledge medium, the future of software engineering clearly lies in constructing software artifacts using media, tools, and representational forms that:
˲ Can integrate knowledge both locally and remotely,
˲ Use different (and preferably programmable) representational forms than text that better lend themselves to the time- and state-based structure of the problem we are describing,
˲ Allow linking and manipulation of ideas remotely (for both machine operation and human understanding) and, most importantly…
˲ Are executable.
It is a common cliché that we are currently going through an “Information Revolution” that may be more profound in its consequences than the development of steam engines was in the Industrial Revolution. This is undoubtedly true, but it is missing one important point: the Industrial Revolution did not occur when we built steam engines, it occurred when we used steam engines to build steam engines.
The true information and computing revolution will not occur until we use software to build software; until we really use executable knowledge to create executable knowledge.
And lose that paper.
Phillip G. Armour ( armour@corvusintl.com) is a senior consultant at corvus international inc,. Deer Park, il.
References:
Archives