Making a Mental Model

What does a year look like?

This is a question you may have been asked before. And there is a variety of works out there discussing the differences in how people perceive a year. Ultimately, many people have some sort of circle for a year.

Rectangles arranged in a circle depicting a year

When creating a software system, we should create a mental model for that software system, and sometimes multiple mental models. This sounds easy, but often, people don’t have a way to represent these mental models.

The classic way to create one of these models is to think about the database schema required to support a system. This is a really good approach and is a step I often employ. If I can create a rough database schema for it, that usually gives me an idea about how complete the system will be.

While database schemas are useful, the majority of our systems are not in databases. It is better to reason about the actual structure of the software system.

We need a way to describe our software visually for reasoning software systems. This is very important and often overlooked.

There are a variety of ways to visualize software. My personal favorite involves visualizing individual services. In the example below, we have three services. There is a user service that calls an auth service and a profile service to complete some requirement.

A diagram depicting user data flow

Building a mental model is essential to understanding the software systems. As we build mental models, think about the following four questions.

  • Who is using the software?
  • Why are they using the software?
  • How would they like to interact with the software?
  • What does the software look like?
    • Create a visual(s) of the software

In future blog posts in this series, I will take you through the process of creating software from requirements.

author avatar
Chad Michel Senior Software Architect
Chad is a lifelong Nebraskan. He grew up in rural Nebraska and now lives in Lincoln. Chad and his wife have a son and daughter.

Related posts