Training Courses


Process Impact has several training courses and many short presentations available. You may also purchase just the course handout if you wish, enhanced with color slide images and slide notes.

Full Courses

In Search of Excellent Requirements
Exploring User Requirements with Use Cases
Writing High-Quality Requirements
Project Management Best Practices
Software Inspections and Peer Reviews

Short Presentations

Essential Requirements Practices
Software Development Pearls of Wisdom
The Thoughtless Design of Everyday Things
Thorny Issues in Software Requirements
Elements of Requirements Style
Software Requirements: 7 Critical Success Factors
The Use Case Technique: An Overview
Software Requirements: 10 Traps to Avoid
Practical Project Initiation
21 Project Management Success Tips
Software Peer Reviews: An Executive Overview
The Soft Side of Peer Reviews

In Search of Excellent Requirements

(1-3 days)

Requirements form the foundation for all the project work that follows. High quality requirements help avoid the unpleasant surprises sometimes experienced when software is delivered. This course is based on Karl Wiegers's bestselling book, Software Requirements, 3rd Edition. Covering the breadth of requirements development and management, it describes dozens of tested methods that can help any organization improve how it elicits, documents, and analyzes software requirements. Small group discussion let students identify requirements problems they face on their projects, impacts and root causes, and possible solutions to those problems. The longer versions of the course go into more depth on several of these topics, cover additional topics, and include more practice activities. Topics covered include:

  • 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
  • Numerous analysis models for representing requirements knowledge visually
  • Using prototypes to clarify and refine user needs
  • The use of peer reviews to find requirements errors
  • Techniques for managing requirements, including change control, version control, and traceability
Detailed Description and Outline       Related Publications       Purchase Course Handout

(back to top)

Exploring User Requirements with Use Cases

(1 day)

Use cases are an effective and widely used technique for eliciting software requirements. The use-case approach focuses on the goals that users have with a system, rather than emphasizing system functionality. This one-day course presents the use-case approach in a practical and straightforward fashion. Following the course, an attendee will be able to lead and participate in a use-case elicitation workshop, write use case descriptions at various levels of detail, review use cases, and apply use cases to develop the functional requirements for a software system. Many practice sessions give the student opportunities to try the techniques described. Topics covered include:

  • Identifying user classes and actors
  • Scenarios and use cases
  • Anatomy of a use case
  • Use case diagrams and other analysis models
  • Documenting a use case
  • Conducting use-case elicitation workshops
  • Deriving functional requirements from use cases
  • Reviewing use cases
  • Using use cases to design tests
Detailed Description and Outline       Related Publications       Purchase Course Handout

(back to top)

Writing High-Quality Requirements

(1-2 days)

Based on Karl Wiegers's book More About Software Requirements, this course will help business analysts become better at specifying clear, unambiguous requirements. Unlike "In Search of Excellent Requirements," which addresses the entire requirements engineering process, this course focuses on requirements specification. Students will not be expert requirements writers after this workshop—that takes practice and helpful review feedback from others. But students will have a strong sense of what constitutes high-quality requirements of various types and how to write them. Topics include:

  • Software requirements refresher, including requirements definitions, characteristics of high-quality requirements, and tips for writing good requirements
  • Techniques for reviewing requirements
  • Four techniques for depicting project scope
  • The elements of requirements style, including structures for writing functional requirements
  • Many ways to avoid several types of ambiguity in requirements
  • Review several less-than-perfect requirements statements from actual specifications to identify problem. Rewrite some of the requirements to improve them.
  • Tutorials and practice sessions to write quality attributes, data definitions, and business rules
  • Overview of use cases, including the relationship between use cases and functional requirements
  • Practice session to derive functional requirements from a use case
Detailed Description and Outline       Related Publications       Purchase Course Handout

(back to top)

Project Management Best Practices

(1 day)

Managing software projects is difficult under the best circumstances. You can reduce the difficulty and improve your chances of success by applying known industry best practices for project management. Best practices are based on industry studies of successful and failed projects, and on the instructor's personal experience. This course presents some 30 such best practices, grouped into five categories:

  • Laying the foundation for success
  • Planning the project
  • Estimating the work
  • Tracking your progress
  • Learning for the future

Several topics are discussed in depth, including software risk management and Delphi estimation. The attendee will have an opportunity to try many of these techniques through short practice sessions. Small group discussions also let participants share some of their project management-related problems and identify which of the best practices presented might be useful solutions to those problems.

Detailed Description and Outline       Related Publications       Purchase Course Handout

(back to top)

Software Inspections and Peer Reviews

(1 day)

Effective peer reviews of work products help software development organizations reduce their cost of producing software. Inspections of requirements, designs, tests, source code, and other deliverables are a proven way to find errors.

Based on Karl Wiegers's book Peer Reviews in Software: A Practical Guide, this course shows how to effectively perform both inspections and less formal peer reviews. The inspection process is described in detail. Attendees will learn why peer reviews add value at all stages of software development, know the guidelines for conducting a successful review, and know how to select an appropriate review strategy for each of their work products. A practice inspection session will help attendees learn to conduct effective reviews on their own projects.

Detailed Description and Outline       Related Publications       Purchase Course Handout

(back to top)