Writing Better Requirements The Key to a Successful Project



Similar documents
ITS Projects Systems Engineering Process Compliance Checklist

SOFTWARE DEVELOPMENT STANDARD FOR SPACECRAFT

The Project Management Plan will be used to guide, communicate and coordinate project efforts.

Effective Business Requirements (Virtual Classroom Edition)

SOFTWARE CONFIGURATION MANAGEMENT GUIDEBOOK

Basic Testing Concepts and Terminology

Scrum: A disciplined approach to product quality and project success.

Introduction and Overview

Requirements Management John Hrastar

How To Develop Software

Requirements Management

Risk Assessment. Individuals / Members. Engineers, Testers, Logistics Manager, Project Manager, Contractors, and Customers

ITRM Guideline CPM Date: January 23, 2006 SECTION 4 - PROJECT EXECUTION AND CONTROL PHASE

Lecture 17: Requirements Specifications

IV. Software Lifecycles

8. Master Test Plan (MTP)

2015. All rights reserved.

6500m HOV Project Stage 1: A-4500 HOV

3SL. Requirements Definition and Management Using Cradle

Ten steps to better requirements management.

Scrum and Testing The end of the test role Bryan Bakker 20 maart 2012

Functional Safety Management: As Easy As (SIL) 1, 2, 3

CalMod Design-Build Electrification Services

Software Testing. Knowledge Base. Rajat Kumar Bal. Introduction

Applied Software Project Management

Plan-Driven Methodologies

Requirements Traceability. Mirka Palo

Rapid Software Development

Software Project Management Plan (SPMP)

The Role of the Software Architect

SYSTEMS AND SOFTWARE REQUIREMENTS SPECIFICATION (SSRS) TEMPLATE. Version A.4, January 2014 FOREWORD DOCUMENT CONVENTIONS

Software Engineering Question Bank

System Requirement Checklist

Project Risk Management: IV&V as Insurance for Project Success

Java Programming (10155)

CSC340: Information Systems Analysis and Design. About the Course

Revision History Revision Date Changes Initial version published to

Request for Proposal Environmental Management Software

API Q2 Specification for Quality Management System Requirements for Service Supply Organizations for the Petroleum and Natural Gas Industries

What is a requirement? Software Requirements. Descriptions and specifications of a system

Use Case Diagrams. Tutorial

Project Type Guide. Project Planning and Management (PPM) V2.0. Custom Development Version 1.1 January PPM Project Type Custom Development

Phases, Activities, and Work Products. Object-Oriented Software Development. Project Management. Requirements Gathering

Standard for Software Component Testing

Software testing. Objectives

Chapter 11: Integration- and System Testing

RUP for Software Development Projects

The Need for a Systems Engineering Approach For Measuring and Predicting the Degradation of Aging Systems And How It Can Be Achieved

Systems Engineering Process

Process Models and Metrics

PROJECT MANAGEMENT PLAN TEMPLATE < PROJECT NAME >

What CMMI Cannot Give You: Good Software

AC REUSABLE SOFTWARE COMPONENTS

REQUEST FOR PROPOSAL WAYFINDING AND SIGNAGE CONSULTANT

Fundamentals of Measurements

Introduction to Software Engineering. 8. Software Quality

4.13 System Testing. Section 4 Bidder's Products, Methodology, and Approach to the Project System Training

How To Integrate Software And Systems

Page 1 of 7 Effective Date: 12/18/03 Software Supplier Process Requirements

Business Requirements as the Basis for Enterprise Architecture and Project Architectures. Harmen van den Berg

Configuration Management One Bite At A Time

SAFE SOFTWARE FOR SPACE APPLICATIONS: BUILDING ON THE DO-178 EXPERIENCE. Cheryl A. Dorsey Digital Flight / Solutions cadorsey@df-solutions.

How to Write a Software Process Procedures and Policy Manual for YOUR COMPANY

IF The customer should receive priority service THEN Call within 4 hours PCAI 16.4

How To Write Software

Certification Authorities Software Team (CAST) Position Paper CAST-26

Introduction to Automated Testing

Sample Exam Foundation Level Syllabus. Mobile Tester

Guideline for stresstest Page 1 of 6. Stress test

Cisco Change Management: Best Practices White Paper

Best Practices Statement Project Management. Best Practices for Managing State Information Technology Projects

<name of project> Software Project Management Plan

Configuration Management Practices

INDEPENDENT VERIFICATION AND VALIDATION OF EMBEDDED SOFTWARE

Requirements engineering

Implementation of ANSI/AAMI/IEC Medical Device Software Lifecycle Processes.

