anne banks pidduck school of computer scienceapidduck/cs846/lectures/1intro.pdf · fundamentals of...

64
Anne Banks Pidduck School of Computer Science

Upload: others

Post on 28-Jun-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

Anne Banks PidduckSchool of Computer Science

Page 2: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Introduce students to a variety ofapproaches and techniques in SPM

� Identify and critique current SPM literature� Use current SPM tools� Develop new SPM ideas� Document reading, experiences and ideas� Improve writing and presentation skills

Page 3: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Introduction to CS 846� Fundamentals of Project Management� Introduction to Software Project Management

Page 4: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Introduction to PM and SPM� Software models and process improvement� Project planning, scheduling, estimation� Personnel and project organization� Change management, monitoring & control� Protocols and standards� Software QA and risk management

Page 5: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Two small research papers (20%)� In-class presentations (20%)� In-class critiques, discussion, etc. (20%)� One major project and presentation (40%)

� Hopefully something that you can submit toa conference or journal in 2004!

Page 6: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Recommended Text (Collection of Papers)– Software Engineering Project Management, edited by

Richard H. Thayer

� Lots of Other Texts (Widely varying content)– Rapid Development, Steve McConnell– Information Technology Project Management, Kathy

Schwalbe– IT Project Management, Jack Marchewka– Quality Software Project Management, D. Shafer– Software Project Survival Guide, Steve McConnell

Page 7: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Essentials of software project management� Research readings and writing� Practical, rapid development focus� Real-world case studies� Industry visitors� Highly interactive

Page 8: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Civil Engineering� Information Systems Management� 15 years each in industry and academia� 1 year with KPMG, IT Consulting� Projects of all shapes and sizes – health,

construction, government

Page 9: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Name� Academic Background� Industry Experience� Project Management Experience� Expectations & Objectives

Page 10: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� 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 11: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Leadership� Communications� Problem Solving� Negotiating� Influencing the Organization� Mentoring� Process and technical expertise

Page 12: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

Management

ProjectManagement

SoftwareProject

Management

Page 13: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

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

� 1980’s: SPM, TQM� 1990’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 14: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� What’s a project?� PMI definition

– A project is a temporary endeavor undertakento create a unique product or service

� Progressively elaborated– With repetitive elements

� A project manager– Analogy: conductor, coach, captain

Page 15: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� What’s a ‘program’?� Mostly differences of scale� Often a number of related projects� Longer than projects� Definitions vary

Page 16: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� 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 17: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Low-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 18: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to
Page 19: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to
Page 20: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Project integration management� Scope� Time� Cost� Quality� Human resource� Communications� Risk� Procurement

Page 21: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� One size does not fit all� Patterns and Anti-Patterns� Spectrums

– Project types– Sizes– Formality and rigor

Page 22: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Faster delivery� Reduced risk (Why?)� Increased visibility to customer� Can’t forsake quality

Page 23: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Classic Mistake Avoidance� Development Fundamentals� Risk Management� Schedule-Oriented Practices

Page 24: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� People� Process� Product� Technology

Page 25: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Fast, cheap, good. Choose two.

Page 26: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Know which of these are fixed & variablefor every project

Page 27: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� “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 28: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

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

Page 29: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Is process stifling?� Two Types: Management & Technical� Development fundamentals� Quality assurance� Risk management� Lifecycle planning

Page 30: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Customer orientation� Process maturity improvement� Rework avoidance� Avoid abuse by neglect

Page 31: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� The “tangible” dimension� Product size management� Product characteristics and requirements� Feature creep management

Page 32: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Often the least important dimension� Language and tool selection� Value and cost of reuse

Page 33: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Determine requirements� Determine resources� Select lifecycle model� Determine product features strategy

Page 34: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Cost, effort, schedule� Planned vs. Actual� How to handle when things go off plan?

Page 35: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

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

Page 36: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

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

Page 37: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Requirements� Analysis� Design� Construction� Quality Assurance� Deployment

Page 38: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� All projects can be divided into phases� Project Life Cycle is all phases together� Each phase marked by Deliverables� As for software project phases

Page 39: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to
Page 40: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Key Issues: Cost, Quality, Time� Software Project Planning� Software Project Control

Page 41: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Software Requirements Engineering� Users’ needs, goals, expectations� Prototyping strategy� Software requirements specifications� Requirements traceability method

Page 42: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

2. Project Plan Development� Activities, tasks� Cost estimation� Schedule, finish date

Page 43: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

3. Risk Management� Anticipate potential problems� Mitigate or avoid the problems� Track existing and potential problems

Page 44: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

4. Incremental Release Process Model� Provide periodic demonstrations� Reach short-term goals� Check progress towards long-term goals

Page 45: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

5. Work Package Development� Work Breakdown Structures (WBS)� Work Package Specifications� Binary Tracking Technique� Earned Value Tracking Technique,

comparing to planned values

Page 46: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

6. Software Metrics� Product metrics� Process metricsNecessary for planning and control

Page 47: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

7. Software Configuration Management– Identify software components– Track component changes– Track documentation– Control software evolution

Page 48: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

8. Software Quality Assurance� Use a SQA process� Use engineering standards

9. Peer Reviews� Walkthroughs� Inspections

Page 49: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

10. Verification and Validation� Quality� Quantity

11. Software Engineering Assessment� Validate organizational capability� Identify software process improvements

Page 50: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to
Page 51: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to
Page 52: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Seductive Appeal� Types

– People-Related– Process-Related– Product-Related– Technology-Related

Page 53: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Undermined motivation� Weak personnel

– Weak vs. Junior� Uncontrolled problem employees� Heroics� Adding people to a late project

Page 54: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Noisy, crowded offices� Customer-Developer friction� Unrealistic expectations� Politics over substance� Wishful thinking

Page 55: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Lack of effective project sponsorship� Lack of stakeholder buy-in� Lack of user input

Page 56: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Optimistic schedules� Insufficient risk management� Contractor failure� Insufficient planning� Abandonment of plan under pressure

Page 57: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Wasted time during fuzzy front end� Shortchanged upstream activities� Inadequate design� Shortchanged quality assurance

Page 58: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Insufficient management control� Frequent convergence� Omitting necessary tasks from estimates� Planning to catch-up later� Code-like-hell programming

Page 59: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Requirements gold-plating– Gilding the lily

� Feature creep� Developer gold-plating

– Beware the pet project� Push-me, pull-me negotiation� Research-oriented development

Page 60: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Silver-bullet syndrome� Overestimated savings from new tools and

methods– Fad warning

� Switching tools in mid-project� Lack of automated source-code control

Page 61: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� ACM Conferences� ICSE� SEI� IEEE Computer Society Press� IEEE Computer� Journal of Systems and Software Sciences

Page 62: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� IEEE 1058, Standards for SPM Planning� ACM� CSA� ISO� SEI’s CMM� National Bureau of Standards

Page 63: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� PERT/Gantt/CPM Scheduling� Work Breakdown Structure (WBS)� COCOMO II Model Definition Manual� Sim SE� Problems and Programmers

Page 64: Anne Banks Pidduck School of Computer Scienceapidduck/CS846/Lectures/1intro.pdf · Fundamentals of Project Management Introduction to Software Project Management. Introduction to

� Read intro.pdf� Read Thayer, pages 1 to 59� Write Assignment 1 (1 page!)� Document your Course Objectives� Choose three areas of interest for seminars� Choose a different area for final project