Discovering Requirements: A Practical Approach to Identifying and Documenting Product Requirements

Teams following the waterfall approach, need a clear and consistent set of product features before they can start developing a product. It is no secret that many teams struggle to achieve this, which often results in products that fail to satisfy their stakeholder's needs.

Identifying and documenting product requirements is not an easy task. One popular approach is to try and "elicit" all the requirements from stakeholders. This approach often fails, not due to a lack of skill, but because the stakeholders themselves are not clear which features they need.

"Discovering Requirements" has been designed to improve the way teams identify and document requirements. The course is based on the philosophy that requirements must be "discovered" through collaborative workshops, rather than "elicited" by interviewing stakeholders.

This is a highly practical course that goes far beyond a basic discussion of requirements theory. It has been designed to result in measurable improvements in requirements gathering skills.

Course Features

  • Introduces waterfall-oriented teams to some of the collaborative requirements discovery techniques commonly used by agile teams
  • Provides a careful balance of theory and practice that teaches participants the practical skills they need to write good requirements
  • Presents a modern, up to date, approach to requirements gathering based on collaborative workshops
  • Combines best practices from a number of different sources with cross reference to IIBA's BABOK and IEEE 29148
  • Presented by an industry practitioner with decades of experience working with requirements

Participant Benefits

  • Ability to apply a proven approach to requirements discovery used on many real world projects
  • Ability to restructure and improve existing requirements documents
  • Shows participants how to measure improvement in a team's requirements gathering skills
  • Provides an an excellent foundation for participants to further refine and develop their skills.
  • Takeaway and online materials covering discovery framework, templates and checklists

Who Should Attend

  • Those who want develop their careers by improving their requirements gathering skills such as Business Analysts, Business Systems Analysts, Systems Analysts, Functional Analysts, Requirements Engineers, Requirements Analysts, Human Factors Specialists, Software Engineers, Developers, Agile Teams, Systems Engineers and Electrical Engineers
  • Those who need to participate in requirements gathering activities such as Subject Matter Experts, Users, User Representatives and other Stakeholders
  • Those who need to plan and manage requirements gathering activities such as Software Development Managers, Engineering Managers, Project Managers, Product Owners and Product Managers
  • Those who who want to gain an understanding of requirements gathering such as Project Sponsors, Project Managers, Program Managers, Product Owners, Product Managers, Process Engineers, Scrum Masters, Software Engineering Process Group (SEPG) Staff, Methodologists and Process Improvement Staff

Course Duration

  • 2 days full-time

Course Agenda

The Context for Requirements Discovery

  • Human Activity Provides the Context for Requirements
    • Naming Activities
    • Summarising Activity With the Activity Triangle
    • Identifying Activity Needs
    • The Role of Tools in Human Activity
  • The Five Critical Requirements Questions
  • Shared Understanding
    • Achieving a Shared Understanding of Requirements
    • Shared Understanding Requires Shared Discovery
  • Visual Canvases as Tools for Shared Discovery
  • Introducing the Requirements Discovery Canvas
    • The Canvas as a Tool for Collaboration
    • Collaboration in Workshops
    • Collaboration Using Cloud Based Tools
  • Requirements at Different Levels
    • Requirement Levels
      • Classifying Requirements Levels
        • A Guide to the Business Analysis Body of Knowledge (BABOK)
        • IEEE 29148 2011 Systems and Software Engineering - Life Cycle Processes - Requirements
      • Business Needs
        • Strategic Business Needs
        • Operational Business Needs
      • Solution Features
      • Software Requirements
  • Requirements Specifications
    • IEEE 29148 Document Templates
    • Stakeholder Requirements Specification
    • Software Requirements Specification
    • Mapping the Requirements Discovery Canvas to Requirements Documents

Identifying Stakeholders

  • Applying the 'MACROSCOPE' Acronym to Identify Stakeholders
  • Stakeholder Analysis
    • Product Owner
    • Subject Matter Experts
    • Other Stakeholders
  • Adding Stakeholders to the Canvas
  • Adding Stakeholders to Requirements Specifications

