Maintaining an Overview
Exploring REQ4ARC: Mastering Architectural Requirements for Agile Projects
In the complex world of software development, maintaining a clear overview of requirements is crucial. Dr. Peter Hruschka and Dr. Gernot Starke illustrate in their blog post how the REQ4ARC module aids architects in managing detailed, architecture-related requirements efficiently, promoting a systematic approach to achieving a broad understanding before delving into specifics.
Do you sometimes get bogged down in details and desperately want a way to have a greater overview of things? We have seen many projects and development teams that had a lot of fine-grained, highly detailed requirements. Sometimes, we had to deal with hundreds or even several thousand individual (“atomic”) requirements. To effectively process such a vast number of (detailed) requirements, it is essential to maintain an overview. You should systematically create a sort of bird’s eye view and not rely on participants to maintain an overview on their own.
In today’s (fortunately mostly agile) world, we can forego bloated and formally approved functional specifications in most cases. To begin system development (i.e., architecture decisions and implementation), all you need are the fundamental architecture-related requirements, which provide the first opportunity to gain an overview.
But let’s start with a basic observation.
25% of the work is eliciting the requirements.
You never get that much time. It also suffices if you roughly elaborate the architecture-related requirements with little A‑priori effort (approx. 1–2% of the total effort) and then simultaneously deliver the other 23–24% “just in time” in an iterative-incremental manner. This working method is propagated by the T model , where you deliver the crossbar of the “T” early on and then go into detail in each iteration.
The following illustration demonstrates this model.
Breadth before depth –“just in time” requirements
As a development team, our main concern is to handle architecture-related requirements—not so much “all” of them. Some requirements have a formative influence on architecture or technology decisions, and these are precisely the types of requirements that we are concerned with here. Architecture and development expertise is necessary to determine if a requirement is relevant to the architecture. In other words, only the development team or the architecture can identify this relevance.
You should already have an overview of the functional requirements early on so that you can better assess your overall task. We believe that this is necessary so that, based on business priorities and technical constraints, you can choose what you wish to address first and what to address afterwards in your overall task, as depicted by the T‑model (see illustration).
This overview also includes the three to five most important quality requirements for you (your preferred choices, such as performance, capacity, security, or usability) and the toughest constraints. Afterwards, you may begin development.
Early on, the “big picture” should be clear enough so that you can anticipate the rough trajectory of development and start making the guiding technological or structural decisions accordingly. Afterwards, you can add the detailed requirements just-in-time.
In practice: Missing the forest for the trees…
As the following quiz shows, simply knowing the details does not help the development team. You can see a lot of details in the following illustration. Can you identify what kind of system it is? Can you get an overview based on this information? If you are familiar with the name Kenworth Montana, then perhaps one of the details gave it away. If not, then you certainly don’t know what the entire system is. We’ve deliberately made the example difficult to grasp – but we think you understand the problem.
The solution is at the bottom of this page…
Create an overview
In IT, we refer to the overview as the scope and context of a system.
Start from top-level business processes and systematically build a hierarchy that allows you to delve into different areas. For our example, this could be a breakdown into the chassis, engine, exhaust, and cabin:
As an example, we could call this top-level decomposition epics. From there, you can organize the details of the system (such as user stories or lower-level features) into the overall picture.
This results in the desired hierarchy:
What are the benefits?
Let’s do the math: 1000 detailed requirements are likely grouped into 100 features, and these in turn become 10 epics within the overall system. Therefore, with each level of the hierarchy, we simplify things by one order of magnitude (factor of 10).
For architectural tasks, it is important to familiarize yourself with these epics at the earliest opportunity. It is also okay if details for some epics already exist. Regrettably, it’s challenging to make significant architectural decisions based on these kinds of details. 🙁
Solution: The complete overview
This is a translation of the blog post “Behalten Sie den Überblick” by Dr. Peter Hruschka and Dr. Gernot Starke. Here you can find the original blog post in German.
Sources:
1. Requirements-for-Architects (REQ4ARC) from iSAQB
2. Practice book in German for iSAQB CPSA-Advanced Module REQ4ARC, authored by Peter Hruschka & Gernot Starke: ‘Requirements Skills erfolgreicher Softwareteams’.
Share this article:
Related Posts
About the Author
Featured in this article