The cybernetic application

How can we build systems where information goes to live?

Systems thinker Stafford Beer said that “The purpose of a system is what it does.” A purpose (among several) of our information systems is, therefore, to sow confusion and disorientation among our ideas, leaving them disorganized, lost, and abandoned. The cybernetic application is one that — by it’s nature — helps the user avoid such errors.

To be more specific, applications for writing and organizing demand a tax in the form of confused, missing, duplicated, or abandoned writing projects, while we the users have no tools rightly shaped to help us turn things around.

A sketch by Stafford Beer of the the human nervous system, arranged so as to draw out the similarity with the viable system model, outlined below.
A sketch by Stafford Beer of the the human nervous system, arranged so as to draw out the similarity with the viable system model, outlined below.

This is because, in my view, applications typically lack the features we need to adapt our applications to our goals, such that our work might be viable, i.e. possessing the flexibility necessary to adapt to the mind-bending needs of a writer.

How might we build information systems that can help us achieve our goals — the cybernetic application?

Outline

I will cover the subject like this:

First, I will establish and explain two concepts from the field of cybernetics, outlined by Stafford Beer in The Heart of Enterprise:

  1. The viable system—which has the adaptability and internal structure necessary to endure
  2. Variety — the measure of said adaptability, and of the quantity of change in the environment

Second, I will compare and contrast the viable system described above with the conventional approach to building user interfaces today.

Third, I will consider the viable systems pieces that are missing/underrepresented today and consider how we might implement them, optimizing for the high-level goal of effective work and for the immediate goal of writing something comprehensible, findable and unique.

Fourth, I’ll try briefly to put things in perspective.

What is Cybernetics?

Cybernetics — from the Greek kybernḗtēs, referring to the person who steers a ship — is the study of systems that can endure and adapt to their environments. (It has nothing to do with cyborgs/cyberspace or, necessarily, computers.)

Personally, I think that Cybernetics is a candidate for a system of large-scale/universal organization that could combine maximum freedom and effective coordination.

I’m going to talk about viable systems—that can handle their internal state and respond to outside pressures. When a system can no longer handle either of these things, it is not longer viable: for instance, an organization is not viable if it can’t adapt to changes in its area of operation that threaten its existence.

Environments, areas of operation, systems, are complex: things need to be complex in order to have the necessary flexibility to adapt. For instance, nematode worm C. Elegans requires a little more than 100 million base pairs of DNA to store the forms and functions required for it to survive in its environment.

The relevant cybernetic term is variety: the number of things a certain thing can do; for instance, a subway turn-style can be in one of two and two positions only: fixed or free. For people and organizations, the variety is beyond comprehension.

Viable systems are so because they have a structure of organization that allows them to contain an astonishing amount of complexity, necessary to adapt to all the variety in their environment — while structuring that complexity such that their internals work together rather than exploding into chaos.

The viable system requires two parallel types of structure:

  1. Recursion, whereby every viable system contains other viable systems. For instance a company is made up of divisions, divisions of departments, departments of teams, etc. This continues all the way down until it stops making sense to divide things up (often when dividing a human being).
  2. System-Meta System, whereby a given viable system doesn’t organize the systems it contains by strict command, rather there is an arrangement that facilitates autonomous internal coordination, as well as other systems tasked with monitoring the system’s progress against its goals and adapting accordingly.
A diagram of Stafford Beer’s Viable System Model, showing Systems 1 (A through D), interconnected and stabilized by System 2, managed by System 3, and adapted by Systems 4 and 5.
A sketch by Stafford Beer of the viable system model, showing Systems 1 (A through D), interconnected and stabilized by System 2, managed by System 3, and adapted by Systems 4 and 5. Note the two modes of organization: System-Meta System, in which Systems 3–5 help achieve harmony among Systems 1, and Recursion, in that every System 1 shown contains an entire viable system as displayed.

Mapping the viable system to an app

Let me outline the elements of a viable system’s System-Meta System structure, one by one, as it might be set up in an application. For the sake of focus, I will discuss only the user interface, with only one form of variety: the size of any given thing (or “widget”).

