introduction to the personal software process and the team software process dr. kaan kurtel

32
Introduction to The Personal Software Process and The Team Software Process Dr. Kaan Kurtel

Upload: ciara-woodfill

Post on 14-Dec-2015

230 views

Category:

Documents


0 download

TRANSCRIPT

Introduction to

The Personal Software Processand

The Team Software Process

Dr. Kaan Kurtel

The Personal Software Process

3

Lecture Overview

• You will– Become familiar with the concepts behind PSP and TSP– Develop ways to measure the size, time, and defects in your work– Use the PSP planning framework to plan and track those tasks– Use the PSP quality strategy to manage the defects in your work and support

the team's quality goals• The topics covered will include

– PSP planning framework– PSP process framework– In-process control and tracking– Estimating and scheduling– Measurement in PSP– Defect management– Defining a personal process– Process analysis and improvement– Team Software Process

4

PSP: A Self-Improvement Processfor Software Engineers

Watts S. Humphrey“PSP: A Self-Improvement

Process for Software Engineers”

Addison Wesley Professional, 2005.

5

The Personal Process Strategy

6

Watts S. Humphrey

• A fellow at the SEI of Carnegie Mellon University, which he joined in 1986.

• Established the Process Program, led initial development of the CMM, introduced the concepts of Software Process Assessment and Software Capability Evaluation, and most recently, the PSP and TSP.

• From 1959 to 1986 he was associated with IBM Corporation where he was director of programming quality and process.

• Watts S. Humphrey has been awarded the prestigious 2003 National Medal of Technology for his contributions to the software engineering community.

7

The Personal Process Strategy

• The PSP is a self-improvement process that helps you to control, manage, and improve the way you work.

• It is a structured framework for developing software:– forms– guidelines– procedures

• The PSP provides the data you need to make and meet commitments, and it makes the routine elements of your job more predictable and efficient.

8

The PSP’s Purpose

• The PSP is to help you improve your software engineering skills. – You manage your work– Assess your talents– Build your skills– Help you to make better plans – To precisely track your performance– To measure the quality of your products

• Whether you design programs, develop requirements, write documentation, or maintain existing software, the PSP can help you to do better work.

9

The PSP’s Purpose

• The PSP provides the data and analysis techniques you need to determine which technologies and methods work best for you.

• The PSP also provides a framework for understanding why you make errors and how best to find, fix, and prevent them.

• You can determine the quality of your reviews, the defect types you typically miss, and the quality methods that are most effective for you.

10

Software Engineering Discipline

• IEEE– “(1) The application of a systematic, disciplined,

quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.

– (2) The study of approaches as in (1)”• Summerville– “Software engineering is an engineering discipline

that is concerned with all aspects of software production”

11

Software

• In 1958, John Tukey, the world-renowned statistician, coined the term software.

• The term software engineering was used in the title of a NATO conference held in Germany in 1968.

• The IEEE Computer Society first published its Transactions on Software Engineering in 1972.

• The committee established within the IEEE Computer Society for developing software engineering standards was founded in 1976.

12

The Logic for a Software Engineering Discipline

• Software has become a critical part of many of the systems on which modern society depends.

• Everyone seems to need more and better software faster and cheaper.

• Many development projects are now so large and complex that a few brilliant specialists can no longer handle them.

• Unfortunately, there is no sign of a magical new technology to solve these problems.

• We must improve the quality and predictability of our work or society will have to either forgo these more sophisticated systems or suffer the damages caused by unsafe, unreliable, and insecure software-intensive systems.

13

The Standish Group Chaos Report

• In the United States:– more than $250 billion each year on IT application

development of approximately 175,000 projects. • A great many of these projects will fail.

14

The software problem

• Poor software quality in delivered systems is expensive– expensive service and enhancement– potential for accident or loss of life.

• Organizational progress with process improvement is limited because– process improvement takes time / is hard to sell.

• The PSP addresses these problems by– providing convincing evidence of the benefits of process improvement– exposing the engineers to the benefits of using effective processes in

their work– teaching the engineers effective process improvement methods– providing the historical data to better manage cost, schedule, and

quality.

15

Computer Programmer

16

The PSP strategy

• The PSP strategy is to improve the performance of practicing software engineers.

• A disciplined software engineering organization has well-defined practices.

• Its professionals use those practices, monitor and strive to improve their personal performance, and hold themselves responsible for the quality of the products they produce.

• And most important, they have the data and self-confidence required to resist unreasonable commitment demands.

17

Objectives for process improvement

schedule (delivery date)

functionality

(features)

quality

(defects)

18

History of process models

• 1980s DoD Std 2167, AQAP 13 (NATO), industry standards (nuclear)

• 1983 IEEE 730 (software quality assurance plans)• 1987 ISO 9000• 1988 TickIT (ISO 9001)• 1990 ISO 9000-3 (guideline for software)• 1991 Capability Maturity Model (CMM)• 1992 SPICE (ISO 15540)

19

Models for software process improvement

