The Six Blind Men and the Requirements: Part Four — Selecting Appropriate Views

There is no single correct way to document specific requirements information. Every BA needs a rich tool kit of techniques at her disposal so that she can choose the most effective requirements view in each situation. In this article, adapted from my book, More About Software Requirements (Microsoft Press, 2006), I offer some ideas about how to make that choice. Often, it’s valuable to represent information at both high and low levels of abstraction. The high level offers a big-picture perspective, whereas the low level of abstraction presents the nitty-gritty details. Certain audiences only need the high-level view, whereas developers and testers do need to see all those specifics, as well. An effective requirements analysis technique is to create an alternative view of the requirements from the initial set of information and examine it for problems. Here’s an actual example. I once reviewed a requirements specification for a client who was developing the firmware for a device for testing integrated circuit components. The spec contained a long table that listed the various states this device could be in and what behaviors lead to changes from one state to another. Table 1 shows a portion of this table. I needed to know if all possible states were described and that the allowed state changes were all correctly specified. But how could I judge that? Missing requirements are hard to spot precisely because they don’t exist. I decided to draw a state-transition diagram from the information in the original table, which appears in Figure 1. A state-transition diagram is a simple analysis model that provides a high-abstraction view of such a...

The Six Blind Men and the Requirements: Part Three — Some Alternative Requirements Views

An effective business analyst doesn’t just “write requirements.” Instead, the BA should think about the most appropriate way to represent requirements-related information in a given situation. Besides the traditional default of writing natural language statements, the BA should determine when a picture or some other representation would be valuable. This article, adapted from my book, More About Software Requirements (Microsoft Press, 2006), briefly describes some alternative types of requirements views to consider. Analysis Models Analysis models are diagrams that present information visually. The table below lists several of the graphical analysis models that are available to the BA. Some of these date back to the structured analysis movement of the 1970s and 1980s. Others are part of the Unified Modeling Language, which provides a rich set of conventions for object-oriented analysis and design. I don’t have the space to describe these various techniques in detail here. See my book with Joy Beatty titled Software Requirements, 3rd Edition (Microsoft Press, 2013) for descriptions and examples of several of these—and other—modeling notations. Note that some requirements authors use the term model to describe any method for representing requirements information, including a list of textual functional requirements. When I say model or analysis model, I’m referring to a diagram that represents requirements information visually, generally at a higher level of abstraction than written requirements offer. I highly recommend that you use standard notations when drawing these kinds of diagrams. There are enough types of models in the software literature to cover nearly every situation, so you should almost never have to invent a new kind of diagram. Remember that these are communication...

The Six Blind Men and the Requirements: Part Two — Why Create Multiple Requirements Views?

If you create only one view of the requirements, you must believe it. You have no other choice. If you develop multiple views, though, you can compare them to look for disconnects that reveal errors and different interpretations. There’s an old saying, variously attributed to the Swedish Army, the Swiss Army, the Norwegian Boy Scouts, a Scottish prayer, and a Scandinavian proverb: “When the map and the terrain disagree, believe the terrain.” Unfortunately, we have no absolute “terrain” for requirements: every representation is a map! Even though you can’t tell which representation is correct, differences between them indicate problems. In this article, adapted from my book, More About Software Requirements (Microsoft Press, 2006), I’ll explain the value of creating more than one view of your requirements. Consider the figure below. A use case presents a high-level view of requirements from the user’s perspective. It describes some goal the user needs to accomplish with the help of the system, expressed as a sequence of interactions between a user and the system that leads to an outcome of value. A primary purpose of the use case technique is to help the BA derive the functional requirements that developers must implement to let users perform a use case. These functional requirements represent a second, more detailed view. The BA might also draw graphical analysis models, diagrams that represent additional views of the requirements. The BA should be able to relate the functional requirements to elements shown in the models to make sure that these complementary views agree. Suppose a tester were to write some test cases—thereby creating yet another view of the...

Three Golden Rules of Requirements Repositories

Requirements repositories are a method of storing requirements, encompassing those under development, in review, and approved. They are an efficient means of gathering, managing, and leveraging data across the enterprise – including business, stakeholder, solution, transition, project, and quality requirements – along with supporting documentation, such as whiteboard sketches, word processing documents, diagrams, and visual models. Capturing all that information in itself can be difficult. Capturing the information in a repository that is accessible, meaningful, searchable, and sharable presents further challenges. Keeping in mind these three best practices for knowledge management can help. Usability Repositories are only valuable if they’re used. To promote use, the repository has to be part of the daily life of the work environment. It has to function with the overall enterprise architecture, and integrate with other technologies in use, such as Outlook, project management systems, and SharePoint. Also, people have to be able and willing to access it regularly. They have to be motivated to populate a repository. On the receiving end, it has to be easier for them to access the repository for information than to walk across the hall and ask for it. Use of the repository has to be bought into, encouraged, and mandated from the top down and the bottom up. Context The repository also has to be relevant. Requirements are valuable only when they are connected and in context. Imagine the Internet without Google: It’s just a massive amount of information with no context around it. Repositories must provide an easy way for people to search and access the information that has meaning to them. Many businesses seek to...

Business Requirements vs. Functional Requirements

Many analysts struggle with understanding the differences between business requirements and functional requirements. Some people even think they are the same, but I want to assure you that they are not. In this blog, I explain the differences. To be clear, in defining requirements, there are actually four types of requirements that should be defined: business requirements, stakeholder requirements, solution requirements, and transition requirements. There are also two types of solution requirements: functional and nonfunctional. Business Requirements describe why the organization is undertaking the project. They state some of the benefits that the organization or its customers expect to receive from undertaking the project. Business requirements may be documented in several ways such as a project charter, business case, or in a project vision and scope statement. Business requirements help get the project owner, stakeholders and project team on the same song sheet.  But you can’t build software from such high-level information. In the Enfocus Requirement SuiteTM, we consider the following business requirements. Problem Statement Project Vision Project Constraints (Budget, Schedule, and Resource) Business Objectives Project Scope Statements (Features) Business Process Analysis Stakeholder Analysis IT Service Impact Analysis The results from the business process analysis, stakeholder analysis, and IT service impact analysis are also considered business requirements. The purpose of the business process analysis is to determine how the business process will work. It is often necessary to resolve deficiencies in the business process before trying to automate it. Not dealing with the business processes first is like trying to pave a cow path; it might get you there, but it certainly won’t be the straightest most direct path....