Let’s say our application is for working with text; the user can create and open any number of pieces of text in any arrangement. Our user interface system works like most others: each thing on screen, usually a rectangle, is a “widget.” The menu button is a widget, the menu items are widgets, so is the menu.

System 1

If we say that our app is cybernetic, each widget is viable: it contains other widgets, or performs a function (e.g. displaying text.) Remember, this is recursive: any widget is simultaneously a System 1 for some other widget, while containing one or more Systems 1 itself.

A simple application mockup showing an app window with a single text box.

System 2

Imagine a widget that contains several other widgets that each display a pieces of text. These widgets (Systems 1) need a way to coordinate so as to most effectively distribute the available space. System 2 is tasked with facilitation: assessing what each widgets needs in the context of the whole, communicating to each the information or instructions it needs.

There are several valid approaches to negotiating space allocation to text widgets in a column:

  1. Fixed width, wherein every widget gets the same width, e.g. 300px
  2. Shared width, wherein every widget gets an equal share
  3. Proportional width, wherein every widget gets a share relative to the length of its text
A simple application mockup showing an app window with two text boxes of equal size.

System 3

This would be enough, where the text unchanging, and where there is no user input and thus no edits or new text pieces to display. But we need to do more than this: we need to respond to user input (and indeed to outside input such as others editing live material on our screen), such as by creating or closing text widgets — changes System 2 will need to navigate.

This is System 3, which responds to outside input, via Systems 2 and 1.

So, dear reader, is this a complete viable system? It might feel like it, but it lacks two necessary subsystems.

A simple application mockup showing an app window with two text boxes and a button to create a new text box.

System 4

The first missing piece is System 4, whose purpose is to monitor particular priorities in the environment — in our simple example, this would be specifically the text the user is working on and adjust how System 3 works so as to get our writing closer to where we want it. (More on this below.)

System 5

System 5 monitors the environment also, with the same goals, but 5 is tasked instead with judging the effectiveness of System 4 and changing how 4 operates accordingly.

Note that the absence of Systems 4 and 5 in our applications corresponds to a similar absence in our society: we promote hierarchy and command at the expense of harmony and adaptation. Indeed, any organization that fails to endure or complete its objective is by definition non-viable: we romanticize creative destruction and competition because they’re the only way we’ve figured out to get rid of systems we can’t change.

Let’s examine each of these missing systems in turn and explore how they might come to life in our application, with a real-life example.

Missing pieces

System 4, again

As discussed earlier, System 4:

  1. monitors the thing our application operates on (in our case text)
  2. measures things we care about
  3. alters the way System 3 works accordingly

There are of course uncountable ways in which we could set this up, so for the sake of simplicity I’ll discuss just one thing that System 4 can alter: how System 3 controls the relative size of widgets. Let’s say that System 3 currently defers entirely to System 2 regarding widget size; if we have four text widgets on screen, System 2 is configured to divide up the available space equally.

We can have System 4, therefore, intervene and make System 3 arrange things differently in certain circumstances:

Variety

Variety, as discussed earlier, gives as it takes; in writing, the more variety in your work, the more subtle its meaning; so is it more susceptible to misinterpretation. There is a sweet spot. We can control variety in complex systems by breaking them into smaller systems, so do we control variety in text by breaking it up into sections, paragraphs, sentences, clauses, etc. Take this famous example: “Woman without her man is nothing.”

This sentence has much raw variety relative to how short it is — we don’t know precisely how to break it down into clauses to establish, say, whether the woman or man is nothing. Take this alternative: “Woman, without her, man is nothing.”

A simple application mockup showing an app window with two text boxes and a button to create a new text box, one text box is larger, indicating the fact that its contents are more susceptable to misinterpretation.

With a little math, we can take a piece of text and assess how many different ways we could break it down; a variety coefficient. Different purposes and styles demand different variety coefficients: and I’m not here to tell you what’s right, nor should you listen for a second to Clippy or any other priggish construct for writing advice.

Rather, different writers should understand their purpose and their shortcomings (my sentences typically have too much variety) and should configure System 4 to help. In my case, I would configure it to make text with excessive variety larger, attracting my attention for edits.

Orphans

