software requirements and specification se3821 - jay urbain credits: practical project initiation,...

36
Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10): 38–42, CMP Media Inc. Risk Management 1

Upload: amanda-hudson

Post on 16-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Software Requirements and Specification

SE3821 - Jay Urbain

• Credits: Practical Project Initiation, Microsoft Press, 2007.• Software Development, 1998, 6(10): 38–42, CMP Media Inc.

Risk Management

1

Page 2: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Risk

2

Page 3: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Risk Management

When my wife and I moved from Rochester, New York, to Portland, Oregon, we had a great project plan.

We had a realistic schedule for daily travel distances, routes and hotels selected, and sightseeing activities planned along the way.

None of our planning, however, considered the possibility of hitting the world’s largest pothole in the middle of South Dakota, which cracked a wheel rim and caused a slow air leak from that tire.

Nor did we anticipate the major wreck we had in Boise, Idaho.

These unforeseen events were low-probability risks with high impacts.

We eventually made it to Portland, but sometimes I think Lewis and Clark had an easier trip west.

3

Page 4: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Risk Management

• Software engineers are eternal optimists. • When we plan software projects, we assume things will

go exactly as planned. • Creative nature of software development makes us think

that we will not be able to predict what will happen – so why bother?

• These perspectives can lead to software surprises, that throw the project off track.

• Software surprises are never good news.

4

Page 5: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Risk Management

• Risk management has become recognized as a best practice in the software industry for reducing the surprise factor (Brown 1996; DeMarco and Lister 2003).

• We can never predict the future with certainty, but we can apply structured risk management practices to peek over the horizon at the traps that might be looming.

• Take actions to minimize the likelihood or impact of such problems.

5

Page 6: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Risk Management

• Risk management means dealing with a concern before it becomes a crisis.

• Improves chance of success, reduce consequences of risks that cannot be avoided.

6

Page 7: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Risk Management

• During project initiation take the time to identify significant risks. – At this stage most risks are business risks.

• Throughout requirements analysis continually review and update risk assessment.– Uncover unknown business, technological, resource,

and time risks.• Getting an early glimpse of potential pitfalls will help you

make more sensible projections.– Remember: under promise and over deliver.

7

Page 8: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Risk

• What is risk?

8

Page 9: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Risk

• Risk - problem that could cause some loss or threaten the success of your project, but hasn’t happened yet. – Potential problems might have an adverse impact on

the cost, schedule, or technical success of the project, the quality of your products, or team morale.

• Risk management - process of identifying, addressing, and controlling these potential problems before they do any harm.

9

Page 10: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Risk Management

• Why manage risks formally?1. Provides a structured mechanism to provide visibility into

threats to project success.

2. By considering the potential impact of each risk item, we can prioritize the most severe risks first.

3. Can coordinate risk assessment with project estimation to quantify possible schedule slippage.

4. Sharing what does and does not work to control risks across multiple projects helps the team avoid repeating the mistakes of the past.

5. Without a formal approach, we cannot ensure that our risk management actions will be initiated in a timely fashion, completed as planned, and effective.

10

Page 11: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Risk Management

• Controlling risks has a cost.• Must balance this cost against the potential loss we

could incur if we don’t address the risk and it does indeed bite us.

Example:• Suppose we’re concerned about the ability of a

subcontractor to deliver an essential component on time.• How to mitigate this risk?

11

Page 12: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Risk Management

Example:• Suppose we’re concerned about the ability of a

subcontractor to deliver an essential component on time.• How to mitigate this risk?

– We could engage multiple subcontractors to increase the chance that at least one will come through.

– Micro-manage with fine grained intermediate deliverables.– Severe contract remedies.– More thorough qualification standards.

12

Page 13: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Risk Management

• Is mitigating risks worth it?

13

Page 14: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Risk Management

• Is mitigating risks worth it?– Depends on the downside cost if subcontractor

dependency causes project to miss its planned ship date.– Only you can decide for each individual situation.

14

Page 15: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Software Risks

• The list of evil things that can befall a software project is depressingly long.

• Possible risks to consider can come from group brainstorming activities or from a risks identified from previous projects.

• The Software Engineering Institute has assembled a taxonomy of hierarchically-organized risks in 13 major categories, with some 200 questions to help spot risks (Carr et al. 1993).

• Steve McConnell’s Rapid Development (1996) also contains excellent material on risk management.

15

Page 16: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Software Risks

Dependencies• Customer-furnished items or information• Internal and external subcontractor or supplier

relationships• Intercomponent or intergroup dependencies• Availability of trained and experienced people• Reuse from one project to the next

• Mitigation strategy?

16

Page 17: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Software Risks

Dependencies• Mitigation strategy?• Contingency plans to acquire a necessary component

