Originally published in PM Times on March 30, 2015.
This article is the second in a series on requirements modeling with the emphasis on why PMs should care about modeling requirements. In our first article, we spoke generally about models, the benefits of modeling requirements, and introduced the relationship between the iterative nature of eliciting requirements and modeling them. This article discusses the concept of concurrent requirements modeling, a structure that helps us elicit the detail needed for a complete set of requirements.
What is a model and why should we care? A model is a representation of reality, like a model car, airplane prototype, or graphical design (e.g., a CAD drawing) of a house. As they relate to requirements, models usually consist of text, graphical representations, or both. To get good requirements, we need to ask the right questions. We need to go beyond the “who, what when, where, and why” questions and get to the detail we need. Models help us do just that.
OK, so models help us ask the right questions. But which models should we use? Is one model better than the others? Sources such as the BABOK® Guide and PMI’s Business Analysis Practice Guide offer dozens of potential models. We certainly don’t have time to use all of them. Of course, there is no one answer to the question of which model is best, but we can explore which models are best suited to our projects. When we are involved with improving processes, and there are a myriad of reasons for doing so, one or several process models work well. When we are building business intelligence applications for doing information analytics, or simply developing quick reports, data models are helpful. When we are developing applications and need to describe the interaction between people and the software, use cases are appropriate. And prototypes are helpful to a variety of different types of projects. For software applications, all four are important, and when we elicit and model requirements using the appropriate models pretty much at the same time, we can get to detailed requirements more quickly than if we use just one ore even two model types.
We call this approach “concurrent requirements modeling,” which is different from concurrent component engineering, or concurrency, commonly used in developing objects and e-solutions. Concurrent requirements modeling focuses on obtaining business requirements, not on building software. It suggests that by modeling business data, business processes, interactions of users and systems through use cases, and prototyping, hidden requirements will surface more quickly than if we tried to think of questions without modeling or if we tried to build the product and elicited needs in an ad hoc way. In addition, each type of modeling effort supports and enhances the other modeling efforts and encourages analysts to ask their customers the kinds of pertinent questions that drive out hidden requirements.
Figure 1 below describes the interrelationships among the different types of functional requirements. The models are particularly useful for software requirements, but can also be useful for many aspects of business analysis. The models and their interrelationships are shown below.
When building software, data models answer the questions “what data do our stakeholders need to input,” and when they do, “what information is displayed on the user interface (screen)?” Process models give us the screen navigation. The touch point between the data and process is where there is interaction between the end user and the software. Use case models provide us with what we need to know about this interaction. User interface models graphically depict use cases. More about that in a future article.
As PMs, we might not do the work ourselves, but we need to ensure that work is done. So it’s important for us to be able to have enough of an understanding of these models to ask the right project questions of the resources who will be doing the elicitation and modeling. We also think it is important to understand the value of each model type and why using multiple models will yield better project outcomes. Last, we can be far more helpful in discussions about elicitation activities, tasks, estimates, risks, etc. when we have an understanding about the subject at hand.
In the next article, we will examine the benefits of data modeling and what data questions surface when we model our information requirements.
Don’t forget to leave your comments below.
How do you define success for your team? Take a moment to think about this…
Remote work has transformed how organizations operate, with virtual teams becoming the new normal across…
Effective leadership has never been more critical. Whether managing a team in a high-pressure corporate…
Remote work has transformed how organizations operate, with virtual teams becoming the new normal across…
The Business Analysis Body of Knowledge (BABOK® Guide v3) is a comprehensive guide to the…
A certified Business Analyst (BA) has successfully passed an International Institute of Business Analysis (IIBA.org)…
View Comments
Where would you put State Transition Diagrams? They are very important from a functional perspective. Ideally, there should be a separate type of model called "Event-Driven Models" or something similar.
I love State Diagrams (AKA State Transition Diagrams). To me it doesn't matter what category we put them in, although I have a preference for Interaction Models,because they show the interaction between data (states) and process (transitions triggered by an event). It also seems to me that all processes are event-driven, including business processes and use cases. One can slice & dice all the models and put them in different buckets, but we have found our Concurrent Model to be useful, practical, and easily understood. We address State Diagrams in our A Practitioner's Guide to Requirements Management book and presentation BA Toolkit: Top Models for Complete Requirements Analysis.