csc450 software engineering 1 devon m. simmonds university of north carolina, wilmington...
TRANSCRIPT
CSC450CSC450CSC450
Software Engineering
1
Devon M. SimmondsUniversity of North Carolina, Wilmington
Introduction to Software Project Management
CSC450CSC450Outline2
Introduction to Software project management Project management activities
Teams Project management process
Scoping Estimation Scheduling Risk analysis
Project planning template Project management problems
3
A project is a sequence of unique, complex, and connected activities having one goal or purpose and that must be completed by a specific time, within budget, and according to specifications.
What is a Project?
4
• Project management is a set of principles and tools for– Defining– Planning– Executing– Controlling . . . and – Completing a PROJECT
What is Project Management?
CSC450CSC450Software Project Management
5
Software project management is the organization and management of project resources to create or evolve software within specified, budgetary, time and scoping constraints. A software project is a set of activities
that use resources to realize specified software development objectives.
CSC450CSC450Project Management Activities
6
Planning Description of tasks to be done Estimating resources
People, time, hardware, software, money, etc. Acquiring resources Assemble project teams Assigning tasks & organizing work Allocating resources Assessing and mitigating risks (i.e., Risk Management) Controlling project execution Tracking and Reporting progress Analyzing results Forecasting future trends in the project Quality Management
7
• Organize your approach• Generate a credible schedule• Track progress and control your project• Identify where to focus your efforts • Identify problems early – before they are crises• Saves you TIME….MONEY
If you fail to plan, you PLAN TO FAIL
Why is Project Management Important?
CSC450CSC450The 4 P’s of Software Project Management
8
People — the most important element of a successful project
Product — the software to be built Process — the set of framework
activities and software engineering tasks to get the job done
Project — all work required to make the product a reality
CSC450CSC450People
9
People Capability Maturity Model To assess organizations ability to attract,
develop, motivate, organize, retain people. PCMM key practice areas
Staffing, communication and coordination, work environment, performance management, training, compensation, career development, team development, etc.
CSC450CSC450People: Who needs software?
10
Most software is built in organizations for people with specific needs.
A stakeholder is a anyone who has an interest (or stake) in the software being completed Senior managers, project managers, practitioners,
customers, end users.
A user is someone who will need to use the software to perform tasks.
Stakeholders may or may not be users For example, a senior manager (like a CEO or CTO in
a company) will usually have a stake in the software that is built (since it affects the bottom line), even if she won’t ever use it.
CSC450CSC450Stakeholders
11
Senior managers who define the business issues that often have significant influence on the project.
Project (technical) managers who must plan, motivate, organize, and control the practitioners who do software work.
Practitioners who deliver the technical skills that are necessary to engineer a product or application.
Customers who specify the requirements for the software to be engineered and other stakeholders who have a peripheral interest in the outcome.
End-users who interact with the software once it is released for production use.
Who/What will be the concern of senior managers?Customers = End-users?
CSC450CSC450People: Who builds software?
12
Software is typically built by a team of software engineers, which includes: Business analysts or requirements analysts
who talk to users and stakeholders, plan the behavior of software and write software requirements
Designers and architects who plan the technical solution
Programmers who write the code Testers who verify that the software meets its
requirements and behaves as expected
CSC450CSC450Software Teams
13
How to lead?
How to organize?
How to motivate?
How to collaborate?
How to create good ideas?
CSC450CSC450Team Leadership
14
The MOI Model [Weinberg] Motivation. The ability to encourage technical people
to produce to their best ability. Organization. The ability to mold existing processes
(or invent new ones) that will enable the initial concept to be translated into a final product.
Ideas or innovation. The ability to encourage people to create and feel creative even when they must work within bounds established for a particular software product or application.
CSC450CSC450Traits of an effective project manager
15
Problem solving Must be able to diagnose technical and managerial issues Must be able to realize a solution the coordinating personal skills with skills of the
team Must be flexible enough to change directions when initial attempts at realizing
solution are fruitless
Managerial identity Must take charge of project Must have the confidence to take control when necessary Must allow competent persons to follow their own initiatives
Achievement Must reward initiative and accomplishment
Influence and team building Must be able to “read” people Must be able to understand verbal and non-verbal signals Must remain under control in high-stress situations
CSC450CSC450
Organizational Paradigms
16
closed paradigm—structures a team along a traditional hierarchy of authority E.g. chief programmer team
random paradigm—structures a team loosely and depends on individual initiative of the team members
open paradigm—attempts to structure a team in a manner that achieves some of the controls associated with the closed paradigm but also much of the innovation that occurs when using the random paradigm Democratic teams
synchronous paradigm—relies on the natural compartmentalization of a problem and organizes team members to work on pieces of the problem with little active communication among themselves
CSC450CSC450Agile Teams
17
Team members must have trust in one another. The distribution of skills must be appropriate to
the problem. Mavericks may have to be excluded from the
team, if team cohesiveness is to be maintained. Team is “self-organizing”
An adaptive team structure Uses elements of random, open, and synchronous
paradigms Significant autonomy
CSC450CSC450
Software Teams
18
the difficulty of the problem to be solved the size of the resultant program(s) in lines of
code or function points the time that the team will stay together (team
lifetime) the degree to which the problem can be
modularized the required quality and reliability of the system
to be built the rigidity of the delivery date the degree of sociability (communication)
required for the project How well people know each other
Factors to be considered
CSC450CSC450
The Product
19
Software Scope- an estimation dilemma Context Information objectives Function and perfrmance
Problem Decomposition
21 Five Phases of Project Management
Scoping the Project
Adapted from Weiss, J.W., and Wysocki, R.K. 1992. 5-Phase Project Management: A Practical Planning and Implementation Guide. Reading, MA: Addison Wesley.
Developing the Plan
Scoping the Project
Launching thePlan
Monitoring &Controlling
Closing Out the Project
Scoping the Project
Scoping the Project
22 Scoping The Project
Define the Project Objectives
State the Problem/Opportunity
Establish the Project Goal
Identify theSuccess Criteria
List Assumptions,Risks, Obstacles
Adapted from Weiss, J.W., and Wysocki, R.K. 1992. 5-Phase Project Management:
A Practical Planning and Implementation Guide. Reading, MA: Addison Wesley.
Scoping the Project
Scoping the Project
Scoping the Project
Scoping the Project
CSC450CSC450
Scoping Document Content
23
What is to be done Why it is to be done The value it provides if it is done
CSC450CSC450
24
Project Scoping FormProject Name Project
ManagerTeam Members
Problem / Opportunity (Why do this project?):
Project Goal:
Objectives (Specific, Measurable, Assignable, Realistic, Time-Based (SMART)), Duration? Cost?
Success Criteria (Outcomes):
Assumptions, Risks, Obstacles:
CSC450CSC450Scoping
25
Problem/Opportunity A statement of fact that everyone in the organization will
accept as true Should communicate why the project should be accomplished
Goal Defines the final deliverable and outcome States in clear terms what is to be accomplished Is a reference point for questions about scope
and purpose of the project “SMART” objectives
27 Five Phases of Project Management
Scoping the Project
Adapted from Weiss, J.W., and Wysocki, R.K. 1992. 5-Phase Project Management: A Practical Planning and Implementation Guide. Reading, MA: Addison Wesley.
Developing the Project Plan
Scoping the Project
Launching thePlan
Monitoring &Controlling
Closing Out the Project
28 Developing The Plan
Construct/AnalyzeProject Schedule
Prepare theProject Proposal
Identify ProjectTasks (WBS)
Estimate Task Duration
Estimate Resource Requirements
CSC450CSC450Estimates and Project Schedule
29
Estimates and project schedule: A work breakdown structure (WBS) is defined.
A list of tasks needed to develop the software. An estimate of the effort required for each
task in the WBS. A project schedule is created by assigning
resources and determining the calendar time required for each task.
CSC450CSC450Resource List
30
The project plan should contain a list of all persons and resources that will be used on the project. A resource is any hardware, software, etc. that
is necessary for the project The resource list should:
Give resource a name Give a brief description of resource List resource availability Specify cost (if applicable)
31
Planning the Project:Work Breakdown Structure (WBS)
• A WBS is the functional decomposition of a system
• Breaks the project into chunks of work at a level of detail that meets planning and scheduling needs
32 WBS Example: Grocery Store
Prepare at home (level 1 task)Create Grocery List (level 2 task)
check pantry for needed items (level 3 task)check refrigerator for needed itemscheck items in refrigerator for expiration date
Determine method of payment
Transport to storeSelect method of transportation, e.g., carSelect route Drive to storePark
Prepare at storeSelect method of holding groceries
Plan for gathering groceries etc.
CSC450CSC450Work Breakdown Structure
33
Software Project
System Engineering Analysis Design Testing
ArchitecturalDesign
DetailedDesign
ProceduralDesign
DatabaseDesign
UserInterfaceDesign
…
AlgorithmDesign
Test CaseDesign
DetermineWork
Patterns
DesignInterface
DesignReview
……
DefineOperationalSignatures
DefinePre/post
Conditions
37
Resource Activity• Identify all the resources required
for each activity• Estimate the duration of each
activity
38
Dependencies• Linkage between and among activities/tasks• Dependencies create the backbone of the
project network
39
Dependencies• Finish to start
• Predecessor Task: A
• Successor Task: B
• Arrow head indicates dependency relationship: Task B cannot begin until Task A is complete
A B
40
Gantt Chart• Visual scheduling tool• Graphical representation of information in WBS• Show dependencies between tasks, personnel,
and other resources allocations• Track progress towards completion
Developed by Engineer, Henry L. Gant, 1917.
Henry Laurence Gantt (1861-1919)
41
Building a Gantt Chart• List all tasks and milestones from the WBS
along the vertical axis• List time frame along the horizontal axis
Activity 1
Activity 2
Milestone
Time Frame: day 1 day 2 day3
42
Building a Gantt Chart
• Activities: Create box the length of each activity time duration– E.g., activity one is scheduled from day1-day3
• Milestones: Create a diamond on the day the milestone is scheduled to be completed
Activity 1
Activity 2
Milestone
Time Frame: day 1 day 2 day3
43
Building a Gantt Chart• Dependencies: Show dependencies between activities with
arrows– E.g., activity 2 cannot start until activity 1 is complete
Activity 1
Activity 2
Milestone
Time Frame: day 1 day 2 day3… day 23
45
Gantt Chart – Example
Estimated time to complete a task
Task
s
Bars indicate time requirement
Arrows indicate task dependencies: Predecessor task Successor task
46
Responsibility Matrix• Creates accountability by assigning each task to a
personTask Joe Mary Renee
Activity 1 x
Activity 2 x
Activity 3 x
CSC450CSC450Scheduling: Critical Path Method (CPM)
47
CPM developed in 1956/57 by Kelly & Walker for DuPont
Goal Shut down chemical plants for
maintenance, restart plants when maintenance was completed.
CSC450CSC450Scheduling: Critical Path Method (CPM)
48
CPM models the activities and events of a project as a network.
Activities are depicted as nodes on the network Events that signify the beginning or ending of activities
are depicted as arcs or lines between nodes
CSC450CSC450Scheduling: Critical Path Method (CPM)
49
Steps in CPM Project Planning Determine the sequence of activities. Draw a network diagram. Estimate the completion time for each activity. Identify the critical path (longest path through the network) Update the CPM diagram as the project progresses.
CSC450CSC450Program Evaluation and Review Technique (PERT)
50
Steps in PERT Project Planning Determine the sequence of activities. Draw a network diagram. Estimate the completion time for each activity. Identify the critical path (longest path through the network) Update the PERT diagram as the project progresses.
CSC450CSC450
1: Which tasks are on the critical path? 2: What is the slack time for tasks C, D and G? 3: Task C is delayed by one day. What impact
would this have on the completion date of the project? Why?
4: Task A will be delayed by 2 days because some equipment has arrived late. If the project manager wants to finish the project on time he will need to shorten the duration of one or more of the tasks. How can he achieve this?
5: The project manager reduces the durations of tasks D and F by one day each. How will this affect the finishing date of the project?
51
CSC450CSC450
1: Which tasks are on the critical path?
52
ANSWER: A,B,D,F,I
Possible paths:
A,B,C,E,I = 2+3+1+4+3 = 13 days
A,B,D,F,I = 2+3+3+3+3 = 14 days
A,G,H,I = 2+2+5+3 = 12 days
CSC450CSC450
2: What is the slack time for tasks C, D and G?
53
Path C,E = 5 days, Path D,F = 6 days
Path B,C,E = 8 days. Path B, D, F = 9 daysPath G, H = 7 days.
Difference (slack) = 1 day for tasks C or E compared to D,F
So G & H have 2 days’ slack between them. B,C or E have 1 day’s slack. B,D,F have no slack.
TASKS C and D…
TASK G…
CSC450CSC450
54
3: Task C starts one day late. What impact would this have on the completion date of the project? Why?
No impact, because task C has one day’s slack (as discovered in previous question!)
CSC450CSC450
55
4: Task A will be delayed by 2 days because some equipment has arrived late. If the project manager still wants to finish the project within the original time frame, he will need to shorten the time for one or more of the tasks. What steps can he take to reduce the number of days allocated to a task?The answer has NOTHING to do with the chart! Just say how jobs can be finished more quickly, e.g. bringing in extra workers from slack tasks, working longer hours, working weekend, streamlining work practices, automating tasks etc.
CSC450CSC450
56
5: The project manager decides to reduce the time needed for tasks D and F by one day each. How effective will this reduction be in achieving his aim of maintaining the original finish time for the project?
It is only partially effective. Reducing tasks D and F by one day each means the path A,B,D,F,I is now 12 days long. However, path A,B,C,E,I is still 13 days so it becomes the longest path, and therefore becomes the new critical path.
The project is now 13 days long instead of 14, a saving of only one day.
CSC450CSC450Software Project Plan
57
The project plan defines the work that will be done and who will do it. A list of all resources that will be needed for the product
and their availability A work breakdown structure that describes tasks A set of estimates for the tasks A project schedule that identifies when tasks will be
done A list of persons/teams and other resources allocated to
tasks A risk plan that identifies risks and how they will be
handled Project monitoring and control mechanisms Etc.
The preliminary Software Project Plan will have all the available information
CSC450CSC450Lack of Leadership
60
It takes more than a talented and motivated team to make a successful project.
Lack of leadership manifests itself in the team members suffering from: Tunnel vision Over-reliance on gut instincts Repeated false starts in the project
CSC450CSC450The Mid-Course Correction
61
A change in project priorities throws the team into disarray
This usually comes from a lack of understanding of the scope of the project
When the engineers don’t understand the users’ and stakeholders’ needs, they build the wrong software And they might not find out that there’s a
problem until after the work is done!
CSC450CSC450The Detached Engineering Team
62
There is an artificial wall between the people who build the software and those who need it. The business people feel like the
engineers are moving too slowly and don’t care about their needs
The engineers feel like they’re always shooting at a moving target because business people don’t know what they want
CSC450CSC450Solution: Fixing Planning Problems
63
Lack of Leadership, the Mid-Course Correction and the Detached Engineering Team are project planning problems Use a project plan/vision and scope
document to define the needs of the users and stakeholders
Use a project plan to specify how those needs will be met
Use risk planning to keep the plan realistic
CSC450CSC450Solution: Fixing Planning Problems
64
Conflict resolution Arbitration Confrontation + care Negotiation Coordination device Separation Rules
CSC450CSC450Padded Estimates Generate Distrust
65
Programmers add extra time to their estimates They may do this because of
unknowns Often they have been late in the
past, and “know” that they will need extra time
Project managers and senior managers figure this out, and …..
CSC450CSC450Self-Fulfilling Prophecy
66
A project manager under pressure imposes a deadline, and creates unrealistic estimates that meet it The team works nights and weekends to
meet the deadline The project manager feels vindicated The team eventually gets frustrated and
disillusioned
CSC450CSC450Solution: Fixing Estimation Problems
67
Padded estimates and the self-fulfilling prophecy are estimation problems Adopting a repeatable estimation process can
help fix them By writing down assumptions, the team can
handle risks without padding their time – and even avoid the risks altogether
It reduces padding and increases honesty through transparency, by letting the team correct each other in an open meeting
CSC450CSC450Working Backwards From a Deadline
68
Project managers approach a non-negotiable deadline for a project by working backwards They shorten the tasks in the schedule or
cutting them entirely until everything fits When the schedule gets tight, any non-
programming activities are cut and the software is released before it’s finished
CSC450CSC450Misunderstood Predecessors
69
The project manager does not take the time to understand how tasks depend on each other
Problems are discovered partway through the project. One task can’t be started because it depends
on another Delays cascade through the project,
getting increasingly worse Some programmers are stuck waiting with
nothing to do, while others work overtime
CSC450CSC450Solution: Fixing Scheduling Problems
70
Working backwards from a deadline and misunderstood predecessors are symptoms of underlying scheduling problems They can be avoided by adopting good
planning and estimation practices and creating a project schedule
Schedule techniques like critical path analysis can help spot problems early on
CSC450CSC450Problems Are Found Too Late
71
There are preventable defects in the software that aren’t caught until late in the project The team may misunderstand a need - its
not discovered until delivery Requirements may be missed or incorrect The design may be difficult to use or fail to
take all of the features into account
CSC450CSC450Big, Useless Meetings
72
A project manager who has previously been burned by problems that were found too late is determined to avoid falling into the same trap He calls a big meeting with everyone who
could possibly have input The meeting drags on for hours, without
making any real progress Eventually, everyone gives up and goes back
to the way they did things before
CSC450CSC450The Indispensable “Hero”
73
One “critical” person is seen as the clear top designer/programmer, etc. and all important work is sent through him He may have a unique skill or experience He is always working long hours – and
causing bottlenecks
CSC450CSC450Solution: Fixing Review Problems
74
Problems that are found too late, big useless meetings, and the indispensable “hero” are problems which can be solved with reviews Reviews can catch defects early, when they are
cheaper to fix A review meeting only includes the people
necessary for the work to be done Reviews – especially code reviews – can help
the “hero” spread his expertise and knowledge
CSC450CSC450Scoping: Risk Analysis
76
Identify factors that might affect the outcome or completion of the project
Used to alert management to factors that may interfere with project work
Types of assumptions and risks Technological Environmental Interpersonal Cultural Political
76
CSC450CSC450
77
Project Risks
What can go wrong?What is the likelihood?What will the damage be?What can we do about it?
CSC450CSC450
78
Reactive Risk Management
project team reacts to risks when they occur
mitigation—plan for additional resources in anticipation of fire fighting
fix on failure—resource are found and applied when the risk strikes
crisis management—failure does not respond to applied resources and project is in jeopardy
CSC450CSC450
79
Proactive Risk Management
Formal risk analysis is performed Organization corrects the root causes
of risk TQM concepts and statistical SQA Examining risk sources that lie beyond
the bounds of the software Developing the skill to manage change
CSC450CSC450
80
Seven Principles
1. Maintain a global perspective—view software risks within the context of system and the business problem
2. Take a forward-looking view—think about the risks that may arise in the future; establish contingency plans
3. Encourage open communication—if someone states a potential risk, don’t discount it.
4. Integrate—a consideration of risk must be integrated into the software process
5. Emphasize a continuous process—the team must be vigilant throughout the software process, modifying identified risks as more information is known and adding new ones as better insight is achieved.
6. Develop a shared product vision—if all stakeholders share the same vision of the software, it likely that better risk identification and assessment will occur.
7. Encourage teamwork—the talents, skills and knowledge of all stakeholder should be pooled
CSC450CSC450
82
Risk Identification
Product size—risks associated with the overall size of the software to be built or modified.
Business impact—risks associated with constraints imposed by management or the marketplace.
Customer characteristics—risks associated with the sophistication of the customer and the developer's ability to communicate with the customer in a timely manner.
Process definition—risks associated with the degree to which the software process has been defined and is followed by the development organization.
Development environment—risks associated with the availability and quality of the tools to be used to build the product.
Technology to be built—risks associated with the complexity of the system to be built and the "newness" of the technology that is packaged by the system.
Staff size and experience—risks associated with the overall technical and project experience of the software engineers who will do the work.
CSC450CSC450
83
Assessing Project Risk-I
Have top software and customer managers formally committed to support the project?
Are end-users enthusiastically committed to the project and the system/product to be built?
Are requirements fully understood by the software engineering team and their customers?
Have customers been involved fully in the definition of requirements?
Do end-users have realistic expectations?
CSC450CSC450
84
Assessing Project Risk-II
Is project scope stable? Does the software engineering team
have the right mix of skills? Are project requirements stable? Does the project team have experience
with the technology to be implemented? Is the number of people on the project
team adequate to do the job? Do all customer/user constituencies
agree on the importance of the project and on the requirements for the system/product to be built?
CSC450CSC450
85
Risk Components
performance risk—the degree of uncertainty that the product will meet its requirements and be fit for its intended use.
cost risk—the degree of uncertainty that the project budget will be maintained.
support risk—the degree of uncertainty that the resultant software will be easy to correct, adapt, and enhance.
schedule risk—the degree of uncertainty that the project schedule will be maintained and that the product will be delivered on time.
CSC450CSC450
86
Risk Projection
Risk projection, also called risk estimation, attempts to rate each risk in two ways the likelihood or probability that the risk is
real the consequences of the problems
associated with the risk, should it occur. The are four risk projection steps:
establish a scale that reflects the perceived likelihood of a risk
delineate the consequences of the risk estimate the impact of the risk on the project and
the product, note the overall accuracy of the risk projection so
that there will be no misunderstandings.
CSC450CSC450
87
Risk Exposure (Impact)
The overall risk exposure, RE, is determined using the following relationship [HAL98]:
RE = P x C
where P is the probability of occurrence for a risk, and C is the cost to the project should the risk occur.
CSC450CSC450
88
Risk Exposure Example
Risk identification. Only 70 percent of the software components scheduled for reuse will, in fact, be integrated into the application. The remaining functionality will have to be custom developed.
Risk probability. 80% (likely). Risk impact. 60 reusable software components were planned. If
only 70 percent can be used, 18 components would have to be developed from scratch (in addition to other custom software that has been scheduled for development). Since the average component is 100 LOC and local data indicate that the software engineering cost for each LOC is $14.00, the overall cost (impact) to develop the components would be 18 x 100 x 14 = $25,200.
Risk exposure. RE = 0.80 x 25,200 ~ $20,200.
CSC450CSC450
89
mitigation—how can we avoid the risk?
monitoring—what factors can we track that will enable us to determine if the risk is becoming more or less likely?
management—what contingency plans do we have if the risk becomes a reality?
Risk Mitigation, Monitoring,and Management
CSC450CSC450
90
Building a Risk Table
Category Probability Impact RMMM
RiskMitigationMonitoring
& Management
Risk Priority
CSC450CSC450
91
Building the Risk Table
Estimate the probability of occurrence
Estimate the impact on the project on a scale of 1 to 5, where 1 = low impact on project success 5 = catastrophic impact on project
success sort the table by probability and
impact
CSC450CSC450
92
Risk Due to Product Size
• estimated size of the product in LOC or FP?
• estimated size of product in number of programs, files, transactions?
• percentage deviation in size of product from average for previous products?
• size of database created or used by the product?
• number of users of the product?
• number of projected changes to the requirements for the product? before delivery? after delivery?
• amount of reused software?
Attributes that affect risk:
CSC450CSC450
93
Risk Due to Business Impact
• affect of this product on company revenue?
• visibility of this product by senior management?
• reasonableness of delivery deadline?
• number of customers who will use this product
• interoperability constraints
• sophistication of end users?
• amount and quality of product documentation that must be produced and delivered to the customer?
• governmental constraints
• costs associated with late delivery?
• costs associated with a defective product?
Attributes that affect risk:
CSC450CSC450
94
Risks Due to the Customer
• Have you worked with the customer in the past?
• Does the customer have a solid idea of requirements?
• Has the customer agreed to spend time with you?
• Is the customer willing to participate in reviews?
• Is the customer technically sophisticated?
• Is the customer willing to let your people do their job—that is, will the customer resist looking over your shoulder during technically detailed work?
• Does the customer understand the software engineering process?
Questions that must be answered:
CSC450CSC450
95
Risks Due to Process Maturity
• Have you established a common process framework?
• Is it followed by project teams?• Do you have management support for software engineering
• Do you have a proactive approach to SQA? • Do you conduct formal technical reviews?
• Are CASE tools used for analysis, design and testing?
• Are the tools integrated with one another?
• Have document formats been established?
Questions that must be answered:
CSC450CSC450
96
Technology Risks
• Is the technology new to your organization?• Are new algorithms, I/O technology required? • Is new or unproven hardware involved?
• Does the application interface with new software?
• Is a specialized user interface required?
• Is the application radically different?• Are you using new software engineering methods?
• Are you using unconventional software development methods, such as formal methods, AI-based approaches,
artificial neural networks?
• Are there significant performance constraints?
• Is there doubt the functionality requested is "do-able?"
Questions that must be answered:
CSC450CSC450
97
Staff/People Risks
• Are the best people available?• Does staff have the right skills?• Are enough people available?• Are staff committed for entire duration?• Will some people work part time? • Do staff have the right expectations?• Have staff received necessary training?• Will turnover among staff be low?
Questions that must be answered:
CSC450CSC450
98
Project: Embedded software for XYZ systemRisk type: schedule riskPriority (1 low ... 5 critical): 4Risk factor: Project completion will depend on tests which require hardware component under development. Hardware component delivery may be delayedProbability: 60 %Impact: Project completion will be delayed for each day that hardware is unavailable for use in software testingMonitoring approach: Scheduled milestone reviews with hardware groupContingency plan: Modification of testing strategy to accommodate delay using software simulationEstimated resources: 6 additional person months beginning 7-1-96
Recording Risk Information
CSC450CSC450Risk Plan
99
A risk plan is a list of all risks that threaten the project, along with a plan to mitigate some or all of those risks. The project manager selects team members to
participate in a risk planning session: The team members brainstorm potential risks The probability and impact of each risk is estimated A risk plan is constructed
101
Project Scoping FormProject Name Project
ManagerTeam Members
Problem / Opportunity (Why do this project?):
Project Goal:
Objectives (Specific, Measurable, Assignable, Realistic, Time-Based (SMART)), Duration? Cost?
Success Criteria (Outcomes):
Assumptions, Risks, Obstacles:
Summary of Risk Analysis
CSC450CSC450The Project
103
Projects get into trouble when … Software people don’t understand their customer’s
needs. The product scope is poorly defined. Changes are managed poorly. The chosen technology changes. Business needs change [or are ill-defined]. Deadlines are unrealistic. Users are resistant. Sponsorship is lost [or was never properly obtained]. The project team lacks people with appropriate skills. Managers [and practitioners] avoid best practices and
lessons learned.
CSC450CSC450Common-Sense Approach to Projects
104
Start on the right foot. This is accomplished by working hard (very hard) to understand the problem that is to be solved and then setting realistic objectives and expectations.
Maintain momentum. The project manager must provide incentives to keep turnover of personnel to an absolute minimum, the team should emphasize quality in every task it performs, and senior management should do everything possible to stay out of the team’s way.
Track progress. For a software project, progress is tracked as work products (e.g., models, source code, sets of test cases) are produced and approved (using formal technical reviews) as part of a quality assurance activity.
Make smart decisions. In essence, the decisions of the project manager and the software team should be to “keep it simple.”
Conduct a postmortem analysis. Establish a consistent mechanism for extracting lessons learned for each project.
CSC450CSC450
To Get to the Essence of a Project105
Why is the system being developed? What will be done? When will it be accomplished? Who is responsible? Where are they organizationally located? How will the job be done technically and
managerially? How much of each resource (e.g., people,
software, tools, database) will be needed?Barry Boehm
CSC450CSC450Critical Practices106
Formal risk management Empirical cost and schedule
estimation Metrics-based project
management Defect tracking against quality
targets People aware project
management
CSC450CSC450Summary107
In this class we discussed: Software project management Project management activities Teams Project management problems Risk management