4 Testing General and Automated Controls

Validating Enterprise Systems: A Practical Guide

Business Operations. Module Db. Capita s Combined Offer for Business & Enforcement Operations delivers many overarching benefits for TfL:

CMMI: Specific Goals and Practices

Formal Software Testing. Terri Grenda, CSTE IV&V Testing Solutions, LLC

Application Performance Testing Basics

IT Project Management Methodology. Project Scope Management Support Guide

Establishing Great Software Development Process(es) for Your Organization. By Dale Mayes

Guide to Enterprise Life Cycle Processes, Artifacts, and Reviews

Creating The Work Breakdown Structure By Kim Colenso, Managing Principal, Artemis Management Systems

Software Design Document (SDD) Template

Software Development Life Cycle (SDLC)

Project Management Planning

Transcription:

Writing Better Requirements The Key to a Successful Project Kimberly Roberts Senior Application Engineer kimberly_roberts roberts@qssinc.com

Objectives Learn how good requirements definition can benefit your organization. Learn what the differences are between User Requirements, System Requirements and Architectural Design Requirements Explore the anatomy of a requirement and characteristics of a good requirement

Why projects fail Incomplete requirements - 13.1% Lack of user involvement - 12.4% Lack of resources - 10.6% Unrealistic expectations - 9.9% Lack of executive support - 9.3% Changing reqs/specs - 8.7% Lack of planning - 8.1% Didn t need it any longer - 7.5% Sources: Standish Group Scientific American

Why projects succeed User involvement - 15.9% Management support - 13.9% Clear statement of reqs - 13.0% Proper planning - 9.6% Realistic expectations - 8.2% Smaller milestones - 7.7% Competent staff - 7.2% Ownership - 5.3% Sources: Standish Group Scientific American

And the question is... How do we make a project successful?

Write Better Requirements. It s a HIGH LEVERAGE activity!! Requirements allow you to IMPROVE Quality with LESS effort.

Requirements are how we communicate Developers Management Customer Designers Users Manufacturers

What are Requirements? (They are the To-Do List of the Project Team) List of WHAT the Users need List of WHAT the System must do to Satisfy their needs List of WHAT components must be built List of WHAT each component must DO, and HOW they will INTERACT Requirements define the quality of the system

When are Good Requirements Essential? If you are building anything intended for someone else s use If you are building systems that do more than one thing If you are building anything that will be used more than once If you are building something that interacts with other systems If you are building a system that requires a specified level of performance If you are building anything that involves payment or other consideration (in other words, a contract) Good requirements can make a difference

Requirements Ensure You Build the Right Project the Right Way User requirements Validation Acceptance tests DEFINITION DEFINITION System requirements Architectural design Verification Verification System tests Integration tests INTEGRATION INTEGRATION VALIDATION VALIDATION Component development Component tests

Basic Types of Requirements TYPES OF REQUIREMENTS TYPES OF DOCUMENTS Functional Requirements User or Business Needs Requirements Non-Functional Requirements System or Functional Requirements Constraints Architectural Design Design Guidelines Element Requirements (Software & Hardware) Interface Definition Requirements

Document Definitions User/Business Needs Requirements What the System should do from the Users Perspective System/Functional Requirements What the System will do from the builders Perspective Component Requirements Design level list of all things that each component must do. Any Programmer/Engineer can build one from this document Interface Requirements Description of the Protocol and Physical Interface between Components of the System

Key Number 1 : Know where we are going. USER/BUSINESS NEEDS REQUIREMENTS Capture user requirements to understand what user problems your product will solve.

If we don t know where we re going. we never get there. we think we re there but in reality we are not. we finally get there but it takes a long time to arrive. We have the time to do it over and over again but we never have the time to do it right the first time!

How do we know where we re going? Maintainers End users Testers Customer Marketing Corporate executives The different types of users tell us!

Good user requirements are essential! Without good user requirements there is no clear direction for building a product. Product team members can head in different directions!

User Needs Generated by: Business Analysis Generated From: User Requests Business Rules Corp Business Rules End User Rqmts RFP Contract View By: Priority Importance Acceptable You Choose

Where do User Needs Come From?

Anatomy of a User Requirement The order entry clerk shall be able to complete ten customer orders in less than 2 hours This requirement identifies a real user type and an end result. It also defines the success criteria in measurable terms. The challenge is to seek out the user type, end result, and success measure in every requirement.

Key Number 2 : Know What We Are Doing SYSTEM/FUNCTIONAL REQUIREMENTS What do WE need to know to build this?

