2017 yas been the year of Initial Coin Offers, or ICOs. Some US 4 billion has been raised by ICOs this year. Nor, for the first time, an ICO has been advertised on the London Underground.
I wonder about New Scientist magazine. A recent article on plant evolution is encased in a teleological argument:
“Plants have evolved forgetfulness to wipe out memory of stress”
An entity may do action A which has consequence X. But that is very different to saying that the entity did action A in order to achieve outcome X. The theory of evolution makes no assumptions of intentionality. Indeed, quite the reverse – the classical Darwinian theory assumes that outcomes of evolutionary processes (whether non-detrimental or not) are the result of changes (eg, mutations) that happen apparently by random chance. Only with epigenetics and modern Lamarckism is there perhaps a role for non-random changes.
Moreover, evolution is a theory at the species level and across time. It makes no sense to talk about evolution of an individual or of a single generation. Yet only individual plants and animals have any intentionality. Who or what is the entity that could have an intention for a species to evolve towards a certain goal? The entity would have to be both a cross-individual and a cross-generational collective. Ain’t such a thing, at least not in the material realm.
In late 2014, the first edition of DevCon (labelled DevCon0, in computing fashion), the Ethereum developers conference held in Berlin had a dozen or so participants. A year later, several hundred people attended DevCon1 in the City of London. The participants were a mix of pony-tailed hacker libertarians and besuited, besotted bankers, and I happened to speak at the event. Since New Year, I have participated in a round-table discussion on technology and entrepreneurship with a Deputy Prime Minister of Singapore, previewed a smart contracts project undertaken by a prominent former member of Anonymous, briefed a senior business journalist on the coming revolution in financial and regulatory technology, and presented to 120 people at a legal breakfast on distributed ledgers and blockchains. That audience was, as it happens, the quietest and most attentive I have ever encountered.
For only the second time in my adult life, we are experiencing a great dramatic sea-change in technology infrastructure, and this period feels exactly like the early days of the Web. In 1994-1997, every corporation and their sister was intent on getting online, but most did not know how, and skills were scarce. Great fortunes were to be made in clicks and mortar: IBM took out full-page ads in the WSJ offering to put your company online in only 3 months and for just $1 million! Today, sisters are urging investment in blockchains, and as much as $1 billion of venture funding went to blockchain and Bitcoin startups in 2015 alone.
The Web revolution helped make manifest the Information Society, by putting information online and making it easily accessible. But, as I have argued before, most real work uses information but is not about information per se. Rather, real work is about doing stuff, getting things done, and getting them done with, by, and through other people or organizations. Exchanges, promises, and commitments are as important as facts in such a world. The blockchain revolution will manifest the Joint-Action Society, by putting transactions and commitments online in a way that is effectively unrevokable and unrepudiable. The leaders of this revolution are likely to arise from banking and finance and insurance, since those sectors are where the applications are most compelling and the business needs most pressing. So expect this revolution to be led not from Silicon Valley, but from within the citadels of global banking: New York and London, Paris and Frankfurt, and perhaps Tokyo and Singapore.
Gibson Hall, London, venue for DevCon1, 9-13 November 2015. There was some irony in holding a conference to discuss technology developments in blockchains and distributed ledgers in a grand, neo-classical heritage-listed building erected in 1865. At least it was fitting that a technology currently taking the financial world by storm should be debated in what was designed to be a banking hall (for Westminster Bank). The audience was split fairly evenly between dreadlocked libertarians & cryptocurrency enthusiasts and bankers & lawyers in smart suits: cyberpunk meets Gordon Gekko.
Most people, if they think about the topic at all, probably imagine computer science involves the programming of computers. But what are computers? In most cases, these are just machines of one form or another. And what is programming? Well, it is the issuing of instructions (“commands” in the programming jargon) for the machine to do something or other, or to achieve some state or other. Thus, I view Computer Science as nothing more or less than the science of delegation.
When delegating a task to another person, we are likely to be more effective (as the delegator or commander) the more we know about the skills and capabilities and curent commitments and attitudes of that person (the delegatee or commandee). So too with delegating to machines. Accordingly, a large part of theoretical computer science is concerned with exploring the properties of machines, or rather, the deductive properties of mathematical models of machines. Other parts of the discipline concern the properties of languages for commanding machines, including their meaning (their semantics) – this is programming language theory. Because the vast majority of lines of program code nowadays are written by teams of programmers, not individuals, then much of computer science – part of the branch known as software engineering – is concerned with how to best organize and manage and evaluate the work of teams of people. Because most machines are controlled by humans and act in concert for or with or to humans, then another, related branch of this science of delegation deals with the study of human-machine interactions. In both these branches, computer science reveals itself to have a side which connects directly with the human and social sciences, something not true of the other sciences often grouped with Computer Science: pure mathematics, physics, or chemistry.
And from its modern beginnings 70 years ago, computer science has been concerned with trying to automate whatever can be automated – in other words, with delegating the task of delegating. This is the branch known as Artificial Intelligence. We have intelligent machines which can command other machines, and manage and control them in the same way that humans could. But not all bilateral relationships between machines are those of commander-and-subordinate. More often, in distributed networks machines are peers of one another, intelligent and autonomous (to varying degrees). Thus, commanding is useless – persuasion is what is needed for one intelligent machine to ensure that another machine does what the first desires. And so, as one would expect in a science of delegation, computational argumentation arises as an important area of study.
Over the last 40-odd years, a branch of Artificial Intelligence called AI Planning has developed. One way to view Planning is as automated computer programming:
- Write a program that takes as input an initial state, a final state (“a goal”), and a collection of possible atomic actions, and produces as output another computer programme comprising a combination of the actions (“a plan”) guaranteed to take us from the initial state to the final state.
A prototypical example is robot motion: Given an initial position (e.g., here), a means of locomotion (e.g., the robot can walk), and a desired end-position (e.g., over there), AI Planning seeks to empower the robot to develop a plan to walk from here to over there. If some or all the actions are non-deterministic, or if there are other possibly intervening effects in the world, then the “guaranteed” modality may be replaced by a “likely” modality.
Another way to view Planning is in contrast to Scheduling:
- Scheduling is the orderly arrangement of a collection of tasks guranteed to achieve some goal from some initial state, when we know in advance the initial state, the goal state, and the tasks.
- Planning is the identification and orderly arrangement of tasks guranteed to achieve some goal from some initial state, when we know in advance the initial state, the goal state, but we don’t yet know the tasks; we only know in advance the atomic actions from which tasks may be constructed.
Relating these ideas to my business experience, I realized that a large swathe of complex planning activities in large companies involves something at a higher level of abstraction. Henry Mintzberg called these activities “Strategic Programming”
- Strategic Programming is the identification and priorization of a finite collection of programs or plans, given an initial state, a set of desirable end-states or objectives (possibly conflicting). A program comprises an ordered collection of tasks, and these tasks and their ordering we may or may not know in advance.
Examples abound in complex business domains. You wake up one morning to find yourself the owner of a national mobile telecommunications licence, and with funds to launch a network. You have to buy the necessary equipment and deploy and connect it, in order to provide your new mobile network. Your first decision is where to provide coverage: you could aim to provide nationwide coverage, and not open your service to the public until the network has been installed and connected nationwide. This is the strategy Orange adopted when launching PCS services in mainland Britain in 1994. One downside of waiting till you’ve covered the nation before selling any service to customers is that revenues are delayed.
Another downside is that a competitor may launch service before you, and that happened to Orange: Mercury One2One (as it then was) offered service to the public in 1993, when they had only covered the area around London. The upside of that strategy for One2One was early revenues. The downside was that customers could not use their phones outside the island of coverage, essentially inside the M25 ring-road. For some customer segments, wide-area or nationwide coverage may not be very important, so an early launch may be appropriate if those customer segments are being targeted. But an early launch won’t help customers who need wider-area coverage, and – unless marketing communications are handled carefully – the early launch may position the network operator in the minds of such customers as permanently providing inadequate service. The expectations of both current target customers and customers who are not currently targets need to be explicitly managed to avoid such mis-perceptions.
In this example, the different coverage rollout strategies ended up at the same place eventually, with both networks providing nationwide coverage. But the two operators took different paths to that same end-state. How to identify, compare, prioritize, and select-between these different paths is the very stuff of marketing and business strategy, ie, of strategic programming. It is why business decision-making is often very complex and often intellectually very demanding. Let no one say (as academics are wont to do) that decision-making in business is a doddle. Everything is always more complicated than it looks from outside, and identifying and choosing-between alternative programs is among the most complex of decision-making activities.
How might two actions be combined? Well, depending on the actions, we may be able to do one action and then the other, or we may be able do the other and then the one, or maybe not. We call such a combination a sequence or concatenation of the two actions. In some cases, we may be able to do the two actions in parallel, both at the same time. We may have to start them simultaneously, or we may be able to start one before the other. Or, we may have to ensure they finish together, or that they jointly meet some other intermediate synchronization targets.
In some cases, we may be able to interleave them, doing part of one action, then part of the second, then part of the first again, what management consultants in telecommunications call multiplexing. For many human physical activities – such as learning to play the piano or learning to play golf – interleaving is how parallel activities are first learnt and complex motor skills acquired: first play a few bars of music on the piano with only the left hand, then the same bars with only the right, and keep practicing the hands on their own, and only after the two hands are each practiced individually do we try playing the piano with the two hands together.
Computer science, which I view as the science of delegation, knows a great deal about how actions may be combined, how they may be distributed across multiple actors, and what the meanings and consequences of these different combinations are likely to be. It is useful to have a list of the possibilities. Let us suppose we have two actions, represented by A and B respectively. Then we may be able to do the following compound actions:
- Sequence: The execution of A followed by the execution of B, denoted A ; B
- Iterate: A executed n times, denoted A ^ n (This is sequential execution of a single action.)
- Parallelize: Both A and B are executed together, denoted A & B
- Interleave: Action A is partly executed, followed by part-execution of B, followed by continued part-execution of A, etc, denoted A || B
- Choose: Either A is executed or B is executed but not both, denoted A v B
- Combinations of the above: For example, with interleaving, only one action is ever being executed at one time. But it may be that the part-executions of A and B can overlap, so we have a combination of Parallel and Interleaved compositions of A and B.
Depending on the nature of the domain and the nature of the actions, not all of these compound actions may necessarily be possible. For instance, if action B has some pre-conditions before it can be executed, then the prior execution of A has to successfully achieve these pre-conditions in order for the sequence A ; B to be feasible.
This stuff may seem very nitty-gritty, but anyone who’s ever asked a teenager to do some task they don’t wish to do, will know all the variations in which a required task can be done after, or alongside, or intermittently with, or be replaced instead by, some other task the teen would prefer to do. Machines, it turns out, are much like recalcitrant and literal-minded teenagers when it comes to commanding them to do stuff.
A recent incident reminded me of Nicolas Negroponte’s argument that a single wink (one bit of information) may communicate effectively between two people, and yet require a thousand words to explain to someone else.
The scene: A small group meeting of 5 people (an EC research proposal review meeting), none of whom know each other or have worked together before. The meeting chair, let’s call her Alice, wants another person, Bob, to endorse a particular outline plan of action. This plan does not entail him doing anything, but he is nonetheless resistant, and puts forward both reasonable and unreasonable justifications for not endorsing the plan. Alice tries another couple of arguments, but each of these meets similar resistance from Bob. At this point, Alice does not know what the rest of us think about her plan or Bob’s opinion of it.
Having heard the two sides, I decide that Alice is correct and that Bob should endorse the plan. But Alice, I believe, has not used the best arguments in favour of his doing so, and thus I add my voice to her side, giving a new argument to justify Bob changing his opinion. My argument fails with Bob, but leads Alice to think of a further argument, and both our arguments together have a consequence that completely rebuts Bob’s reasonable main defence for non-endorsement. When she presents this line (my argument + her argument + their joint consequence) to him, Bob wilts and agrees to endorse Alice’s plan.
However, just before Alice presents this line to Bob, she shoots me a quick look of conspiratorial deviousness, as if to say, “We got him, you and I, and in getting him, we have demonstrated our intellectual superiority and mental agility over him. Although we just met, we two have conspired effectively and enjoyably together.” It was a look of the most profound respect – a connection between equals, in the presence of someone whose persistent and unreasonable resistance to a reasonable proposal had revealed himself to be less committed to the agreed purpose of the meeting. And receiving it was the most profound of pleasures.
Three years ago, in a post about Generation Kill and Nate Fick, I remarked that military commands often need dialog between commander and commandee(s) before they may be rationally accepted, and/or executed. Sadly, a very good demonstration of the failure to adequately discuss commands (or purported commands) in a complex (police) action is shown by a report on the UC-Davis Pepper Spray incident.
Management textbooks of a certain vintage used to define management as the doing of things through others. The Pepper Spray example clearly shows the difficulties and challenges involved in actually achieving such vicarious doing in dynamic and ambiguous situations. And the poverty of Philosophy is not better shown than by the fact that the speech act of commanding has barely been studied at all by philosophers, obsessed these last 2,350 years with understanding assertions of facts. (Chellas, Hamblin, Girle and Parsons are exceptions.)