(One-day outline)     (Two-day outline)     (Three-day outline)

Seminar Description: "In Search of Excellent Requirements"

Karl E. Wiegers

Description:Requirements form the foundation for all the software work that follows. Arriving at a shared vision of the product to be developed is one of the greatest challenges facing the software project team, and customer involvement is among the most critical factors in software quality. The objective of this tutorial is to give attendees a tool kit of practices, reinforced with exercises and group discussions, that they can begin applying to improve the quality of the requirements engineering and requirements management processes in their organization.

This seminar describes dozens of tested methods that can help any organization improve the way it elicits, analyzes, documents, verifies, and manages software requirements. Characteristics of excellent requirements statements and requirements specifications are presented and used to evaluate some sample functional requirements. The seminar emphasizes several practical techniques:

  • creating an effective customer-development partnership
  • customer involvement through a "product champion" model
  • the application of use cases for defining user needs and system functions
  • a simple model for prioritizing requirements
  • writing software requirements specifications using a standard template
  • constructing dialog maps to model user interfaces, as well as other analysis models
  • the use of prototypes to clarify and refine user needs
  • the use of technical reviews and inspections to find errors in requirements
  • use of a requirements traceability matrix to connect requirements to design elements, code, and tests

Requirements management is approached from the perspective of the Software Engineering Institute's Software Capability Maturity Model (SW-CMM). The SW-CMM's expectations for requirements management are described, as are practical methods for managing changes to requirements. These techniques can reduce project risk by improving the quality and control of the software requirements, thereby increasing the likelihood of a successfully completed project.

Audience:This seminar will be useful to software engineers, managers, requirements analysts, user representatives, and anyone else engaged in gathering, documenting, analyzing, or managing customer requirements for software applications. Non-software people who provide requirements to developers have also found the seminar to be easy to understand.
Format:Blend of lecture, class discussion, group discussions on requirements problems and solutions, and exercises. Exercises give attendees practice in working with use cases, drawing a dialog map, reviewing a requirements specification, and writing an action plan to improve their group's requirements practices.
Biography: Karl E. Wiegers is Principal Consultant with Process Impact in Portland, Oregon. Previously, he spent 18 years at Eastman Kodak Company, including experience as a photographic research scientist, software developer, software manager, and software process and quality improvement leader. Karl received a B.S. degree in chemistry from Boise State College, and M.S. and Ph.D. degrees in organic chemistry from the University of Illinois. He is a member of the IEEE, IEEE Computer Society, and ACM. Karl is the author of the books Software Requirements, 2nd Edition (Microsoft Press, 2003), Peer Reviews in Software: A Practical Guide (Addison-Wesley, 2002), and Creating a Software Engineering Culture (Dorset House, 1996), and more than 160 articles on many aspects of computing, chemistry, and military history. He is a frequent speaker at software conferences and professional society meetings.

Outline for "In Search of Excellent Requirements" (1 day)

I. Introduction to Requirements Engineering

   A. Introduction to seminar, logistics, objectives, participant expectations
   B. Define three levels of software requirements: business, user, and functional
   C. Define characteristics of high-quality requirements
   D. Requirements development vs. requirements management

II. Practice session: small group discussions on requirements problems in their projects

III. Software Requirements Development

   A. A requirements development process
   B. The requirements analyst
   C. The vision and scope document
   D. Sources of requirements
   E. Classifying requirements into categories
   F. Customer involvement in the requirements process: the product champion model
   G. Gathering user requirements through use cases
   H. Practice session: identifying use cases for an airline reservation kiosk
   I. Documenting requirements: the software requirements specification
   J. Software quality attributes
   K. Practice session and discussion: reviewing a portion of an SRS
   L. Modeling user interfaces with dialog maps
   M. Practice session: drawing a dialog map from use cases
   N. Reducing the expectation gap through prototyping
   O. Other methods of analyzing and verifying requirements

IV. Software Requirements Management

   A. Basic requirements management practices
   B. Version and change management
   C. Requirements change impact analysis
   D. Requirements traceability

V. Practice session: Small group discussions on how to apply solutions to the requirements problems from the discussion in section II

VI. Wrap-up




Outline for "In Search of Excellent Requirements" (2 days)

I. Introduction to Requirements Engineering

   A. Introduction to seminar, logistics, objectives, participant expectations
   B. Define three levels of software requirements: business, user, and functional
   C. Define characteristics of high-quality requirements
   D. Requirements development vs. requirements management

