Our failure to understand users’ requirements is the most common source of project defects, delays, and cancellations. The accumulating evidence is unequivocal: most serious problems associated with projects are related directly to requirements. Critical Skills for Writing Better Requirements attacks the problem of project failures by addressing their root causes: incomplete, poorly defined, and/or changing requirements.
This two-day course will give you hands-on experience with the latest proven techniques for gathering requirements. Lively lectures combined with insightful demonstrations and realistic practice exercises will provide you with the competence and confidence to improve project outcomes through better requirements elicitation. You’ll gain a thorough understanding of the challenges faced in defining correct requirements, practical approaches for eliciting and documenting requirements, and strategies for managing requirements throughout the project life cycle. If you participate in defining project scope, capturing requirements, or managing project scope, you can’t afford to miss this course!
- Improve tools and techniques for gathering and developing more precise requirements
- Increase customers’ satisfaction by determining and understanding their true needs
- Prevent errors in specifications by defining project scope up front
- Identify the key players and learn to communicate effectively with them
- Learn how to collect and use metrics so you can plan better
- Lower development/maintenance costs by designing cost-effective processes
- Understand how to plan and manage the software development life cycle more effectively
- Develop templates and checklists that work
- Save money by reducing and managing ever-present scope creep
- Improve business analysis techniques to reduce project cost
Who Can Benefit
This writing business requirements training course is valuable for all those involved in managing and defining projects.
- Business Customer or Partner who wants to work more effectively with IT colleagues to identify project requirements for solving business problems
- Business Analyst who needs to define or gather users' business requirements
- Business Systems Analyst who wants to understand user's business requirements, translate them into clear statements of functional and system requirements and add value to IT projects
- Systems Analyst who must develop correct technical specifications from functional and system requirements
- Designer or Developer who desires to produce a high-quality system from the functional and systems requirements
- Project Manager or Team Leader who must ensure that IT project team members correctly understand customer needs and deliver high quality solutions within project constraints.
I. The Business Case for Requirements Engineering
Projects have high failure rates, and evidence points to problems with defining requirements as one primary cause. This section presents an overview of the challenges inherent in projects in general, and specific problems typically encountered with project requirements.
- The goal of a project
- Facts and figures about project success and failure
- Types of requirements errors and their frequency
- The high cost of requirements errors
II. Foundations of Requirements Development
Developing requirements is key to project success. In this section, we’ll cover some basic definitions, review a requirements development framework and process, and introduce an example system we’ll use for our practice sessions.
- The Business Analysis Body of Knowledge
- Definitions of terms
- Types of requirements
- Characteristics of well-written requirements
- The requirements development roadmap
- Requirements and the development life cycle
- Enterprise analysis
- Practice Session: Gain an in-depth look at a hypothetical but realistic business and one of its key systems that you’ll be eliciting and managing requirements for during the class.
III. Project Initiation
Projects arise in part to solve business problems, and understanding the underlying problem or problems is therefore key to being able to identify the correct requirements. During this section, you will refresh your knowledge of and practice defining and documenting project scope and key business requirements.
- Defining goals and objectives
- Identifying stakeholders and user classes
- Identifying constraints and benefits
- Specifying exclusions
- Modeling the system scope
- Documenting requirements in the Initiate phase
- Practice Session: Guided by your instructor, you will work with a team to define the goals and objectives in an example project. You’ll have a chance to practice identifying stakeholders and constraints and discovering important aspects of the project scope. You’ll participate in documenting the project scope using a variety of business models.
IV. Eliciting Functional and Non-functional Requirements
As we come to understand the business problem at the heart of a project, we need to learn to capture our business customers’ functional and non-functional requirements. This section explores several powerful and effective analysis techniques for requirements elicitation and development.
- Problems with requirements elicitation
- Techniques for eliciting customer requirements
- Analyzing and reviewing documents and artifacts
- Modeling processes, analyzing gaps and generating questions
- Interviewing the stakeholders
- Identifying data requirements
- Establishing requirements traceability
- Capturing the requirements
- Practice Session: In your team, you will analyze business artifacts and documents to discover the customers’ functional requirements for the solution. You’ll practice identifying what functionality customers want to keep, remove, add and/or change in moving from their current system to the solution. You’ll practice generating questions for key stakeholders and interviewing those stakeholders. Finally, you’ll learn to use a variety of tools to discover and document stakeholders’ data requirements.
V. Use Cases: A First Look
A”use case” is a sequence of events performed by an actor (person, automated system, or both) in a business environment to get their job done. Use cases carry significant requirements for a system from the perspective of a business user. Use cases are a critical tool in the analysis process, helping us understand what the system needs to do. Later in the development life cycle, use cases aid in design and implementation, testing, and user documentation for the new system. This section introduces the concept of use cases and gives you an opportunity to explore this analysis technique.
- The benefits of use cases
- Use case basics
- Finding use cases
- Building a use case model
- Deriving requirements from a use case
- Tracing requirements from use cases
- Practice Session: Your team will create a use case model for one process of our example system. You’ll learn how to identify and extract important functional requirements from the use case, how to elicit additional requirements, and how to maintain traceability among the requirements. You’ll discover how the use case becomes the basis for future development tasks.
VI. Reviewing and Refining Requirements
Well-defined requirements are critical to producing a system that meets the needs of the project stakeholders. Finding the requirements is only the first challenge. Once discovered, requirements must be reviewed, analyzed, validated and possibly rewritten. All requirements must then be confirmed with project stakeholders before the final specification is published.
- Writing requirements
- Reducing ambiguity
- Validating requirements through reviews and inspections
- Analyzing requirements for validity, consistency and effectiveness
- Refining requirements
- Practice Session: Your team will evaluate the requirements that have been found and written for the example project to identify any that don’t meet the quality characteristics we’ve defined. We’ll practice rewriting any unclear or ambiguous requirements.
VII. Creating a Requirements Specification
“The job’s not finished ‘til the paperwork’s done.” The final deliverable for many projects is a Requirements Specification of some kind. Writing a clear, concise and informative specification is a critical step in providing the implementation team with the information they need to design and implement a solution that is right for the stakeholders of the project. This section focuses on the creation and communication of the final requirements specification.
- Organizing and classifying requirements
- Documenting requirements: the Software Requirements Specification (SRS)
- Documenting traceability
- Practice Session: Your team will consider a model template for documenting the final requirements specification for our case project. You will have an opportunity to write sections of the specification in the course.