Moore's Law implies more machines. As each successive generation
of processor technology gives rise to exponentially more application possibilities,
intelligence is becoming a common feature in stuff that was once dumb.
Homes, home appliances, automobiles, consumer devices, communication devices
of all kinds, all benefit from the transistor-spiked virtuous cycle first
articulated by Moore. Processors now outnumber humans and will continue
to surpass the growth rate of the human population for the foreseeable
future. As such, even while machine-to-human (m2h) communication is growing,
machine-to-machine (m2m) communication (and therefore interfaces) as a
class of communication, is growing considerably faster. Facilitating that
growth is a "teleological vector" for software development, which is to
say that in order to facilitate the growing m2m class of communication,
we must assume as a purpose the need for that communication as goaded by
Moore's Law.
Similarly, the goad for "innovation" is that of the opportunity promised
by Metcalfe's Law. Metcalfe's Law simply states that the number of possible
connections in a network is a function of the square of the number of nodes
on that network. The opportunity
for connection can be viewed from an economic perspective as a fundamental
primitive enabling commerce. Indeed, transactions in a computer science
sense are just as valuable as transactions in a business sense, as providing
the bases for business conducted via the network. Hence, viable ecommerce
is dependent upon Metcalfe's Law for certain threshold values, which we
are still discovering.
Gilder's Law too affects opportunity, which goads innovation. With rapidly
increasing bandwidth possibilities, the rate of innovation may begin to
strain the ability of the fitness landscape to sufficiently test it, which
is to say that future bubble economies are not unthinkable. Without question,
increasing bandwidth is at least giving rise to increasing storage needs,
representing commodity growth potential for years to come. But the possibilities
that come with some near-future threshold of personal bandwidth should
strain all existing service models. As such, Legacy consuming Innovation
as an incremental function of time is misleading in that true innovation
will always give rise to ontologically disruptive events, which changes
the very incremental improvement assumptions of the fitness landscape.
the noosphere grows into the adjacent possible
Figure 2: (Click on image to enlarge) Software Teleology: the configuration space
for software interfaces is shaped by technology's defining forces.
Elemental Goads (the Nth Laws) drive Eric Raymond's noosphere (legacy)
persistently into Stuart Kaufman's adjacent possible (innovation).
The measure of Guilder's Law above is average number of megabits per
node-second (Mb/n-s). Note that the X and Z axes can effectively be folded
together for illustrative purposes.
But given the growing balloon of legacy interfaces, which are goaded
by the exponential Net Effect forces we've identified, and the quadrants
that emerges when we juxtapose the goading forces along their respective
interface continuums, a model emerges which we can call Software Teleology.
The three dimensions of this configuration space are the Net Effect forces.
Moore's Law implies exponentialy more machines in time. Hence, m2m
increases faster than m2h communications. Metcalfe's Law is simply
expressed as the potential value of the network expressed as a function
of the possible connections that can be make. And Gilder's Law expresses
the average number of megabits per node-second workwide. Thus, as
the number of nodes increases (which the model reflects indirectly via
Moore's Law), the number of node-seconds increases correspondingly.
Purpose and Placement
Figure 3: Java Platform teleological positioning (Click to enlarge).
We can use the model to chart "purpose" from at least two perspectives,
and provide insight into software design considerations in doing so. At least
two fundamental perspectives to consider are:
1. What is the purpose of the software I'm writing wrt:
- Legacy devices, infrastructure and institutions viz. the interfaces they expose?
- new devices and their interfaces?
- human beings and their interfaces?
2. What is the purpose of the underlying components
and platforms I elect to utilize?
"Purpose," in the context of this discussion, means an analysis of
fuctional and interface requirements as well as the technical and business
problems that we are attempting to solve. This in addition to a mindful
reflection on the affects of the cited forces and the technical and business
directions implied by our interaction with others in an envirnment shaped by
those forces.
Answering those questions regarding "purpose" can lead us to consider
the related concept of "teleology." Let us specify that teleology is purpose,
cognizant of vector and landscape. By vector, we can further specify that
there is a direction implicit in choices made on behalf of a software project;
that rather than a random walk, a teleological vector implies a mindful
reflection of the goading forces which shape the fitness landscape.
A teleological
vector could therefore be assumed to be a characteristic of any piece of
software we may wish to discuss. Which is to say that it is a fair question
to ask, "Where does your software want to go (today)?"