At a Glance

“Internet of Things” is a poor mental model of modern technology; rather, we have an “Internet of Actors” collaborating to solve challenges.


There’s problems with “Internet of Things” to conceptualize modern systems: it’s demeaning to the capabilities of the machines involved while simultaneously ignoring the role of human-machine collaboration in accomplishing goals. There’s three everday examples which exemplify the problem:

Firstly, consider a modern farm. A high end tractor (or other large machinery) is an active participant in the farming process, plotting its own course and actively deciding how to utilize its tooling. The farmer supervising these machines is simply omitted from the “IoT” model. As are cloud computing systems, which are increasingly used to integrate data and dispatch tasks – selecting crops to be treated for disease, noting which sections of the farm are ready for harvest, monitoring yields, etc.

Secondly, consider a modern warehouse. While humans perform many tasks related to stocking shelves and packaging products into boxes, increasingly self-directed or cloud-directed robots are used to move pallets around the warehouse to prepare for human work or to reorganize the stocking. These machines act independently of, but collaboratively with the human workers in the warehouse – often at the direction of a cloud-based control system directing both groups of workers. The “IoT” model fails to discuss the interplay between human and machine workers, and the role of cloud based systems in directing both.

Finally, consider even the classic case of “IoT” – a home wired with many “smart” devices. In a system which contains multiple voice assistants, eg Alexa devices, the devices coordinate through a centralized cloud server to decide which should respond upon hearing a request – analogous to a collection of customer service representatives glancing between each other to decide who will respond when you approach the desk and ask for help. Further, a common frustration is that each device has a single “profile”. This misdesign stems from viewing the device as a singular “thing”, for which it suffices to give it credentials (a profile) for it to connect to the internet. However, from an “Internet of Actors” perspective, it becomes clear that this device is facilitating an interaction between a human actor and a cloud-based actor – and the need to relay which human is making the request is immediately apparent. That misdesign would be avoided by a stronger mental model which more accurately reflects the interaction.

What to Do

The systems we’re trying to describe have become more sophisticated and more tightly integrated with the human actors. So we need to adopt a mental model that acknowledges this reality: an “Internet of Actors”.

Why and How

Ubiquitous language is a key tool in the development of technical systems. Choosing accurate terminology guides our mental model to reflect the external world, and our mental model ultimately decides the architecture of our systems. The act of programming is to convert this language into constructs within a formal type system, which can then be mechanically reasoned about (or “executed”). To do this well, it’s essential that we replace outdated expressions with ones that better describe the world as it currently exists. In this case, to change our mental model from a largely passive collection of objects described by “Internet of Things” to one that reflects the sophistication and collaborative nature of modern systems, an “Internet of Actors”.

Change your language; change your model; improve your technology.