Orphans — pieces of information that aren’t referenced elsewhere or stored somewhere — are a chronic problem for writers and for information managers generally. They are guaranteed to be lost and forgotten. We can easily have System 4 spot orphans, and make them big or even full screen until we correct the situation.

A simple application mockup showing an app window with a textbox taking up the entire application window.

Déjà vu

Ever set about creating a document (say to consider a particular idea or track progress on something, etc.), and had the feeling that you’ve done so before? This is a chronic problem: people, and often several people, create different documents for the same purpose, shattering organization and killing time.

This is easy to detect: beyond simple text-similarity analysis, we should be able to analyze by structure. For instance, a given doc might begin with an opening paragraph, followed by an ordered list of headings, followed by a few paragraphs; there’s no reason why we can’t thus analyze and compare.

As you’ve no doubt gathered, high déjà vu scoring text could be made larger, with an invitation to the user to open a menu showing similar items, for possible merging.

With such simple tools to manage complexity, eliminate orphans and déjà vu, the user finally has a system whose purpose is to help writers succeed: to write, not confuse themselves or others, not lose their work or repeat themselves.

System 5, again

If System 4 answers the question “How should we adapt the behavior of System 3 in order better to promote our goals?” System 5 answers the question “How do we modulate the behavior of System 4 in order to promote the viability of our system?”

In our example, System 4 is increasing the size of text widgets that require attention: but is the user attending to them? Is the user actually completing articles more frequently? Are their fewer orphans and duplicates?

This is a moment to deploy Stafford Beer’s famous maxim:

The purpose of a system is what it does.

Which is to say that if you monitor your system — whose stated purpose is to do X — and find find it does Y and take no corrective action, you lose the right to say its purpose is X, as you have tacitly accepted that its purpose is Y (what it does).

Our societies are replete with such examples: take the justice systems internationally, which claim their purpose is to reduce crime, when in fact their real purpose is to multiply crime, though not infinitely — through denying convicts opportunities, and sending them to learn from other criminals in prison.

In our text system, System 5 will need to monitor some metrics too: namely average text variety, orphan and déjà vu coefficients, and even the number of articles marked as “complete” over time. Any or all of the above ideas might not work, and System 5 should identify this and modulate them or alert the user.

System 5 rounds off sharp edges, completing the control syste and making an application capable of fulfilling Beer’s injunction: the user can set out their goal, monitor the extent to which they’re actually achieving it, and if not, adapt.

Conclusion

This mode of operation can I think be used anywhere: not just for these purposes and via the size of widgets, but for organization, retrieval, information structure, links, citations, quotations and reuse, edit history.

Foremost, please don’t mistake this for purported writing tools of a different type, i.e. those that claim to know what good writing is and will tell you.

No, good systems should operate on things unambiguous, and questions computers can answer: like how many words are in a given sentence. Nor should the computer make any value judgement nor overreach in its recommendations; if your sentence is very wordy it might be confusing and it’s worth having a computer show you this, but it shouldn’t tell you how to make it make sense.

You may have heard me reference Ted Nelson when he explains how modern software takes the limitless associative and structural possibilities of computers and uses said machines to simulate paper. This is partly why things are so bad: paper simulation doesn’t support the breadth of tools we need for arrangement and analysis.

It may seem, meanwhile, that my recommendations are complicated. To the extent that I or someone else is successful in realizing them, it should be the opposite. These features shouldn’t shove themselves in your face, they should blend into the stuff of the interface, transparent yet, if necessary, fully explicable.

They should operate less like Clippy and more like real paper: reminding you of something important because a leaf is on your desk, indicating you might be losing track of things or have a problem finishing, because of piles of disorganization.

The cybernetic application should, therefore, let us regain control of our information, stopping it from forever slipping away and/or controlling us. By actually taking seriously the idea that the purpose of a system is what it does, we might if nothing else quantify how far we fall short.


The cybernetic application was originally published in UX Collective on Medium, where people are continuing the conversation by highlighting and responding to this story.

Need help?

Don't hesitate to reach out to us regarding a project, custom development, or any general inquiries.
We're here to assist you.

Get in touch