Software Requirements
Delivery options: 2-day full workshop, customized 1-2 day session, customized webinars (all sessions available online or onsite)
Requirements form the foundation for all 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 one of the most critical factors in software quality.
In the workshop, software engineers, managers, requirements analysts and user representatives (product owners) learn how to gather, document, analyze and manage customer requirements for software / IT applications. The workshop includes user stories (Agile/Scrum), but goes much further.
Students in the workshop apply the skills learned to their current project work. Topics covered include:
- creating an effective customer-developer partnership
- customer involvement through a “product champion” model
- incremental requirements development
- defining three levels of software requirements: business, user and functional
- the application of user stories, use cases for defining user needs and system functions
- prioritizing requirements
- writing software requirements using a standard concise template
- constructing dialog maps to model user interfaces, state diagrams and event tables
- using prototypes to clarify and refine user needs
- using technical reviews and inspections to find requirements errors quickly
- using the ARM tool to find requirements errors
- using a requirements traceability matrix to connect requirements to design elements, code, and tests
- optional: requirements practices in CMMI and Scrum / Agile
The basic concepts of requirements management are described, including practical methods for managing changes to requirements. These techniques reduce project risk by improving the quality and control of software requirements, thereby increasing the likelihood of a successfully completed project.
Audience
This workshop will be useful for product owners, software engineers, managers, requirements analysts, user representatives, and anyone else engaged in gathering, documenting, analyzing, or managing customer requirements for software applications and IT solutions.
Format
A blend of lecture, class discussion, group discussions on requirements problems and solutions, and practice sessions on current project work. Practice sessions give attendees some experience in working with use cases, drawing a dialog map, reviewing a requirements specification, writing good requirements, and writing an action plan to improve their group’s requirements practices.
*Licensed from Karl Wiegers, based on his book, Software Requirements (Microsoft Press, Edition 3).
Workshop Agenda
Agenda Details1. Introduction to requirements engineering:
- Workshop objectives, participant expectations
- Three levels of software requirements: business, user and functional
- Requirements development and requirements management process overview
2. Identifying users:
- Sources of requirements
- Customer involvement in the requirements process: the product champion model and user classes
- Practice session: clarifying users, user classes and product champions
3. Defining vision and scope:
- Business requirements
- Vision and scope document
- Using a context diagram to capture scope
- Practice session: writing business requirements and capturing scope using a context diagram
4. Understanding user needs:
- Gathering requirements through use cases and user stories
- Practice session: use cases and user stories
- Software quality attributes, nonfunctional requirements and constraints
- Practice session: deriving software quality attributes, nonfunctional requirements and constraints
- Documenting requirements – options
5. Deriving functional requirements:
- Deriving functional requirements, system requirements and business rules
- Practice session: deriving functional requirements, system requirements and business rules
6. Analyzing and verifying requirements:
- Prioritizing requirements
- ARM tool to find requirements errors
- Modeling user interfaces with dialog maps
- Practice session: dialog maps
- Reviewing and inspecting requirements documents
- Practice session: inspecting a portion of a requirements document
- Generating test cases
- Reducing the expectation gap through prototyping
7. Managing requirements changes:
- Requirements management process
- Requirements management tools
- Requirements traceability
8. Optional:
- CMMI (Capability Maturity Model Integration) requirements practices in REQM, RD and RDM
- Requirements practices in Scrum/Agile