Developing software teaches us to design interfaces.

Developers talk about interfaces all the time. Even in the back end: APIs are crucial, because they let us connect our new programs into the world of existing software. They let us build on what exists. They let us build subsystems, and build higher-level systems using those.

In real life, I talk about interfaces. An autonomous team still needs to fulfill an interface to the larger system, to report what’s happening. (Often that API is JIRA.) Children play pretend, each in their own world; adults use Dungeons & Dragons to make their imagined personas interoperable with other people’s. D&D is like an API for pretend.

The word “interface” is new. New enough that in Spanish, the word for “interface” is… “interface,” because they didn’t have a word for it before the English one gained favor.

interface (n.)

1874, “a plane surface regarded as the common boundary of two bodies,” from inter- + face (n.). Modern use is perhaps a c. 1960 re-coinage; McLuhan used it in the sense “place of interaction between two systems” (1962) and the computer sense “apparatus to connect two devices” is from 1964.

The modern term is from systems thinking and software systems. Scientists can observe that there is a boundary between two systems, and study what happens there. But developers have a different view: we expect interfaces to be designed. We recognize the value of explicit, deliberate, carefully crafted APIs.

I apply that expectation to social systems. Starting with D&D5e as a documented API, a group of people can negotiate which rules we follow and which we flex. In a team, distinguish “how we track our work” from “how the larger organization senses our work”; this gives us the option to implement them separately.

In a relationship, we can default to unstated cultural formulas, or we can discuss what matters to each of us and craft our own boundaries. As a parent, I can observe that my children respond more usefully to redirection than confrontation, and choose to interface that way. Most social situations allow for more ambiguity than a detailed protocol specification, yet that internalized concept of “interface” helps my thinking.

An interface is more than a boundary. It is an opportunity to design our interactions.

Take that opportunity in software and elsewhere.