Software Project Management - University of Waterloo

61
Software Project Management Software Project Management

Transcript of Software Project Management - University of Waterloo

Page 1: Software Project Management - University of Waterloo

Software Project ManagementSoftware Project Management

Page 2: Software Project Management - University of Waterloo

ObjectivesObjectives

Introduce students to a variety of approaches and techniques in SPMUse current SPM toolsDevelop new SPM ideasDocument reading, experiences and ideasImprove writing and presentation skills

Page 3: Software Project Management - University of Waterloo

TodayToday

Introduction to SE 362Fundamentals of Project ManagementIntroduction to Software Project Management

Page 4: Software Project Management - University of Waterloo

Course OutlineCourse Outline

Introduction to PM and SPMSoftware models and process improvementProject planning, scheduling, estimationPersonnel and project organizationChange management, monitoring & controlProtocols and standardsSoftware QA and risk management

Page 5: Software Project Management - University of Waterloo

Workload and EvaluationWorkload and Evaluation

Six assignments (30%)Midterm (20%)Final Exam (50%)

In-class presentations, critiques, discussionGroupwork for three of the assignments

Page 6: Software Project Management - University of Waterloo

TextbooksTextbooksRecommended Text (Free, in the library!)Quality Software Project Management, Futrell & Shafer

Lots of Other Texts (Widely varying content)Rapid Development, Steve McConnellInformation Technology Project Management, Kathy

SchwalbeIT Project Management, Jack MarchewkaSoftware Engineering Project Management, edited by

Richard H. ThayerSoftware Project Survival Guide, Steve McConnell

Page 7: Software Project Management - University of Waterloo

FormatFormat

Essentials of software project managementResearch and textbook readings and writingReal-world case studiesIndustry visitorsHighly interactive

Page 8: Software Project Management - University of Waterloo

My BackgroundMy Background

Civil EngineeringInformation Systems Management15 years each in industry and academia1 year with KPMG, IT ConsultingProjects of all shapes and sizes – health, construction, government

Page 9: Software Project Management - University of Waterloo

PM ProfessionPM Profession

Professional Organizations– Project Management Institute (PMI) (pmi.org)– Software Engineering Institute (SEI)– IEEE Software Engineering Group

Certification– PMI PMP

The “PMBOK” – PM Body of Knowledge

Page 10: Software Project Management - University of Waterloo

Project Management SkillsProject Management Skills

LeadershipCommunicationsProblem SolvingNegotiatingInfluencing the OrganizationMentoringProcess and technical expertise

Page 11: Software Project Management - University of Waterloo

Software Project ManagementSoftware Project ManagementManagement

ProjectManagement

SoftwareProject

Management

Page 12: Software Project Management - University of Waterloo

Some PM HistorySome PM History

1970’s: Early PM ideas and software– military, defense, construction industry– Fred Brooks, The Mythical Man-Month

1980’s: SPM, TQM1990’s: Large shift to PM-based models– 1990-93: Re-engineering, self-directed teams– 1996-99: Risk mgmt, project offices

2000’s: Global projects

Page 13: Software Project Management - University of Waterloo

Project ManagementProject Management

What’s a project?PMI definition– A project is a temporary endeavor undertaken

to create a unique product or serviceProgressively elaborated– With repetitive elements

A project manager– Analogy: conductor, coach, captain

Page 14: Software Project Management - University of Waterloo

Project vs. Program Project vs. Program ManagementManagement

What’s a ‘program’?Mostly differences of scaleOften a number of related projectsLonger than projectsDefinitions vary

Page 15: Software Project Management - University of Waterloo

Interactions / StakeholdersInteractions / Stakeholders

As a PM, who do you interact with?Project Stakeholders– Project sponsor– Executives– Team (developers and maybe others)– Customers– Contractors (as needed)– Functional managers

Page 16: Software Project Management - University of Waterloo

PM Tools: SoftwarePM Tools: SoftwareLow-end– Basic features, tasks management, charting– MS Excel, Milestones Simplicity

Mid-market– Handle larger projects, multiple projects, analysis tools– MS Project (approx. 50% of market)

High-end– Very large projects, specialized needs, enterprise– AMS Realtime– Primavera Project Manager

