Logo

In Search of Excellent Requirements

Copyright 2014 by Karl E. Wiegers

This is a self-training version of Process Impact's popular 2-day live seminar. The course consists of a course introduction and 17 modules with more than 11 hours of audio and many practice activities that provide a comprehensive introduction to software requirements development and management. Each module contains slides that animate and advance automatically, with a synchronized audio presentation. Each module has several reference documents available, including magazine articles, templates, sample requirements documents, and other work aids. From this page you can also print a PDF version of a 2-up handout master of the slides and any accompanying worksheets for each module. Most modules include short quizzes so you can test your knowledge of the key points in the module. The course consists of the following modules:

             Course Introduction [available for preview]
  1. Introduction to Requirements Engineering
  2. Requirements Development Process
  3. Customer Involvement [available for preview]
  4. Business Requirements
  5. Requirements Elicitation
  6. User Requirements
  7. Business Rules
  8. Requirements Specification
  9. Quality Attributes
  10. Requirements Prioritization
  11. Requirements Analysis and Modeling
  12. Prototyping
  13. Requirements Validation
  14. Requirements Management Principles
  15. Requirements Management Practices
  16. Improving Your Requirements Processes
  17. Summary

Requirements affect all project participants, so ideally, everyone will take the entire course. For those people with limited time to spend, certain modules are recommended for the following project roles:

  • Requirements, Business, or System Analysts:
    All Modules
  • Project Managers:
    Modules 1, 2, 3, 4, 10, 13, 14, 15, 16, 17
  • Customer Representatives:
    Modules 1, 2, 3, 4, 5, 6, 7, 9, 10, 12, 15
  • Developers:
    Modules 1, 2, 8, 10, 11, 12, 13, 15
  • Testers:
    Modules 1, 2, 6, 7, 8, 9, 11, 12, 13

Course Description and Outline

Print Handout with Slides and Worksheets

View License Terms


Instructor

The instructor for this presentation is Dr. Karl Wiegers, Principal Consultant at Process Impact, who developed the course and has presented it live to more than 180 audiences throughout North America and Europe.

Karl's Biography
Process Impact web site
Send Karl email

Textbook

The textbook for this course is Software Requirements, 3rd Edition, by Karl Wiegers and Joy Beatty. Each course module refers you to one or more chapters in the book.

Order from Amazon.com


System Requirements


Course Introduction (9 minutes) [available for preview]

This module presents an overview of the "In Search of Excellent Requirements" course. It describes the system requirements for getting full value from the course and how to use the presentation player. It also summarizes the course objectives.

Start Presentation     Print Module Handout with Slides

Reference documents for this module:

(back to top)

Module 1: Introduction to Requirements Engineering (57 minutes plus 1 practice session)

This module provides an introduction to the domain of software requirements engineering. We begin with some definitions of various types of software requirements. We'll identify ten characteristics of good requirements and some of the benefits of investing in high quality requirements processes. The five subdisciplines of requirements engineering are also described. This material is the subject of Chapter 1 in Software Requirements, 3rd Edition.

Reference documents for this module:

(back to top)

Module 2: Requirements Development Process (34 minutes)

Module 2 summarizes the activities that are typically performed during requirements development. You'll see how to apply selected requirements practices to different types of projects besides new custom development, including maintenance projects, projects based on packaged solutions, outsourced development projects, and agile projects. I also describe the role of the business analyst. This material is covered in Chapters 3, 4, 20, 21, 22, and 23 in Software Requirements, 3rd Edition.

Reference documents for this module:

(back to top)

Module 3: Customer Involvement (19 minutes) [available for preview]

In this module I describe the importance of having customers involved in requirements development and the need to forge a collaborative customer-developer partnership. I'll present several rights and several responsibilities that customers have regarding the requirements for a product. I'll also explain what I think "sign-off" on requirements ought to mean. This material is the subject of Chapter 2 in Software Requirements, 3rd Edition.

Start Presentation     Print Module Handout with Slides

Reference documents for this module:

(back to top)

Module 4: Business Requirements (28 minutes plus 2 practice sessions)

The business requirements describe the business objectives that lead a team to undertake a particular project. This module describes the kinds of information that constitute a project's business requirements and a template for creating a vision and scope document. It describes how to write a vision statement using a simple keyword notation. The context diagram is presented as one tool for depicting the scope boundary between your system and the rest of the universe. This material is the subject of Chapter 5 in Software Requirements, 3rd Edition.

Reference documents for this module:

(back to top)

Module 5: Requirements Elicitation (77 minutes plus 2 practice sessions)

This module addresses the heart of requirements development, collecting the necessary information that will help you define a product's requirements. Requirements elicitation is a discovery process, not just a collection process. This module will help you guide the requirements exploration. We will identify various possible sources of requirements. You'll see how to classify requirements into various categories. You'll learn how to identify the important user classes for your product and to select key representatives from those user classes to serve as the voice of the customer. I'll also describe some techniques for facilitating elicitation workshops. This material is the subject of Chapters 6 and 7 in Software Requirements, 3rd Edition.

Reference documents for this module:

(back to top)

Module 6: User Requirements (68 minutes plus 2 practice sessions)

