There's no standard formula for requirements workshops. Each project, business situation, and group of people will combine to make each workshop unique. Preparing for the requirements workshop requires collaboration. It permits you to tap into the collective wisdom of all of the project stakeholders. In your workshops, participants are active, engaged, committed, and task-oriented. A well-run workshop builds trust and mutual understanding among all the participants. Workshops are not new, but are proven best practices in software development. They can go a long way not only in product delivery, but also in building a "jelled" team.
Development VP Avery Kerr of BeWell Medical Corp. assigned our group to define the requirements for a software system to be used by registration agents and customers.
“They’re all over the place with what they want,” lamented Mary, RegTrak’s project manager. I asked her to explain what she meant. Who was all over the place? What did they want?
“Product development wants our global agents to use RegTrak to register and order products for their regions or countries,” she explained. “Distribution wants hospital purchasing agents to be able to place orders and check on them. Marketing wants health care workers in the hospital to have access, too.”
It was clear that the RegTrak team needed to nail down the scope and high-level requirements of the proposed project. Because Mary was newly assigned to RegTrak, she was especially concerned about getting the project off to a good start.
Her comment confirmed my typical experience: Each of the various stakeholders has his or her own understanding of what the scope should be, based on personal experience and knowledge.
“I suggest we bring together all of the stakeholders to define the scope of the project,” I said. Mary agreed. We formed a workshop planning team and got to work.
Surfacing User Requirements
We often talk about how tough it is to capture user requirements. The term capture
User requirements have always been difficult to surface and clarify. Many industry experts assert that defining user requirements is the most difficult task of software development. One of the biggest reasons is the communication gap between software and business people, which result in less than stellar customer-supplier relationships. Each side speaks using its own acronyms and shortcuts. Unless they’ve experienced each other’s roles, they have trouble truly appreciating each other’s legitimate concerns. This problem exists for both external software development organizations and software groups supporting internal business organizations. User requirements models help bridge these communication gaps.
User Requirements Models
User requirements are the needs that users have (people or things that affect, or are affected by the system). User requirements can be expressed as functional hierarchies using text; for many business systems, models can be used to define user requirements.
A requirements model is a high-level blueprint for a software product. It takes the form of a diagram, list, or table, often supplemented with text, that depicts a user’s needs from a particular point of view. Examples of user requirements models include event lists, use cases, data models, class models, business rules, actor maps, prototypes, and user interface navigation diagrams.
Whatever its form, though, the primary purpose of a requirements model is to communicate. Defining requirements is a discovery process for users and customers. User requirements evolve from the process of users “trying out” their requirements through models.
Requirements models speak to both users and software people. As users create and modify the models, their understanding of their requirements changes and evolves—in other words, the requirements become clearer. Defining requirements with models works independently of software development methodology or technology. If you’re using a more formal, disciplined development methodology, you’re likely to need more models that contain greater detail. With less formal and prescribed methodologies, you’ll create just a few models, and the models aren’t likely to be very precise. In either case, models are needed. This is true if you’re using more traditional technologies and languages or bleeding-edge tools.
An effective way to develop user requirements models is to use requirements workshops.
A requirements workshop is a structured meeting in which a carefully selected group of stakeholders and content experts work together