Defining Objectives

  • Identifying Strategic Needs
    • Identifying Strategic Business Needs
      • SWOT Analysis
      • Identifying Strategic Needs From SWOT
    • Adding Strategic Business Needs to the Canvas
    • Adding Strategic Business Needs to Requirements Specifications
  • Developing a Solution Vision
    • Developing a Vision for the Solution
    • An Example of a Solution Vision
    • Adding the Solution Vision to the Canvas
    • Extending Analysis With Context Diagrams
    • Adding the Solution Vision to Requirements Specifications

Identifying Stakeholder Goals and Needs

  • Identifying Stakeholder Activities
    • The Activity Triangle Revisited
    • Understanding the Hierarchy of Activities
    • Brainstorming Tasks
    • Grouping Tasks Into Capabilities
    • Consolidating Stakeholder Perspectives
    • Defining Businss Scope
    • Adding the Activities to the Canvas
    • Extending Analysis With Activity Diagrams
    • Adding the Processes and Activities to Requirements Specifications
  • Identifying Operational Business Needs
    • Information Needs
    • Business Rules and Constraints
      • Factual Business Rules
      • Behavioural Business Rules
  • Adding Operational Business Needs to the Canvas
  • Extending Analysis With
    • Data Flow Diagrams (DFDs)
    • Entity-Relationship Diagrams (ERDs)
    • Class Diagrams
    • State Diagrams
  • Adding Operational Business Needs to Requirements Specifications

Identifying and Describing Solution Features

  • Introducing Features
    • What Are Software Features?
    • Why Bother With Software Features?
    • A Template for Documenting Software Features
    • The Importance of Developing a Glossary
  • Describing Solution Capabilities
  • Describing Solution Constraints
  • Summarising Features on Use Case Diagrams
  • Documenting Features With User Stories
    • User Story Card Front
    • User Story Card Back
    • User Story Card The Three C's
  • Adding Solution Features to the Canvas
  • Adding Solution Features to Requirements Specifications

Defining Proposed Solutions

  • Documenting Components
  • Documenting Interfaces
    • User Interfaces
    • System Interfaces and APIs
  • Adding Components and Interfaces to the Canvas
  • Extending Analysis With Component Block Diagrams
    • Component Block Diagrams
    • User Interface Wire Frames
  • Adding Operational Business Needs to Requirements Specifications

Documenting Requirements

  • Introducing Requirements
    • What Are Software Requirements?
    • What is their Relationship to Software Features?
    • Why Bother With Software Requirements?
    • Classifying Software Requirements
      • Functional Requirements
      • User Interface Requirements
      • System Interface Requirements
      • Storage Requirements
      • Constraints (Non-Functional Requirements)
  • Functional Requirements
    • Functional Requirements Expand on Software Features
    • Adding the Subject of the Requirement
    • Adding Obligation to Implement the Requirement
    • A Template for Documenting Functional Requirements
  • User Interface Requirements
    • User Interface Requirements Describe the User Experience
    • A Template for Documenting User Interface Requirements
  • System Interface Requirements
    • Types of System Imterface
      • Required Interface
      • Provided Interface
    • A Template for Documenting Provided Interfaces
    • A Template for (Optionally) Documenting Required Interfaces
    • System Interfaces as the Subject of the Requiurement
  • Storage Requirements
    • Storage Requirements Describe How Data is Stored
    • A Template for Documenting Storage Requirements
  • Data Dictionary
    • Data Dictionary Describe What Data is Stored
    • A Template for Documenting Data Dictionary Entries
  • Business Rules
    • What is a Business Rule?
    • The Relationship Between Business Rules and Software Requirements
    • Incorporating Business Rules Into Software Requitrements
    • Relating Software Requirements to Business Rule Documents
  • Constraints
    • A Template for Documenting Constraints
    • Adding constraints to Individual Requirements
    • Documenting System Wide Constraints (Non-Functional Requirements)

Managing Requirements

  • Requirements Attributes
    • Unique Identifiers
      • Maintaining Consistent Requirements Numbering
      • Adding New Requirements
      • Removing Requirements
    • Documenting Requirements Obligation as Attributes
  • Structuring Requirements Into a Hierarchy
  • Requirements Traceability
  • Grouping Requirements
    • Grouping Requirements By Functionality
    • Grouping Requirements By Component
  • Managing Change
    • The Mistake of Freezing the Spec'
    • Version Control and Managing Versions
    • Performing an Impact Analysis
      • When Requirement Change
      • When Business Needs Change
  • The Role of Requirements Management Tools