Use cases have become recognized as a best practice for eliciting user requirements. This module presents the important characteristics of the use case approach, illustrated with a case study. It compares and contrasts the use case approach with theh user story approach that is commonly used on agile development projects. This module will help you begin to identify and document use cases for your product. I'll also describe another technique for representing user requirements, event-response tables. This material is the subject of Chapter 8 in Software Requirements, 3rd Edition.

Reference documents for this module:

(back to top)

Module 7: Business Rules (17 minutes plus 1 practice session)

Business rules are a very important source of software functional requirements. This module describes what business rules are and suggests a scheme for classifying business rules into different types. After studying this module you should be able to identify and record business rules for your own projects and use them to reveal functionality that needs to be built. This material is the subject of Chapter 9 in Software Requirements, 3rd Edition.

Reference documents for this module:

(back to top)

Module 8: Requirements Specification (65 minutes plus 2 practice sessions)

Requirements information that the analyst gathers needs to be recorded in a suitable form so others can review it and use it to perform their parts of the project work. We'll see the kinds of information that typically go into a software requirements specification and see how the SRS is organized. I'll give you some tips for writing high-quality requirements. Practice sessions let you review several functional requirements for problems and improve them. I'll also tell you about a class of requirements management tools that can help a team store and manage its requirements. This material is the subject of Chapters 10, 11, 13, and 30 in Software Requirements, 3rd Edition.

Reference documents for this module:

(back to top)

Module 9: Quality Attributes (38 minutes plus 1 practice session)

In this module we explore quality attributes, a kind of nonfunctional requirement. We'll identify several categories of quality attributes and show you a way to write precise and verifiable quality and performance requirements. We'll close out this module with some examples of design and implementation constraints. This material is the subject of Chapter 14 in Software Requirements, 3rd Edition.

Reference documents for this module:

(back to top)

Module 10: Requirements Prioritization (20 minutes)

Nearly every project has more desired functionality than the team can build in the available time. Module 10 discusses how to prioritize requirements. I'll show you a thought process for classifying requirements into three priority levels. But sometimes additional priority refinement is desirable, so I'll also describe a spreadsheet you can use to prioritize discretionary requirements. This material is the subject of Chapter 16 in Software Requirements, 3rd Edition.

Reference documents for this module:

(back to top)

Module 11: Requirements Analysis and Modeling (61 minutes plus 2 practice sessions)

This module talks about different ways to represent requirements information beyond simply writing a list of functional requirements. After completing this module, you should be able to recognize and begin to draw several types of visual analysis models. You'll be able to create a data dictionary to store the definitions of your data items and structures. Decision tables and trees are useful tools for representing requirements that involve complex logic. Finally, I'll describe several techniques for finding missing requirements. This material is the subject of Chapters 12 and 13 in Software Requirements, 3rd Edition.

Reference documents for this module:

(back to top)

Module 12: Prototyping (18 minutes)

This module explores prototyping as a way to better engage customers in the requirements discussions. We'll look at several reasons to create prototypes and ways to use them, and we'll introduce some adjectives to distinguish the various kinds of prototypes you might create on a project. This material is the subject of Chapter 15 in Software Requirements, 3rd Edition.

Reference documents for this module:

(back to top)

Module 13: Requirements Validation (29 minutes)

This module begins by describing the V-model for software development to show the connections between development and verification activities. I will summarize several techniques for requirements validation and briefly describe how to review requirements specifications for errors. We'll close out our exploration of requirements development with a few words about transitioning from requirements into the other stages of software development. This material is the subject of Chapters 17 and 19 in Software Requirements, 3rd Edition.

Reference documents for this module:

(back to top)

Module 14: Requirements Management Principles (16 minutes)

So far in this course, we've been exploring ways to collect and record good requirements. As the project continues, you need to manage changes to those requirements, track status as requirements move from concepts to code, and create logical links between requirements and related work products. This module summarizes several principles and goals of requirements management, as well as some metrics worth collecting about your requirements engineering activities. This material is addressed in Chapter 27 in Software Requirements, 3rd Edition.

Reference documents for this module:

(back to top)

Module 15: Requirements Management Practices (65 minutes plus 1 practice session)

In this module we'll discuss several specific practices that you can use to manage your requirements baseline. After completing this module, you should be able to adopt a scheme to distinguish each version of your requirements documents. The module emphasizes practical techniques for requirements change control. You can track project status in part by tracking the status of the requirements. We'll also discuss how and why to create a requirements traceability matrix. The module concludes with some suggestions about how to manage risks that threaten the success of your project, including requirements-related risks. This material is the subject of Chapters 27, 28, 29, and 32 in Software Requirements, 3rd Edition.

Reference documents for this module:

(back to top)

Module 16: Improving Your Requirements Processes (30 minutes plus 3 practice sessions)

Although the concepts of software process improvement are simple, it can be difficult to change the way that both individuals and teams perform their work. This module addressses the practical aspects of process improvement, including the improvement cycle, the learning curve, and signs of management commitment to improving an organization's requirements engineering processes. This material is the subject of Chapter 31 in Software Requirements, 3rd Edition.

Reference documents for this module:

(back to top)

Module 17: Summary (13 minutes plus 1 practice session)

In this closing module I summarize several of the key practices for requirements development and management. Next, I warn you about several common requirements traps you should try to avoid. To wrap up this course, I will invite you to take some time to chart a personal path forward to select requirements practices that you think would lead to better results on your projects.

Reference documents for this module:

(back to top)