II. Practice session: small group discussions on requirements problems in their projects

III. Software Requirements Development

   A. A requirements development process
   B. The requirements analyst
   C. The customer-development partnership
   D. The vision and scope document
   E. Practice session: drawing a context diagram
   F. Sources of requirements
   G. Classifying requirements into categories
   H. User classes
   I. Customer involvement in the requirements process: the product champion model
   J. Gathering user requirements through use cases
   K. Practice session: identifying use cases for an airline reservation kiosk
   L. Documenting requirements: the software requirements specification
   M. Requirements management tools
   N. Practice session and discussion: reviewing a portion of an SRS
   O. Practice session: examining requirements for problems and rewriting them
   P. Prioritizing requirements
   Q. Software quality attributes, including a practice session
   R. Using analysis models to represent requirements graphically
   S. Modeling user interfaces with dialog maps
   T. Practice session: drawing a dialog map from use cases
   U. Reducing the expectation gap through prototyping
   V. Requirements verification practices

IV. The Capability Maturity Model for Software

   A. Intent and structure of the CMM
   B. Requirements and the CMM
   C. Some process improvement principles

V. Software Requirements Management

   A. Requirements management goals and practices
   B. Version and change management
   C. Requirements change impact analysis
   D. Requirements traceability
   E. Requirements and software risk management

VI. Practice session: Designing a requirements change control process

VII. Practice session: Small group discussions on how to apply solutions to the requirements problems from the discussion in section II

VIII. Improving Your Requirements Practices

   A. The process improvement change cycle
   B. Practice session: writing a requirements process improvement action plan

IX. Wrap-up

Outline for "In Search of Excellent Requirements" Seminar (3 days)

(Practice activities are shown in italics)

I. Introduction to Requirements Engineering

  1. Introduction to seminar, objectives, participant expectations
  2. Define three levels of software requirements: business, user, and functional
  3. Describe characteristics of high-quality requirements
  4. Requirements development vs. requirements management

II. Practice session: Small group discussions on requirements problems in their projects

III. Software Requirements Development

  1. A requirements development process framework
  2. The role of the requirements analyst
  3. The customer-development partnership
  4. The vision and scope document
  5. Practice session: Writing a vision statement

    Practice session: Drawing a context diagram

  6. Sources of software requirements
  7. Classifying requirements into categories
  8. Practice session: Classifying requirements

  9. User classes
  10. Practice session: Identifying your user classes

  11. Customer involvement in the requirements process: the product champion model
  12. Group discussion: Who are your product champions?

  13. Gathering user requirements through use cases
  14. Practice session: Identifying use cases for an airline reservation kiosk

  15. Event-response tables
  16. Business rules
  17. Practice session: Writing business rules

  18. Documenting requirements: the software requirements specification
  19. Requirements management tools
  20. Practice session and group discussion: Reviewing a portion of an SRS
  21. Practice session: Examining functional requirements for problems and rewriting them
  22. Prioritizing requirements
  23. Software quality attributes
  24. Practice session: Writing quality attributes

  25. Using analysis models to represent requirements graphically
  26. Modeling user interfaces with dialog maps
  27. Practice session: Drawing a dialog map from use cases

  28. Reducing the expectation gap through prototyping
  29. Requirements analysis and finding missing requirements
  30. Requirements validation practices
  31. Peer reviews and inspections

IV. The Capability Maturity Model for Software

  1. Intent and structure of the CMM
  2. Requirements and the CMM
  3. Some process improvement principles and the learning curve
  4. Group discussion: Barriers to process improvement

V. Software Requirements Management

  1. Requirements management goals and practices
  2. Version management
  3. Change management
  4. Group discussion: Your change control process
  5. Requirements change impact analysis
  6. Requirements attributes
  7. Requirements traceability
  8. Requirements and software risk management

VI. Practice session: Designing a requirements change control process

VII. Practice session: Small group discussions on how to apply solutions to the requirements problems from the discussion in section II

VIII. Improving Your Requirements Practices

  1. The process improvement change cycle
  2. Practice session: Writing a requirements process improvement action plan

IX. Requirements Writing Workshop

  1. Eliciting requirements
  2. Writing use cases
  3. Writing functional requirements
  4. Writing quality attributes
  5. Writing data dictionary entries
  6. Reviewing requirements

X. Wrap-up