requirement-related risks extracted from the book: software requirements by karl e.wiegers

17
Requirement-Related Risks Extracted from the book : Software Requirements By Karl E.Wiegers

Upload: delilah-richard

Post on 29-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Requirement-Related Risks Extracted from the book: Software Requirements By Karl E.Wiegers

Requirement-Related Risks

Extracted from the book:Software Requirements

ByKarl E.Wiegers

Page 2: Requirement-Related Risks Extracted from the book: Software Requirements By Karl E.Wiegers

Introduction

• Risks factors are organized by the requirements engineering sub-disciplines:– Elicitation– Analysis– Specification– Verification– Management

• Techniques are suggested that can reduce:

– Either the probability of the risk materializing into a problems– Or the Impact on the projects if it does.

Page 3: Requirement-Related Risks Extracted from the book: Software Requirements By Karl E.Wiegers

Requirement Elicitation

• Product Vision and scope:– Scope creep issue:

• occurs if team members don’t have a clear shared understanding of what the product is supposed to be or do.

• Early in the project write a vision and scope document that contains your business requirements and use it to guide decisions about new or modified requirements.

• Time spent on requirements development• Tight projects schedules often pressure managers into glossing t

over the requirements.• A rough guideline is to spend about 15 per cent of your project effort

on requirements development activities.• Keep records of how much efforts you actually spend on

requirements development: therefore you can judge whether it is sufficient and improve your planning for future projects.

Page 4: Requirement-Related Risks Extracted from the book: Software Requirements By Karl E.Wiegers

Requirement Elicitation

• Completeness and correctness of requirements specification– Apply the use case technique to elicit requirements by focusing on user

tasks. This ensure that you will capture real customer needs.

– Devise specific usage scenarios.

– Write test cases from requirements

– Create prototypes to make the requirements more tangible for users and to elicit specific feedback from them.

• Requirements for highly innovative products:– Easy to misgauge market response to products that are the first of their

kind.

– Emphasize marked research, build prototypes,

– Use customer focus groups to obtain early and frequent feedback about your innovative product visions.

Page 5: Requirement-Related Risks Extracted from the book: Software Requirements By Karl E.Wiegers

Requirement Elicitation

• Defining Non functional requirements– Natural emphasis on product functionality and easy neglect of

non functional ones.– Query customers about quality characteristics: performance,

reliability, usability….– Document these NF requirements and their acceptance criteria

in the SRS document.

• Customer agreement on product requirements:– Determine who the primary customers are.– Make sure you have adequate customer representation and

involvement– Make sure you are relying on the right people for decision

making authority on requirements.

Page 6: Requirement-Related Risks Extracted from the book: Software Requirements By Karl E.Wiegers

Requirement Elicitation

• Unstated requirements:

– Customers might hold implicit expectations that are not communicated or documented.

– Try to identify and record any assumptions the customers might be taking.

– Use open ended questions to encourage customers to share more of their thoughts, ideas and concerns than you might otherwise hear.

Page 7: Requirement-Related Risks Extracted from the book: Software Requirements By Karl E.Wiegers

Requirement Elicitation

• Existing product used as the requirement baseline:– Developers are sometimes told to use the existing product as their

source for requirements (fix specific bugs, add new features).

– Thus new requirements are discovered through reverse engineering: INEFFICIENT and IMCOMPLETE WAY.

– Document the requirement you discover through reverse engineering and have customers review those requirements to ensure they are correct and still relevant.

• Solutions presented as needs:– User proposed solutions can mask the user’ actual needs.

– May lead to automating ineffective business processes or to pressure developers into making poor design decisions.

– You must drill down to understand the intent behind the solution the customer has presented

Page 8: Requirement-Related Risks Extracted from the book: Software Requirements By Karl E.Wiegers

Requirement Analysis

• Requirement prioritization– Ensure that every requirement, feature or use case is prioritized

and allocated to a specific product release or implementation stage.

– Evaluate the priority of every new requirement against the existing body of work remaining to be done so you can make clever trade-off decisions.

• Technical difficult features:– Evaluate the feasibility of each requirement to identify those that

might take longer to implement than planned.– Use your project status tracking to watch for requirements that

are falling behind their implementation schedule.– Take corrective action as early as possible,

Page 9: Requirement-Related Risks Extracted from the book: Software Requirements By Karl E.Wiegers

Requirement Analysis

• Unfamiliar technologies, methods, tools, or hardware

