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.
Item | Notes |
---|---|
Why | Why is this system being built? What is the big impact it is trying to achieve? |
People | List people who will be involved in the project. |
Systems | List all systems this project must interact with. |
Budget / Timeline notes | List any information relevant to the budget and timeline. |
Technology | Are 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.