Page 17: Software Project Management - University of Waterloo

Tools: Gantt ChartTools: Gantt Chart

Page 18: Software Project Management - University of Waterloo

Tools: Network DiagramTools: Network Diagram

Page 19: Software Project Management - University of Waterloo

PMI’s 9 Knowledge AreasPMI’s 9 Knowledge Areas1. Project integration management2. Scope3. Time4. Cost5. Quality6. Human resource7. Communications8. Risk9. Procurement

Page 20: Software Project Management - University of Waterloo

StrategyStrategy

Classic Mistake AvoidanceDevelopment FundamentalsRisk ManagementSchedule-Oriented Practices

Page 21: Software Project Management - University of Waterloo

Four Project DimensionsFour Project Dimensions

PeopleProcessProductTechnology

Page 22: Software Project Management - University of Waterloo

TradeTrade--off Triangleoff Triangle

Fast, cheap, good. Choose two.

Page 23: Software Project Management - University of Waterloo

TradeTrade--off Triangleoff Triangle

Know which of these are fixed & variable for every project

Page 24: Software Project Management - University of Waterloo

PeoplePeople

“It’s always a people problem.” Gerald Weinberg, The Secrets of Consulting

Developer productivity: 10-to-1 range- Improvements:

- Team selection- Team organization– Motivation

Page 25: Software Project Management - University of Waterloo

People …2People …2

Other success factors– Matching people to tasks– Career development– Balance: individual and team– Clear communication

Page 26: Software Project Management - University of Waterloo

ProcessProcess

Is process stifling? Two Types: Management & TechnicalDevelopment fundamentalsQuality assuranceRisk managementLifecycle planning

Page 27: Software Project Management - University of Waterloo

Process …2Process …2

Customer orientationProcess maturity improvementRework avoidanceAvoid abuse by neglect

Page 28: Software Project Management - University of Waterloo

ProductProduct

The “tangible” dimensionProduct size managementProduct characteristics and requirementsFeature creep management

Page 29: Software Project Management - University of Waterloo

TechnologyTechnology

Often the least important dimensionLanguage and tool selectionValue and cost of reuse

Page 30: Software Project Management - University of Waterloo

PlanningPlanning

Determine requirementsDetermine resources Select lifecycle modelDetermine product features strategy

Page 31: Software Project Management - University of Waterloo

TrackingTracking

Cost, effort, schedulePlanned vs. ActualHow to handle when things go off plan?

Page 32: Software Project Management - University of Waterloo

MeasurementsMeasurements

Actual (To date) and Projected– Cost– Schedule– Effort– Product features

Page 33: Software Project Management - University of Waterloo

Measurements …2Measurements …2

Alternatives– Earned value analysis– Defect rates– Productivity (ex: SLOC)– Complexity (ex: function points)

Page 34: Software Project Management - University of Waterloo

Technical FundamentalsTechnical Fundamentals

RequirementsAnalysisDesignConstructionQuality AssuranceDeployment

Page 35: Software Project Management - University of Waterloo

Project PhasesProject Phases

All projects can be divided into phasesProject Life Cycle is all phases togetherEach phase marked by DeliverablesSame for software project phases

Page 36: Software Project Management - University of Waterloo

Lifecycle RelationshipsLifecycle Relationships

Page 37: Software Project Management - University of Waterloo

Software Project Management Software Project Management

Key Issues: Cost, Quality, TimeSoftware Project PlanningSoftware Project Control

Page 38: Software Project Management - University of Waterloo

Software Project PlanningSoftware Project Planning

Software Requirements Engineering1. Users’ needs, goals, expectations2. Prototyping strategy3. Software requirements specifications4. Requirements traceability method

Page 39: Software Project Management - University of Waterloo

Software Project Planning Software Project Planning -- 22

Project Plan Development1. Activities, tasks2. Cost estimation3. Schedule, finish date

Page 40: Software Project Management - University of Waterloo

Software Project Planning Software Project Planning -- 33

Risk Management1. Anticipate potential problems2. Mitigate or avoid the problems3. Track existing and potential problems

Page 41: Software Project Management - University of Waterloo

Software Project Planning Software Project Planning -- 44

