INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and...

55
INFO 627 Lecture #5 1 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker

Transcript of INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and...

Page 1: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 1

Requirements Engineeringand ManagementINFO 627

Defining the System and Managing Scope Glenn Booker

Page 2: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 2

Organizing Requirements Requirements must be captured and

documented. Period. No excuses. For that to happen, the stakeholders must

reach agreement on what are the requirements It is rare for all requirements to be fulfilled in

the first release of a system, so need to agree on their priority, too

Page 3: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 3

Organizing Requirements The requirements specification defines the

external behavior of the system A single document rarely can capture

all requirements Might separate system requirements from

software requirements Could use a high level Vision document, vs. a

lower level software requirements specification

Page 4: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 4

Organizing Requirements Might use product family versus

software requirements Could separate business requirements from

software requirements The systems engineering approach can lead us

to defining system requirements, then define subsystem requirements

Page 5: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 5

Organizing Requirements Then each subsystem’s requirements could be

divided into hardware, software, and interface requirements (1E p. 163)

Product families, or product lines, are sets of systems which share some common subsystems Like different cars using the same model starter

Page 6: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 6

Product Families In those cases, the vision for each system

is based in part on a vision for the whole family, and the shared software requirements

For any system, need to distinguish requirements which are being implemented from those saved for future releases

Page 7: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 7

Business Requirements Some organizations use a Marketing

Requirements Document (MRD) to capture business issues Market release windows Target market or audience Distribution and marketing issues Profit margin and investment amortization

Page 8: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 8

Vision Document The vision document combines some

marketing and product requirements Use of the Vision document is

highly recommended Also known as the scope or business blueprint

Can define vision for an organization too Joint Vision 2020

Page 9: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 9

Vision Document Challenge in writing the Vision is to

keep everything understandable by all major stakeholders

Write at a low level of detail, and use plain language

The vision captures what the system will do, and won’t do

Page 10: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 10

Vision Document The Vision document gives a synopsis

of the problem to be addressed, and the solution proposed

The Vision describes: The users of the system; their demographics,

profile, and environment Alternative solutions and competition

Page 11: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 11

Vision Document The product, including its benefits, differences

from the competition, capabilities, dependencies, and cost

Key features Key use cases Non-functional requirements Documentation, installation, and help

Page 12: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 12

Delta Vision Document (DVD?) As a product concept matures during

development, a “Delta Vision” document can be used to reflect improved understanding

Hence the basic product information from the first Vision document isn’t repeated Instead, focus on changes

Page 13: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 13

Delta Vision Document 2.0+ The second and later major releases could use

a delta vision with New features in version 2 Removed features from version 1 Planned features for future releases

The delta vision document is kind of like a release’s Version Description Document (VDD), but at a higher level

Page 14: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 14

Delta Vision for Legacy Systems Fully defining requirements for a large legacy

system is often too time consuming Can then use a delta vision document to

capture what changes you want to make in the system features

This avoids documenting stuff which isn’t changing

Page 15: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 15

Champion No, not a mushroom, that’s a champignon

The project vision is maintained by a product champion

The champion maintains the vision, and makes sure that changes to it are negotiated fairly among the various stakeholders

The champion is fully focused on what this product will become, and makes it that way

Page 16: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 16

Champion In contrast, some projects are marked by:

Inability to refuse a new feature Inability to accept a reasonable schedule to create

the desired features Inability to balance the product’s features (like a

car with a 1000 HP engine and stock tires) These are all signs of a weak or nonexistent

champion

Page 17: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 17

Champion The champion could be a lead engineer,

project manager, or have other titles Depending on industry, the champion might

be closely tied to marketing, to ensure the product remains desirable by the customer

Champion must balance market, customer, technology, and profit all at once

Page 18: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 18

Champion For internal IT development, the champion

might be from almost any area Champion needs to play a key role in feature

change decisions (e.g. participate in the configuration control board)

Page 19: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 19

Team Skill 3 Summary So we’ve

Started to structure requirements by subsystem, Captured the vision for the product, and Identified a champion to keep the vision from

going out of focus *ouch*

Now it’s time to get concerned about managing scope

Page 20: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 20

Project Scope The scope of a project consists of

three parts: The functionality (features) to be delivered The resources available (people, facilities, tools,

money, etc.) The time to complete implementation

Given enough resources and time, most projects are easy!

Page 21: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 21