What Makes Up a System? Components of System Requirements: Key requirements in here Use attributes Descriptive Elements Functional or Behavioral Breakdown Performance Interfaces Non-Functional Requirements Traceability to User Requirements The core of the system requirements document Often a large part of a document required for content to make sense

System Requirements Document Defines a model of the system to be built - not the system Defines some mixture of functionality, behavior, performance, and systems constraints It s a model, not a complete system definition Organized by functionality or logical layout As implementation free as possible Every statement verifiable, with level and nature of test as attributes Defines professional constraints -- e.g. from different disciplines, working environment, induced environment, safety, etc. Owned by systems engineers, viewable to everyone including customers and designers

Different Attributes Between User and System Requirements User Responsibility User Requirements Priority Implement? High Yes Medium Medium Yes Medium High Yes Low Low No High Medium No High Developer Responsibility Cost System Requirements Users are responsible for prioritizing a user requirement Developers for costing the requirement In the end, the user representative should decide whether cost is worth the result

Key Number 3 : Know What to Build and Implement ARCHITECTURAL DESIGN REQUIREMENTS Decomposition to detailed design and subsystem components

What Makes up the Design? Components of Architectural Design: Key requirements often in here Make use of attributes Descriptive Elements Component Behavior/Control Component Functionality Component Interfaces Component Layout Dependencies & Resources Test Criteria Traceability to System Requirements The core of the system component design System or component level constraints

Architectural Design Document Defines WHAT is to be built, how it behaves, how it is laid out Defines key components, interfaces, control structures & external systems Detailed enough for optimization, partitioning to contractors, and definition of configuration item structure Basis for all milestones States what the system/component IS, not just its functionality Every statement verifiable and ready for integration tests with attributes to track states and methods of verification Created by designers, owned by developers, viewable by all Cost estimation should be well definable at this stage

Design versus System Level Requirements System Requirements Functional definition of two functions and an interface Supply Power 10 kw Heat Cabin Architectural Design Equivalent interface definition in design phase Gas Driven Generator 600 volts 18 Amp 400 Hertz Electrical Heater

Key Number 4 : Take Command WRITE BETTER REQUIREMENTS! The Anatomy of a Better Requirement..

Typical Requirement Problems Inappropriate Level Poor Definition Lack of Structure and Control Undefined Ownership No Traceability No Completion Criteria

What is a Requirement? Must form a complete sentence (not a bullet list of buzz words, list of acronyms, or sound bites ) States a subject and predicate where the subject is a user Consistent use of the to be verb: shall, will or must to show mandatory nature should or may to show optionality Has end result Contains success criteria or is testable in nature

Types of Requirements Functional Requirements Capability that the system must perform Non-Functional Requirements Conditions that must be met that are not explicit capabilities (ie Constraints/Guidelines ie: : the system must run with 32M of RAM)

Characteristics of Good Requirements Each Individual Requirement Should Be: Clear Avoid confusion Brief Short and simple Verifiable Testable and verifiable Traceable Uniquely identified and can be tracked Each Requirement Should Be Annotated with Attributes: Priority Emphasize important requirements Source Who requires it? Urgency When? Identity Requirements must be uniquely identifiable Comments Clarification recorded when needed Query/Response All can benefit from discussions

Characteristics of Good Documents Each Collection of Requirements Should Be: Complete Balanced Modular Correct Consistent Realistic Role/State/Mode Type Inclusive Are all requirements expressed? Are requirements at a consistent level of detail? Can system be changed without unforeseen side effects? Are user needs correctly expressed? No contradictions exist between requirements? Can we really build it? Are requirements associated with user roles/system states? Functional, Non-Functional, Constraints, Guidelines

Traceability Ensures Quality Without traceability products can drift away from what the user requires Requirements Quality is conformance to requirements.

Verifiability Ensures Quality Track the Source and Status of your Requirements with Attributes Record the source (when created, rationale, original text) Record urgency (mandatory, useful, optional, luxury) Record acceptance (proposed, reviewed, accepted, rejected) Identify verification method (test, demonstration, inspection, simulation, analysis) Identify constraints (safety, performance, reliability, corporate standards, business rules) Record discussion (comments, action items, proposed change, state of review process)

Analysis Now Made Simple Once this wealth of information is captured and well written, the status of a project can be easily determined: Show all high priority requirements for the pilot on the flight control subsystem: Priority = High User = Pilot Subsystem = Flight Control Show all the requirements maintenance users proposed that could effect safety and performance: User = Maintenance Status = Proposed Constraints = Safety & Performance

The keys to writing better requirements lead to successful projects! User Requirements System Requirements Architectural Design Better Requirements www.qssinc qssinc.com