Incremental Release Process Model1. Provide periodic demonstrations2. Reach short-term goals3. Check progress towards long-term goals

Page 42: Software Project Management - University of Waterloo

Software Project Control Software Project Control

Work Package Development1. Work Breakdown Structures (WBS)2. Work Package Specifications3. Binary Tracking Technique4. Earned Value Tracking Technique,

comparing to planned values

Page 43: Software Project Management - University of Waterloo

Software Project Control Software Project Control -- 22

Software Metrics1. Product metrics2. Process metrics

Necessary for planning and control

Page 44: Software Project Management - University of Waterloo

Software Project Control Software Project Control -- 33

Software Configuration Management1. Identify software components 2. Track component changes3. Track documentation

Control software evolution

Page 45: Software Project Management - University of Waterloo

Software Project Control Software Project Control -- 44

Software Quality Assurance1. Use a SQA process2. Use engineering standards

Peer Reviews1. Walkthroughs2. Inspections

Page 46: Software Project Management - University of Waterloo

Software Project Control Software Project Control -- 55

Verification and Validation1. Quality2. Quantity

Software Engineering Assessment1. Validate organizational capability2. Identify software process improvements

Page 47: Software Project Management - University of Waterloo

Software Project PhasesSoftware Project Phases

Page 48: Software Project Management - University of Waterloo

Project Phases A.K.A.Project Phases A.K.A.

Page 49: Software Project Management - University of Waterloo

Classic MistakesClassic Mistakes

Seductive AppealTypes– People-Related– Process-Related– Product-Related– Technology-Related

Page 50: Software Project Management - University of Waterloo

PeoplePeople--Related MistakesRelated Mistakes

Undermined motivationWeak personnel– Weak vs. Junior

Uncontrolled problem employeesHeroicsAdding people to a late project

Page 51: Software Project Management - University of Waterloo

PeoplePeople--Related Mistakes …2Related Mistakes …2

Noisy, crowded officesCustomer-Developer frictionUnrealistic expectationsPolitics over substanceWishful thinking

Page 52: Software Project Management - University of Waterloo

PeoplePeople--Related Mistakes …3Related Mistakes …3

Lack of effective project sponsorshipLack of stakeholder buy-inLack of user input

Page 53: Software Project Management - University of Waterloo

ProcessProcess--Related MistakesRelated Mistakes

Optimistic schedulesInsufficient risk managementContractor failureInsufficient planningAbandonment of plan under pressure

Page 54: Software Project Management - University of Waterloo

ProcessProcess--Related Mistakes …2Related Mistakes …2

Wasted time during fuzzy front endShortchanged upstream activitiesInadequate designShortchanged quality assurance

Page 55: Software Project Management - University of Waterloo

ProcessProcess--Related Mistakes …3Related Mistakes …3

Insufficient management controlFrequent convergenceOmitting necessary tasks from estimatesPlanning to catch-up laterCode-like-hell programming

Page 56: Software Project Management - University of Waterloo

ProductProduct--Related MistakesRelated Mistakes

Requirements gold-plating– Gilding the lily

Feature creepDeveloper gold-plating– Beware the pet project

Push-me, pull-me negotiationResearch-oriented development

Page 57: Software Project Management - University of Waterloo

TechnologyTechnology--Related MistakesRelated Mistakes

Silver-bullet syndromeOverestimated savings from new tools and methods– Fad warning

Switching tools in mid-projectLack of automated source-code control

Page 58: Software Project Management - University of Waterloo

ReferencesReferences

ACM ConferencesICSESEIIEEE Computer Society PressIEEE ComputerJournal of Systems and Software Sciences

Page 59: Software Project Management - University of Waterloo

StandardsStandards

IEEE 1058, Standards for SPM PlanningACMCSAISOSEI’s CMMNational Bureau of Standards

Page 60: Software Project Management - University of Waterloo

SoftwareSoftware

PERT/Gantt/CPM SchedulingWork Breakdown Structure (WBS)COCOMO II Model Definition ManualSim SEProblems and Programmers

Page 61: Software Project Management - University of Waterloo

HomeworkHomework

Assignment 1– Reading 56 pages– Thinking– Writing one page

Choose group partnersStart thinking about Assignment 2