Project Scope If we ignore facilities and tools for now,

people and money can be equated to restrict our focus to two issues – people and time

Time

Number of

People Project

Scope

Deadline

Page 22: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 22

Project Scope Can’t just add resources (people) to make a

project finish sooner Too many interdependencies among their work Learning curve for project characteristics Proven by Brooks in 1975 Only works if enough time for people to become

productive, and productivity still goes down with project size

Page 23: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 23

Project Scope Time may or may not be a flexible constraint

May – Windows Server 2003 (first due for release in 2001) And Windows Vista, known as Longhorn in 2003?

May not – The Year 2000 Problem, any fixed regulatory constraint, or known competitive constraint

Page 24: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 24

Project Scope The functionality which gets delivered is

limited by the available time and resources Yet on average, projects will start based

on completing 200% of the features in the scope available Maybe that’s why projects average 89% late!

Result is that half of the features don’t work, or all features half work – yuck!

Page 25: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 25

Project Scope This leads to the development team’s

dilemma of chopping the scope in half, without ticking off the customer

Otherwise the customer becomes an unofficial part of the test team, which is generally not appreciated Old line – release 1.0 means “beta” test

Page 26: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 26

Establishing Scope The key to defining the scope of a project

is to create the requirements baseline The requirements baseline defines what

requirements will be delivered in which version of the application Assumes incremental development of features

Must be agreed to by customer

Page 27: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 27

Requirements Baseline The requirements baseline must also have

a reasonable chance of being implemented on time

Start to define the requirements baseline by making a list of the features Need to keep a consistent, low level of detail Remember the guideline of 25-99 features

Page 28: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 28

Requirements Baseline Then assign priorities to each feature

Critical/Important/Useful or H/M/L is enough Could vote on priorities like we saw earlier

Now estimate the amount of effort needed to accomplish each feature Rough order of magnitude is okay here At least do Critical/Important/Useful or H/M/L Do more refined estimates if possible

Page 29: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 29

Requirements Baseline Now define the risk in implementing each

element – how technically challenging is it to implement? Again, use three level scale, at least

Now look at candidates for reducing scope, if necessary

Page 30: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 30

Reducing Scope Make sure that the critical priority features are

really the core of the system First look for high priority, then balance effort

and risk High effort and high risk might call for

immediate risk mitigation Assign resources to high effort features first

(unless system architecture dictates otherwise)

Page 31: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 31

Assigning Resources to Features

For critical

priority features

Risk

Effort

Risk mitigationand immediate

resources

Immediateresources

Lastresources

Middleresources

Page 32: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 32

Reducing Scope Then look at how much scope reduction is

needed, and reduce resource allocation to lower priority features accordingly For slight scope reduction, might shift immediate

resources to middle, middle to low, and eliminate low completely

For more drastic scope reduction, might drop all medium and low priority features

Page 33: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 33

Reducing Scope The keys to successful reduction are:

Make sure the customer is happy with what will get implemented

The features implemented still form a coherent product – not a hodgepodge of unrelated features

Keep the vision intact

Page 34: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 34

Requirements Baseline The requirements baseline is formed

when the time and effort match the features to be developed The requirements baseline defines the expected

features to be developed Then if any lower priority features can be

included in time, they’re a bonus

Page 35: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 35

Managing the Customer It often helps to maintain a supportive

position with your customer Want to help them meet their commitments

and do so with a product which will fulfill their needs

Remember the product belongs to the customer, not the development team!

Page 36: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 36

Managing the Customer Customer needs to be a direct participant in

all decisions affecting the product scope This gets buy-in from the customer, and alleviates

responsibility for the developer Negotiating is critical for scope discussions

“Getting to Yes” is a classic guide See Dale Carnegie, Zig Ziglar, and Dr. Norman

Vincent Peale for negotiation and sales skills

Page 37: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 37

Managing the Customer Try to underpromise and overdeliver when

negotiating, because of the inevitable risks of development Unexpected technical risks Delays in getting hardware or software Emergencies among your staff And a thousand other things which might

go wrong

Page 38: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 38

Managing the Customer Margins for error also allow for feature creep,

which can run 30-100% after the start of the project

Need to continually balance desire for more features with the needs for schedule and cost accuracy and product quality

Page 39: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 39

Managing Feature Changes Changes need to be recorded and tracked

using our change control system Added features will result in some effect:

Change in cost, schedule, and/or resources Lower priority for some other feature(s) Higher risk for completing one or more features

Customer needs to be clear about the impact

Page 40: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 40

Software Development Process The software development process (life cycle)

model describes the sequence in which all major activities will occur Defines who does what when

Whether formal or not, some model is always being used – just not necessarily the ones shown here

(See lecture 3 of INFO 638 for more models)

Page 41: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 41

Waterfall Life Cycle Model One of the first models used, circa 1970 Covers all major software development

activities in a logical sequence Based on an assembly-line mentality Transitions between activities often called

“throwing it over the wall” Little or no communication among life

cycle phases

Page 42: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 42

Waterfall Model

Coding &Unit Test

DetailedDesign

SystemTesting

Problem Analysis

Architectural Design

RequirementsAnalysis

Page 43: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 43

Waterfall Model Works well for:

Known requirements AND known technologies Weak or inexperienced staff Clearly defined requirements (must have!)

Problems: Often hard to define requirements adequately Expensive and time consuming Few signs of progress

Page 44: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 44

Spiral Life Cycle Model Focuses on addressing major risk areas for

a project (requirements, architecture, etc.) Each “mini-project” addresses one or more

risk areas, then start the next mini-project A.k.a. the cinnamon roll model

Developed by Barry Boehm, USC, 1988

Page 45: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 45

Spiral Model Each mini-project has six steps

Determine objectives, alternatives, and constraints for this mini-project

Identify and resolve risks Evaluate alternatives (possibly

through prototyping) Develop and verify the deliverables

for the next iteration ...

Page 46: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 46

Spiral Model Plan the next iteration Review progress to date; obtain commitment for

next mini-project Go on to the next mini-project Repeat until project is completed,

or major risks are under control Then another life cycle model must be used

Page 47: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 47

Spiral Model Is often combined with other life cycle

models within each mini-project too Pros

Handles risk very well Cons

Very complicated Hard to define and resolve many mini-projects Hard to stay focused on overall project goals

Page 48: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 48

Waterfall with Subprojects After Requirements and Architectural Design of

project, break out [Detailed Design, Coding, and Unit Testing] for several subprojects

Then integrate the whole system and complete system testing for a single release of the product

Pros include faster development of known tasks, and possibly better use of resources

Cons include unforeseen dependencies between subprojects

Page 49: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 49

Waterfall with Subprojects

Detailed Design, Coding,Unit Test, Subsystem Testing

SystemTesting

Conceptual Development

Architectural Design

RequirementsAnalysis

Detailed Design, Coding,Unit Test, Subsystem Testing

Detailed Design, Coding,Unit Test, Subsystem Testing

Sub-Project A

C

B

Page 50: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 50

Staged Delivery Like Waterfall model for Requirements

Analysis and Architectural Design; then [Design, Code, Test, and Deliver] the product in stages Project fully defined from the start and is

delivered in stages, based on feature priorities Increases chance of getting key features

into product Good for maintenance environment

Page 51: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 51

Staged Delivery

Stage 2: Detailed Design, Coding,Unit Test, Test, and Deliver

Conceptual Development

Architectural Design

RequirementsAnalysis

Stage 1: Detailed Design, Coding,Unit Test, Test, and Deliver

Stage n: Detailed Design, Coding,Unit Test, Test, and Deliver

Page 52: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 52

Iterative Approach The iterative life cycle model breaks life cycle

phases apart from the features of the product Used by the Rational Unified Process See also INFO 620’s text by Larman, Ch. 2

Each phase has one or more iterations Each iteration produces an executable system

(or some defined release)

Page 53: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 53

Iterative Approach Phases are:

Inception, to define scope of an issue Elaboration, to define requirements, structure,

and resolve highly risky parts of this issue Construction, to implement less risky parts

of this issue Transition, to get issue ready for beta testing

and deployment

Page 54: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 54

Iterative Approach Each iteration has a clear time limit

(timeboxed), such as 2 or 4 weeks duration Hence this model is heavily risk-focused, like

the spiral model, but has overall phases more like a waterfall model

Goal is to blend risk reduction with a mix of design and development activities Iterations build on each others’ functionality

Page 55: INFO 627Lecture #51 Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker.

INFO 627 Lecture #5 55

Iterative Approach Approach gets rid of many “Yes, But”

objections due to many releases Helps manage scope through frequent

estimation and effort cycles

No matter which development process model is used, get a prototype to the customer!