from a second source, or working with the source of the dependency to maintain good visibility into status and detect any looming problems.

17

Page 18: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Software Risks

Requirements Issues?

18

Page 19: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Software Risks

Requirements Issues

• Lack of a clear product vision

• Lack of agreement on product requirements

• Inadequate customer involvement in the requirements process

• Unprioritized requirements

• New market with uncertain needs

• Rapidly changing requirements

• Ineffective requirements change management process

• Inadequate impact analysis of requirements changes

• Problem, mitigation strategy?

19

Page 20: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Software Risks

Requirements problem

• Build wrong product

Mitigation strategy?• Add risk assessment to requirement process.• Take SE3821 ;-).

20

Page 21: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Management Risks

Management Risks?

21

Page 22: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Management Risks

Management Risks?

• The project manager often leads the risk identification effort, and most people don’t wish to air their own weaknesses (assuming they even recognize them) in public.

22

Page 23: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Management Risks

Management Risks?

• Inadequate planning and task identification• Inadequate visibility into project status• Unclear project ownership and decision making• Unrealistic commitments made, sometimes for the wrong

reasons• Managers or customers with unrealistic expectations• Staff personality conflicts• Mitigation strategy?

23

Page 24: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Management Risks

Management Risks?

• Need to create culture of constructive feedback.• Avoid putting people into a defensive posture.• Focus on how to make the project successful versus

individual risks.

24

Page 25: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Lack of Knowledge Risks

Lack of Knowledge Risks?

• Software technologies change rapidly and it can be difficult to find suitably skilled staff.

• Project teams might lack the skills we need.• Types of lack of knowledge risks?

25

Page 26: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Lack of Knowledge Risks

Lack of Knowledge Risks?

• Lack of training• Inadequate understanding of methods, tools, and

techniques• Insufficient application domain experience• New technologies or development methods• Ineffective, poorly documented, or ignored processes• Technical approaches that might not work• Mitigation?

26

Page 27: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Lack of Knowledge Risks

Lack of Knowledge Risks?Mitigation -

• Recognize the risk areas early enough so we can take appropriate preventive actions, such as obtaining training, hiring, or changing technology.

27

Page 28: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Outsourcing Risks • Acquirer’s requirements are vague, ambiguous, incorrect, or incomplete.• Acquirer does not provide complete and rapid answers to supplier’s questions

or requests for information.• Supplier lacks appropriate software development and management processes.• Supplier does not deliver components of acceptable quality on contracted

schedule.• Supplier is acquired by another company, has financial difficulties, or goes out

of business.• Supplier makes unachievable promises in order to get the contract.• Supplier does not provide accurate and timely visibility into actual project

status.• Disputes arise about scope boundaries based on the contract.• Import/export laws or restrictions pose a problem.• Limitations in communications, shipping, travel slow the project down.

28

Page 29: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Risk Management Template• Risk management starts with developing a plan.• Can use a template to get started.

29

Page 30: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Components of Risk Management

30

Page 31: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Risk Assessment & Prioritization

– Risk assessment is the process of examining a project to identify areas of potential risk.

– Risk prioritization helps the project focus on its most severe risks by assessing the risk exposure.

31

Page 32: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Risk Avoidance• Risk avoidance - don’t do the risky thing! • Avoid risks by not undertaking certain projects, or by

relying on proven rather than cutting-edge technologies.• Might be able to transfer a risk to some other party, such

as a subcontractor.

32

Page 33: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Risk Control• Risk control is the process of managing risks to achieve

the desired outcomes. • Risk management planning produces a plan for dealing

with each significant risk, including mitigation approaches, owners, and timelines. Risk resolution entails executing the plans for dealing with each risk.

• Finally, risk monitoring involves tracking your progress toward resolving each risk item.

• Example: hike in swamp.

33

Page 34: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Documenting & Tracking Risks

34

Page 35: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Risk Management Summary

• Use risk management to raise awareness of conditions that could cause the project to go down the tubes.

• Consider a project that begins with a fuzzy product vision and no customer involvement.

• The astute project manager will spot this situation as posing potential risks and will document them in the risk list.

• Early in the project’s life, the impact of this situation might not be too severe.

• However, if time passes and the lack of product vision and customer involvement are not improved, the risk exposure will steadily rise.

35

Page 36: Software Requirements and Specification SE3821 - Jay Urbain Credits: Practical Project Initiation, Microsoft Press, 2007. Software Development, 1998, 6(10):

Risk Management Summary

• Review the risk list periodically, update estimates of probability and/or impact of these risks.

• Escalate risks that aren’t being controlled to the attention of senior managers or other stakeholders.

• Be constructive, don’t be chicken little.• Can’t control every threat the project faces.

36