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
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.
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.
Paper is Good for…
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.
steam Engines
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.