A Better Way to Design Enterprise SaaS Systems
Stop using the system!
tl;dr Any system is only useful if it is understood by its users. By shifting the perception from “using” a system to “collaborating” with other actors, people will feel more at ease and will be more engaged.
In my recent article “Non-Human Collaborators in an Enterprise SaaS System”, I mused about the need for a better paradigm for Enterprise SaaS systems. To understand in part why I make this bold statement, I wanted to focus on the “non-human actors” angle.
My thinking was profoundly influenced by Domain-Driven Design (DDD), described best by Eric Evans. The promise of DDD is to build software that can be understood by all because it is communicated via shared business concepts specific to the business domain. Based on this thinking, when we analyzed our software, we were able to categorize the code into domain objects (things), services, and what I will call “glue”, which is just a way of naming all the other technical stuff that makes the system work and is practically invisible to the user.
Good DDD practices dictate that the domain objects and services need to be expressed exclusively by business concepts, not technical jargon. The business can be described using a “ubiquitous language” that is understood at all levels of the organization, from developers all the way to executives. When done right, the entire organization can communicate richly and productively using this vocabulary.
I have found that business people usually understand domain objects naturally, but they struggle with the idea of services. Imagining a thing is easy, but thinking in terms of services is not quite as intuitive. By making a mental shift from “services” to “collaborators” and projecting human-like characteristics, I find that people can make more sense of the system. Rather than “using” a complex system, perception shifts to “collaborating” with others, which seems to be easier to grasp cognitively.
We have enumerated three non-human actors into in order of increasing intelligence: machines, bots, and intelligent agents.
A machine is still an inanimate “thing”, but the idea of a machine seems to be more cognitively accessible than the abstract idea of a DDD “service”. A machine is a thing that does something, like a remote control for a television. It does indeed seem easier to visualize a remote control than to visualize a channel-changing service. Like a remote control, the machine is inert until acted upon. It is the person operating the machine who is in control, provided they understand how the machine works. It could be argued that you still need to “use” a machine, so we considered two more types of actors.
A bot is a step up from a machine. Like a machine, it has no intelligence and it performs specific tasks based on deterministic rules. It can be extremely simplistic, or can be based on a sophisticated set of rules. Contrary to a machine, it has a name and a personality. A bot can, if desired, be given a characteristic like insolent, forgetful, or sarcastic. Our limited testing has shown that bots can be more endearing to people than services. Our hypothesis is that by making these bots more human-like by emulating simple emotions or human traits, people will respond better to the system, cognition will improve, and they will have a better overall experience. (No, we are not advocating the resurrection of Clippy!) With the introduction of the bot concept, we take another step away from using towards collaborating.
An intelligent agent is essentially an embodiment of AI, or some kind of “intelligent” algorithmic processor. The use of AI/ML in enterprise SaaS systems is becoming increasingly prominent. The construct of an intelligent agent serves two purposes. First, it provides a clear boundary in which advanced algorithms can thrive within a system, rendering the integration of these ever maturing technologies into an enterprise system much easier in theory. Second, it makes AI/ML more approachable to users. We believe that it will make the system appear less creepy to the users when the intelligent agent is perceived as more human-like than some abstract and mystical computer algorithm. It also again shift perception from using the system to collaborating with the agent.
By making this subtle shift from services to collaborators like machines, bots, and intelligent agents, the people interacting with the system no longer perceive themselves as “using” the system, but rather more as “collaborating” with these non-human actors. When people become more like collaborators than users, this fuels engagement and satisfaction.