– Don’t underestimate the learning curve of getting up to speed with new techniques that are needed to satisfy certain requirements

– Identify those high risks requirements early

– Allow sufficient time for false starts, learning, experimentation and prototyping.

Page 10: Requirement-Related Risks Extracted from the book: Software Requirements By Karl E.Wiegers

Requirement Specification

• Requirement Understanding:– Different understandings of the requirements by developers and

users may lead to expectation gaps.– Formal inspections of requirements documents by teams

including developers, testers, and customers can mitigate the risk.

– Trained and experimented requirements analysts will ask the right questions and write better specification.

– Models and prototypes that represent the requirements from multiples perspectives will reveal fuzzy and ambiguous requirements.

Page 11: Requirement-Related Risks Extracted from the book: Software Requirements By Karl E.Wiegers

Requirement Specification

• Time pressure to proceed despite TBDs– Good idea to mark areas of the SRS document that need further work

with ‘to be determined’ (TBD).

– But it is risky to proceed with the construction if these TBDs have not been resolved.

– Record the name of the individual responsible for resolving each TBD, how it will resolved, and the target date for resolution.

• ِ�Ambiguous terminology– Create a glossary and data dictionary to define all business and

technical terms that might be interpreted differently by different readers.

– Especially define terms that have both common and technical or domain-specific meanings

– ِ�Specific reviews can help participants reach a common understanding of key terms and concepts.

Page 12: Requirement-Related Risks Extracted from the book: Software Requirements By Karl E.Wiegers

Requirement Specification

• Design included in requirements:

– Design approaches included in the SRS document place unnecessary constraints on the options available to developers and can inhibit the creation of optimal designs.

– Review the requirements to make sure they emphasize what needs to be done to solve the business problem, rather than stating how it will be solved.

Page 13: Requirement-Related Risks Extracted from the book: Software Requirements By Karl E.Wiegers

Requirement Verification

• Unverified requirements– Inspecting a lengthy SRS, writing test cases very early in the

development process may appears fastidious. – However if you verify the quality and correctness of the

requirements before construction begins, through inspection, requirements-based test planning and prototyping you can greatly reduce expensive rework later in the project.

– Include time and resources for these quality activities in he project plan.

– Gain commitments from your customer representatives to participate in requirements inspections.

– Perform incremental, informal reviews prior to formal inspections to find problems as early and cheaper as possible.

Page 14: Requirement-Related Risks Extracted from the book: Software Requirements By Karl E.Wiegers

Requirement Verification

• Inspection proficiency:

– ٍ�Serious defects might be missed in case inspectors do not know to properly inspect requirements documents, and to contribute to effective inspections.

– Train all team members who will participate in inspections of requirement documents.

– Invite an experienced inspector from your organization or outside consultant to observe and moderate your early inspections to help make them effective.

Page 15: Requirement-Related Risks Extracted from the book: Software Requirements By Karl E.Wiegers

Requirement Management

• Changing requirements– Scope creep can be reduced by using a project vision and scope

document as the benchmark for approving changes.– A collaborative requirement elicitation process with extensive

user involvement can reduce scope creep by almost half,

– Quality control practices that detect requirements errors early can reduce the number of modifications requested later on.

– To reduce the impact of changing requirements, defer implementation of those requirements that most likely to change until they are pinned down, and design for modifiability.

Page 16: Requirement-Related Risks Extracted from the book: Software Requirements By Karl E.Wiegers

Requirement Management

• Requirement change process:– Risks from the way changes to requirements are managed

include not having a defined change process, using an ineffective change mechanism, and permitting changes to be made without following the process.

– You will need to develop a culture and discipline of change management at all levels.

– A requirements change process that includes impact analysis of proposed changes, a change control board to make decisions, and a tool to support the defined procedure is an important starting point.

Page 17: Requirement-Related Risks Extracted from the book: Software Requirements By Karl E.Wiegers

Requirement Management

• Unimplemented requirements– The requirements traceability matrix helps to avoid overlooking any

requirements during design, construction or testing.

– It also helps ensure that a requirement is not implemented by multiple developers because of inadequate communication within the project.

• Expanding project scope– If requirements are poorly defined initially, further definition can expand

the scope of the project.

– The project resources that were allocated according to the initial requirements might not be adjusted as the true scope of user needs becomes known.

– To mitigate this risk, plan on a phased or incremental delivery process.

– Implement the core functionality in the early releases, and iteratively elaborate the requirements for the later phases.