Interpersonal Computing

Reframing software engineering around networks of active learners and feedback loops driven by learning from incidents. Embrace the complexity inherent in human activity. Status of this page: a seed for a story about computing.

In the late 1970s, Steve Jobs observed what sets humans apart is that we are tool builders. He often told a story of a Scientific American article from the early 1970s comparing the efficiency of locomotion for various animals in which a human on its own was unimpressive, but on a bicycle was "completely off the top of the charts". See Bicycle for the Mind.

Bret Victor annotated a picture of a hammer to visualize how tools have two ends: one to fit the problem and one to fit the person. article

This metaphor from the dawn of personal computing has anchored our discourse about software engineering: one person riding a bicycle, or one person hunched over a keyboard, or scrolling over a single pane of glass. Even as Bret Victor ranted against the impoverished confines of the ubiquitous pane of glass, he stayed within the frame of an individual's relationship with computers.

Less well known, in the 1990s, Steve Jobs demoed NeXT computers with a metaphor of interpersonal computing. He imagined a story of people in an office collaborating easily through rich email and fax messages. youtube

YOUTUBE rrTag7nSHlw Steve Jobs demoing NeXT interpersonal computing in 1990s. youtube

Hmmm... maybe I'm looking for networked computing.

"Reasoning about software is challenged by uncertainty and nondeterminism in the execution environment and by the increasingly dominant role of data, especially with the advent of systems that rely on machine learning. The lens of our persistent myths illuminates the dissonance between our idealized view of software development and common practice." Myths and Mythconceptions. Mary Shaw. Carnegie Mellon University. https://doi.org/10.1145/3480947

The human side of distributed systems are teams of teams of software engineers writing tangled networks of microservices that maintain the illusion of personalized computing in our keyboards and behind the glass surfaces and microphones.

We're still dealing with computing as an extension of human capabilities, but the human side is entirely dependent upon coordinated activity of big numbers of people.

Maybe this image of the Lion Brothers riding a small pyramid of bicycles on a highwire is a better image of the kind of tools we build. site

Lion Brothers. Three Bikes on a High Wire. site

What I'm looking for in this image is the sense of interdependence between the bicycles. Modern computing is similarly dependent upon the skills and balance of the humans. It's just a lot less obvious in distributed systems than in a highwire act.

So the modern bicycle for the mind might be a lot more like the construction site for a skyscraper. Where the architectural design is taken from XKCD #2347. xkcd #2347

Dependency

What the highwire act has that XKCD's illustration doesn't have is the clear image of people working together with their machines to create a dynamic system.

And all of this is a setup to motivate interest in resilience engineering and the suggestion of putting learning from incidents at the center of a new software delivery lifecycle.

In which we ramble towards a vision for sustainable software development. What if you could organize engineering around learning and around incidents? Status of this page: scattered seeds, mostly incoherent