| 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:
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 expectationsII. Practice session: small group discussions on requirements problems in their projects
III. Software Requirements Development
A. A requirements development processIV. Software Requirements Management
A. Basic requirements management practicesV. Practice session: Small group discussions on how to apply solutions to the requirements problems from the discussion in section II
VI. Wrap-up
I. Introduction to Requirements Engineering
A. Introduction to seminar, logistics, objectives, participant expectationsII. Practice session: small group discussions on requirements problems in their projects
III. Software Requirements Development
A. A requirements development processIV. The Capability Maturity Model for Software
A. Intent and structure of the CMMV. Software Requirements Management
A. Requirements management goals and practicesVI. 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 cycleIX. Wrap-up
Outline for "In Search of Excellent Requirements" Seminar (3 days)
(Practice activities are shown in italics)
I. Introduction to Requirements Engineering
II. Practice session: Small group discussions on requirements problems in their projects
III. Software Requirements Development
Practice session: Writing a vision statement
Practice session: Drawing a context diagram
Practice session: Classifying requirements
Practice session: Identifying your user classes
Group discussion: Who are your product champions?
Practice session: Identifying use cases for an airline reservation kiosk
Practice session: Writing business rules
Practice session: Writing quality attributes
Practice session: Drawing a dialog map from use cases
IV. The Capability Maturity Model for Software
V. Software Requirements 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
IX. Requirements Writing Workshop
X. Wrap-up