(c) 1998 Software Productivity Consortium MFP, Inc.

20

What is PSP? (1)

• PSP is a framework of techniques to help software engineers improve their performance.

• PSP is a self-improvement process designed to help control, manage, and improve the way you work.

• It is a structured framework of forms, guidelines, and procedures for developing software.

21

What is PSP? (2)

• Provides engineers with a disciplined personal framework for doing software work.

• Provides a set of methods, forms, and scripts that show how to plan, measure, and manage the work.

• Emphasizes effort estimation & software quality.• Designed for use with any programming language or design

methodology.• Can be used for any aspect of software development.• Provides a rapid way to infuse each engineer with software

engineering skill and experience.• Goal – produce zero defect products on schedule and within

planned costs.• Key – ability to recognize and handle undue pressures.

22

How was the PSP developed?

• How to apply CMM to small software teams or individuals? --- personally use CMM principle

• Humphrey developed 62 programs and defined 15 PSP process versions, proved 12 KPAs of CMM were applicable to individuals.

• Humphrey wrote the manuscript.

• Howie Dow taught the first PSP course to graduates in 1993 (University of Massachusetts).

• Humphrey taught PSP at CMU from 1993-1994.

• Humphrey published the PSP textbook in later 1994.

• How to apply the same principles to engineering teams? --- Team Software Process (TSP)

23

Quality umbrella

CMM/CMMI - for organizational capability

CMM/CMMI - for organizational capability

TSP - for quality products on cost and schedule

TSP - for quality products on cost and schedule

PSP - for individual skill and discipline

PSP - for individual skill and discipline

Ref: DAAD Project, “Joint Course on Software Engineering”

24

Planning and quality principles of PSP (1)

• PSP principles:– System quality depends on the quality of its worst

components.– Component quality depends on individual developers.

• Every engineer is different; to be most effective, engineers must plan their work and they must base their plans on their own personal data.

• To consistently improve their performance, engineers must personally use well-defined and measured processes.

• To produce quality products, engineers must feel personally responsible for the quality of their products. Superior products are not produced by mistake; engineers must strive to do quality work.

25

Planning and quality principles of PSP (2)

• It costs less to find and fix defects earlier in a process than later.• It is more efficient to prevent defects than to find and fix them.• The right way is always the fastest and cheapest way to do a

job.• PSP applies a CMM-like assessment for individual work– Measurement & analysis framework to help you

characterize your process.• Self-assessment and self-monitoring.

– Prescribes defined programming steps, data collection forms and standards.

– Assumes individual scale & complexity.• Well-defined individual tasks of short duration.

26

CMM and the PSP

*PSP key practices

Level 2Software configuration managementSoftware quality assuranceSoftware subcontract managementSoftware project tracking and oversight*Software project planning*Requirements management

Level 3Peer reviews*Intergroup coordinationSoftware product engineering*Integrated software management*Training programOrganization process definition*Organization process focus*

Level 4Quality management*Process measurement and analysis*

Level 5Process change management*Technology innovation*Defect prevention*

Level 1

CMMIThe Team

Environment

PSPEngineering

Skills

TSPBuilding the

Team

CommittedTeams

SoundManagement

Skilled TeamMembers

Goals and trackingPolicies and practicesOrganizational processTraining and resourcesTools and facilities

Personal measuresProcess disciplineEstimating & planningQuality managementProject tracking

Project roles and goalsTeam communicationProject and quality plansRisk analysisProject reporting

EffectiveEngineering Teams

“Three Dimensions of Process Improvement,” Watts Humphrey, CROSSTALK, February 1998

Three process perspectives

28

What is TSP?

• A measurement driven framework that helps engineering teams more effectively develop software-intensive products.

• Provides structure, organization and discipline to running a team-based project.

• TSP is built upon PSP.• TSP is an instance of a CMMI level 5 process for

software teams.

29

PSP overview

• 7 upward compatible steps and four levels:– PSP0.0 & PSP0.1– PSP1.0& PSP1.1– PSP2.0 & PSP2.1– PSP3

• Each level contains all the activities in the prior level plus some new ones.

• Starting point is level PSP0 - current programming practice.• When learning PSP s/w engineers write 10 module-sized

programs using the PSP steps.• They gather and analyze data on their work.• Based on these analyses they improve their working methods.

30

PSP Learning Stages

31

What is Personal Software Process?

• PSP0– You establish a measured performance baseline

• PSP1– You make size, resource, and schedule plans

• PSP2– You practice defect management and yield

management• PSP3– You scale up PSP methods to larger projects

32

References

• Watts S. Humphrey, “PSP: A Self-Improvement Process for Software Engineers”, Addison Wesley Professional, 2005.

• DAAD project “Joint Course on Software Engineering”, ww2.informatik.hu-berlin.de/swt/ intkoop/daad/herc2005/talks/PSP.ppt, 2005.

• Watts S. Humphrey, “Three Dimensions of Process Improvement,” CROSSTALK, February 1998.