The Many Facets of Software

Antoine Boxho
Takeo Engineering
Published in
4 min readDec 7, 2017
Source: https://www.theverge.com/

The software has been eating the world for a few decades. Operating systems, applications, websites, servers, and other pieces of software are now critical to our daily lives. I believe that in this cloud area, we need to categorize systems based on more human criteria: how users interact with them and what users can expect out of them.

In computers, user data is stored in the same memory as programs. Physically, both are stored as a bunch of ones and zeroes. When bits are read from memory, there is little difference between a jpeg image and an application. Yet we (humans) treat both very differently.

Systems are built for a variety of purposes and with adapted user experiences. Understanding these differences becomes easier once associated with well-known concepts from the physical world. The following sections attempt to categorize software into three groups: spaces, tools, and bots.

Spaces are somewhere you go to, to do something. They give you the feeling of being sucked in. Tools are used to achieve a specific task and can be transported from one place to the other. They do not store data but only act on it. Lastly, bots interact with humans as if they were humans.

Spaces

The Oxford dictionary defines a space as “A continuous area or expanse which is free, available, or unoccupied.” One of many people go and use space to achieve something. They shape it, make it their own. They can come and leave.

“Where Work Happens” Slack’s motto

Spaces don’t have to be physical. They can be digital. Slack is designed as space where teams can come together to collaborate and chat. It manages to create an experience similar to cloud office space; including a cloud coffee machine: the #random channel.

Source: https://slack.com/

Other examples of spaces include Facebook where anyone can interact with their friends, Tricount where teams manage their expenses, Dropbox where files are saved and shared.

Common characteristics of cloud spaces are:

  • Their shared nature: the state of space is shared by all participants. I.E. when viewing a channel in Slack, I’ll see the same as all other members of my team. Several similar spaces can exist next to each other (my team vs your team).
  • The absence of versioning: since spaces are shared, everyone has to be on the same application version to access the space.
  • User experience (code) is tied to data: the data can be exported or imported but it lives inside the space.

Tools

Photo by George Hodan

The Oxford dictionary defines a tool as “a device or implements, especially one held in the hand, used to carry out a particular function”. While spaces are shared and contain data, tools are stateless and can be versioned.

In the physical world, you’d use a hammer (tool) to hang paintings in your house (space). The digital equivalent would be to use Microsoft Word 2016 (tool) to edit a file saved on your desktop (space).

Common characteristics of cloud tools are:

  • They are typically versioned: Word 2007, Word 2010, etc.
  • They are not shared. Different people using different tools on the same data is not a problem.
  • They contain (little) data. Typically only configuration data is stored within the tool.

Bots

Photo by Raj Verma

Bots are there and they are determined to stay. Although the concept dates from the advent of the Internet, bots are becoming increasingly used thanks to the popularity of chat platforms such as Messenger, WeChat or Skype.

Bots interact with humans as if they were humans. They are independent actors that communicate with us through chat, voice or video. Popular examples include Alexa, Siri or Cortana.

Common characteristics of bots are:

  • They interact as if they were human. They might send you emails, text messages or even call you.
  • They can act without a human sending a command. Eg. a stock market bot might decide to buy or sell shares on its own.
  • Several bots can exist next to each other with the same ‘brain’. My assistant has the same code as yours, yet they are two different beings.

Implications for design

Building spaces, tools, and bots can be done in a variety of ways. Some services or applications can act as a mix of two or all three types. Although at a lower level they all look the same, that is bits of data, from a higher-level perspective a human’s perception and its associated expectations change.

When designing an app or service, it is important to think about how humans will perceive it.

Drop me a message if something is not clear!

--

--

Antoine Boxho
Takeo Engineering

Engineer | Computer science 🖥 | Blockchain & other stuff…