lecture 4: software project management 2008... · lecture 4: software project management software...
TRANSCRIPT
Lecture 4:Software Project Management
Software System Design and ImplementationITCS/ITIS 6112/8112 001Fall 2008
Dr. Jamie PaytonDepartment of Computer ScienceUniversity of North Carolina at Charlotte
Sept. 4, 2008
2
Lecture Overview
Process supportCASE tools
Project management
3
Process Support
Computer-aided software engineering (CASE) Software supporting software development and evolution processes
Activity automationGraphical editors for model developmentData dictionary to manage design entitiesGraphical UI builder for user interface constructionDebuggers to support program fault findingAutomated programming language translators
4
CASE Classification
Functional perspectiveAccording to specific function
Process perspectiveAccording to process activities that are supported
Integration perspectiveAccording to organisation into integrated units
5
Integrated Classification
CASE TechnologyTools• Support an individual task in a process phase
Workbenches• Support a process phase
Environments• Support (most of the) software development process
6
CASE Tools
CASE tool indexhttp://www.unl.csi.cuny.edu/faqs/software-enginering/tools.html
CASE tools for UML modelingDiscussion of UML tools• http://plg.uwaterloo.ca/~migod/uml.htmlMost well-known (popular?) UML modeling tool• Rational Rose
Available on UNCC Novell machinesOther UML modeling tools• http://en.wikipedia.org/wiki/List_of_UML_toolsDrawing tools (my preference)• Microsoft Visio• Omnigraffle
7
Case Technology Limitations
CASE technology is not a silver bulletImpact has not met expectations Improvement is about 40%• Significant, but not orders of magnitude
Only 15% of software engineering is clerical (Glass)80% is intellectual, 5% is creativeIntellectual reasoning/creative thought is not readily automated
CASE technology does not typically support team activity
8
Lecture Overview
Process supportCASE tools
Project management
9
Ensure that software is delivered that meets requirements…on time…and within budget
Project Management Activities Proposal writingProject planning and scheduling (today)Project cost estimation (intertwined with planning)Project monitoring and reviewsPersonnel selection and evaluation (also intertwined)Report writing and presentations
Software Project Management
10
Software Project Management:Planning
Project plan is concerned primarily with developing a schedule and budgetPlanning process activities1. Estimation2. Scheduling3. Task allocation (according to schedule)4. Risk analysis5. Specify rules, policies6. Do the work
11
Software Project Management:Planning Process
1. Planning begins with estimationIdentify needed and available resourcesCalculation of approximate cost, effort, time, resources
2. Using estimates, a schedule is madeSpecify the start and duration of work tasksSpecify dates of milestones• Any significant event in a projectSpecify dates of deliverables• Project results delivered to client
12
Software Project Management:Planning Process (2)
3. Tasks are allocated resources according to schedule4. Risk analysis is performed
• Identify, understand, and assess risk• Plan to prevent, mitigate, respond to risk
5. Specify rules to govern workPolicies and proceduresTools and techniques
13
Software Project Management:Planning Process (3)
6. Start working!Repeat until project is completed:• Do some work• Evaluate the work• Update estimates• Update schedule• Determine if project should continue
• If there is problem, perform formal review to make decision
14
Planning Details
Planning process activities1. Estimation 2. Scheduling3. Task allocation (according to schedule)4. Risk analysis5. Specify rules, policies6. Do the work
15
Estimation
Need to cost estimates to determine feasibility and scheduleSoftware Cost Components
Hardware and software costsTravel and training costsEffort costs (dominant factor)• Salaries of engineers• Social and insurance costs
Social security, health insurance, pensions• Overhead
Building, heating, lightingNetworking and communicationsShared facilities (e.g., library, staff restaurant, etc.)
16
Cost Estimation
Approaches to estimating cost and effortDelay estimation until late in the projectBase estimates on similar completed projectsUse relatively simple decomposition techniques to generate costs and effort estimationsUse one or more empirical models to provide estimates
17
Planning Details
Planning process activities1. Estimation (more later)2. Scheduling3. Task allocation (according to schedule)4. Risk analysis5. Specify rules, policies6. Do the work
18
Project Scheduling
Management needs to judge progressActivities should be organized to produce tangible outputs
Milestones are the end-point of a process activity• Should have an associated formal output
Deliverables are project results delivered to customers• Examples
Software requirements specificationPrototype
Waterfall process allows for straightforward definition of milestones
19
Task Allocation
Divide project into tasks Estimate time and resources required to complete each taskOrganize tasks concurrently to make optimal use of workforceMinimize task dependencies to avoid delays
20
Project Scheduling Process
Estimate resourcesfor activities
Identify activitydependencies
Identifyactivities
Allocate peopleto activities
Create projectcharts
Softwarerequirements
Activity chartsand bar charts
21
Task Durations & Dependencies
Task Duration (days) DependenciesT1 8T2 15T3 15 T1 (M1)T4 10T5 10 T2, T4 (M2)T6 5 T1, T2 (M3)T7 20 T1 (M1)T8 25 T4 (M5)T9 15 T3, T6 (M4)T10 15 T5, T7 (M7)T11 7 T9 (M6)T12 10 T11 (M8)
22
Activity Network
Helps to identifycritical paths inschedule
start
T2
M3T6
Finish
T10
M7T5
T7
M2T4
M5
T8
4/7/99
8 days
14/7/99 15 days
4/8/99
15 days
25/8/99
7 days
5/9/99
10 days
19/9/99
15 days
11/8/99
25 days
10 days
20 days
5 days25/7/99
15 days
25/7/99
18/7/99
10 days
T1
M1 T3T9
M6
T11
M8
T12
M4
23
Activity Timeline (a.k.a. Gantt Charts)
4/7 11/7 18/7 25/7 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9
T4
T1T2
M1
T7T3
M5
T8
M3
M2
T6
T5
M4
T9
M7
T10
M6
T11M8
T12
Start
Finish
24
Project Staffing
Having the right people is key to the success of the projectThe number of people working on a project varies depending on the phase of the projectIssues
Project budget may not allow for the use of highly-paid staffStaff with the appropriate experience may not be availableMay wish to develop employee skills on the job
Managers have to work within these constraints Especially when there are shortages of trained staff
25
Staff Allocation
26
Scheduling Issues
Estimating difficulty of problems is hard So, defining cost of solution is hard, too
“The more, the merrier” or “The more, the faster” does not necessarily apply
The more people on the project, the more total effort is usually requiredA very rapid build-up of people often correlates with schedule slippage• Adding people to a late project makes it later (Glass, Facts &
Fallacies)• Why?
Murphy’s LawAllow contingency in planning: 20% extra
27
Planning Process Details
Planning process activities1. Estimation (more later)2. Scheduling3. Task allocation (according to schedule)4. Risk analysis5. Specify rules, policies6. Do the work
28
Risk Management
Identify risks and plan to minimise their effectRisk: probability that some adverse circumstance will occur
Project risks affect schedule or resourcesProduct risks affect the quality or performance of software Business risks affect organization developing or procuring the software
29
Risk Management Process
30
Risk Identification
Technology risksHardware and software used to build system
People risksDevelopment team
Organizational risksOrganizational environment
Requirement risksChanges and management of changes
Estimation risksEstimates and resources
31
Risk Analysis
Assess probability and effects of each riskProbability
Very low LowModerateHighVery high
Risk effects CatastrophicSeriousTolerableInsignificant
32
Risk Planning
Consider each risk, develop a strategy to manage itAvoidance strategies
Reduce probability that the risk will ariseMinimization strategies
Reduce impact of the risk Contingency plans
Plan to deal with risk
33
Risk Monitoring
The project may not progress as plannedResource consumption is not as expectedTasks do not take as long as expectedPolicies, procedures, tools, or techniques are not suitableSomething bad happens
Assess risks regularly Is it more or less probable?Have the effects of the risk have changed?
Refer to risk assessment and evaluate strategies for addressing/mitigating problem
May require revising project planDiscuss assessment of key risks at each progress meeting
34
Risk Indicators
Risk type Potential indicatorsTechnology Late delivery of hardware or support software, many
reported technology problemsPeople Poor staff morale, poor relationships amongst team
member, job availabilityOrganisational organisational gossip, lack of action by senior
managementTools reluctance by team members to use tools, complaints
about CASE tools, demands for higher-poweredworkstations
Requirements many requirements change requests, customercomplaints
Estimation failure to meet agreed schedule, failure to clearreported defects
35
Planning Process Details
Planning process activities1. Estimation (more later)2. Scheduling3. Task allocation (according to schedule)4. Risk analysis5. Specify rules, policies6. Do the work
36
Software Project Management:Leading
Direction is needed To follow plansTo use resources efficientlyTo make decisions
…but directing people is not enoughInspirationPleasant work environmentEmotional support
As a project leader, don’t forget the intangibles
37
Summary
Good project management is essential for project successMost significant activities are planning, estimating, and schedulingPlanning and estimating are iterative processes• Continue throughout the course of a project
Management relies on tangible results of process to evaluate progress
A project milestone is a predictable state where a formal report of progress is presented to management
Management must identify and address risks throughout process