Get an Overview

After we have a rough mental model of a software system, we often want to get an overview of the system. In this step, we are trying to peel back one more layer. Where a mental model is a rough understanding of the system, an overview is deeper and more complete.

We often jump straight from an introductory conversation to full-on requirements. It is important to listen and allow the product owner to really tell their vision for the project. When the product owner describes their vision for a product, you should try to ensure you understand the key details.

One of the first details I try to ensure that I understand is who the people involved are. People are a huge volatility on a project, and we need to know who we will be working with and who we will be building this project for.

Another important detail is which systems are involved. Most software projects need to interact with at least a few other software systems. Make sure you are tracking those systems during this initial discovery phase.

It isn’t easy to get this information on all projects, but if we can start getting some constraints, that can help us narrow down the options. It can be really useful if I get some notation of budget and timeline early on.

Last, we need to start identifying non-functional requirements for the project. These can be things like “we must support 10k simultaneous users” or “the system must enable users to sign up quickly.” Almost all projects have non-functional requirements, and we often get those in early conversations.

Below is a checklist that can help you get an overview of the system.

ItemNotes
WhyWhy is this system being built? What is the big impact it is trying to achieve?
PeopleList people who will be involved in the project.
SystemsList all systems this project must interact with.
Budget / Timeline notesList any information relevant to the budget and timeline.
TechnologyAre there any technology dependencies? Must this system be built on AWS or Azure?

After we have an overview, we will focus on creating an epic level backlog. The next blog post will dive into some details.

If you have any questions you can reach me at @chadmichel on X.

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