35
Sponsored by the U.S. Department of Defense © 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 CarnegieMellon Software Engineering Institute Pittsburgh, PA 15213-3890 Team Software Process and Personal Software Process Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213-3890

Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

  • Upload
    vuque

  • View
    216

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

Sponsored by the U.S. Department of Defense© 2005 by Carnegie Mellon University

Version 1.0 Team Software Process 2005.10.26

CarnegieMellonSoftware Engineering InstitutePittsburgh, PA 15213-3890

Team Software Process andPersonal Software Process

Software Engineering InstituteCarnegie Mellon UniversityPittsburgh, PA 15213-3890

Page 2: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 2

Carnegie MellonSoftware Engineering Institute

Calidad = T P 3

Producto

Proceso

Personas

Tecnología

Fuente: Ing. Rafael Salazar

Page 3: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 3

Carnegie MellonSoftware Engineering Institute

Improving Software Practice

CMMI – Model oforganizational

capability

TSP – Instance of high-maturity

practice for teams

PSP – Instance of high-maturity

practice for individuals

Page 4: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 4

Carnegie MellonSoftware Engineering Institute

Software Process QualitySoftware is the only modern technology that ignores quality until test.

Most software defects are found in or after test when defect removal is the most expensive and least effective.

This strategy results in buggy products and unnecessary rework, inflating development costs.

Software defects are also a principal cause of software security vulnerabilities.

Page 5: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 5

Carnegie MellonSoftware Engineering Institute

Cost and Schedule Performance Trends

Successful projects delivered on time, on budget, with required features and functions.Challenged projects estimated a 43% average cost overrun, time overruns of 83%, and delivered only 52% of required features and functions (in 2002). Failed projects were cancelled prior to completion or delivered and never used.

(This chart represents over 50,000 IT projects in large, medium, and small cross-industry world-wide companies tested by The Standish Group since 1994. )

0% 20% 40% 60% 80% 100%

1994

1996

1998

2000

2002

2004

SuccessfulChallengedFailed

Page 6: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 6

Carnegie MellonSoftware Engineering Institute

Team Software ProcessThe Team Software Process (TSP) is a software development process for engineering teams.

TSP is a process-based solution to common software engineering and management issues.• cost and schedule predictability• productivity and product quality• process improvement

Unlike other methods, TSP• combines discipline and agility• improves team and individual performance• provides immediate, measurable business benefits

Page 7: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 7

Carnegie MellonSoftware Engineering Institute

Building High-Performance Teams

TSP builds high-performance teams from the bottom-up.

TeamMemberSkills

TeamBuilding

TeamManagement

Process disciplinePerformance measures

Estimating & planning skillsQuality management skills

Goal settingRole assignment

Tailored team processDetailed balanced plans

Team communicationTeam coordination

Project trackingRisk analysis

Personal Software Process

Team Software Process

Page 8: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

Sponsored by the U.S. Department of Defense© 2005 by Carnegie Mellon University

Version 1.0 Team Software Process 2005.10.26

CarnegieMellonSoftware Engineering InstitutePittsburgh, PA 15213-3890

Personal Software Process

Page 9: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 9

Carnegie MellonSoftware Engineering Institute

Personal Software ProcessThe PSP is a process designed for individual use that applies to structured personal tasks.

With PSP, developers use defined and measured personal processes.

They gather size, time, and defect data as they work.

They use the data to• plan and track their work• manage the quality of the products they produce• measurably improve performance

Page 10: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 10

Carnegie MellonSoftware Engineering Institute

PSP Changes Software PracticeSoftware work is planned.

Plans are based on processes and estimates.

Estimates are based on historical process data.

Software work is measured and tracked.

Status is based on the data.

Software quality is also planned, estimated, tracked, and managed.

Page 11: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 11

Carnegie MellonSoftware Engineering Institute

What is a Process?A process is a defined set of steps for doing a job.

A process guides your work.

A process is usually defined for a job that is done multiple times.

A process provides a foundation for planning.• A process is a template, a generic set of steps.• A plan is a set of steps for a specific job, plus other

things such as effort, costs, and dates.

Page 12: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 12

Carnegie MellonSoftware Engineering Institute

What is a Personal Process?When you use a process for your personal work, it is called a personal process.

It is usually developed from your personal experience.• You may start with a proven process that was

developed by someone else.• You modify and improve the process to suit your needs.

Page 13: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 13

Carnegie MellonSoftware Engineering Institute

Elements of a processIn documenting a process, it is common to specify the• required inputs to the process• steps of the process• exit criteria for the process

The steps are described only with enough detail to guide the user of the process; they are not a set of training instructions.

The next slide shows an example of a process for balancing a checkbook.

Page 14: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 14

Carnegie MellonSoftware Engineering Institute

Example Personal ProcessInputs required • Checkbook register balance is current and is

reconciled with previous account statement • New statement • Notepad and calculator

Verify checks phase

For each check on new statement, verify with checkbook register and mark as cleared

Update register phase

• Record ATM and EFT transactions in checkbook register, mark as cleared, and update register balance

• Add interest to register balance • Subtract service charges from register

balance Reconcile register phase

• On notepad, subtract all checks not marked as cleared from the new statement balance and compare to new register balance

• If the two balances don’t agree, find error in register and correct

Exit criteria Checkbook register reconciled with new account statement

Page 15: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 15

Carnegie MellonSoftware Engineering Institute

Why Define and Use a Personal Process?Benefits of a personal process include• consistency• efficiency• basis for improvement

The next slides will discuss these points.

Page 16: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 16

Carnegie MellonSoftware Engineering Institute

ConsistencyUsing a defined personal process helps you to achieve consistent results. • Your results are more likely to be similar each time that

you use the process.• Your work becomes more predictable.

Page 17: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 17

Carnegie MellonSoftware Engineering Institute

EfficiencyUsing a defined personal process helps you to be more efficient. • It structures and guides your work.

- orders the steps- avoids rework

• It keeps you focused on what needs to be done.- fewer restarts- manage interrupts

You can accomplish your work in less time.

Page 18: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 18

Carnegie MellonSoftware Engineering Institute

Basis for ImprovementBy gathering data on your work, you can determine which steps• take the most time• cause you the most trouble• are least effective

With this information, you can identify opportunities for improving your results by making changes to your process.

Page 19: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 19

Carnegie MellonSoftware Engineering Institute

The Need for Personal DisciplineBuilding successful high-performance teams requires more than technical ability; team members must be committed to the concept of personal discipline.

Personal discipline means that all team members understand their own abilities and can make realistic commitments to each other and to management.

Team members develop personal discipline by learning the principles of the Personal Software Process (PSP).

Page 20: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 20

Carnegie MellonSoftware Engineering Institute

The PSP Process ElementsDocument the process entry criteria, phases/ steps, and exit criteria. The purpose is to guide you as you use the process.

Phase Purpose To guide you in developing module-level programsInputs Required Problem description

PSP project plan summary formTime and defect recording logsDefect type standardStop watch (optional)

1 Planning - Produce or obtain a requirements statement.- Estimate the required development time.- Enter the plan data in the project plan summary form.- Complete the time log.

2 Development - Design the program.- Implement the design.- Compile the program and fix and log all defects found.- Test the program and fix and log all defects found.- Complete the time recording log.

3 Postmortem Complete the project plan summary form with actualtime, defect, and size data.

Exit Criteria - A thoroughly tested program- Completed project plan summary with estimated and

actual data- Completed defect and time logs

Scripts

Measures Measure the process and the product. They provide insight into how the process is working and the status of the work.

Student Date Program Program # Instructor Language Summary Plan Actual To Date LOC/Hour Actual Time Planned Time CPI(Cost-Performance Index)

(Actual/Planned) % Reuse % New Reuse Test Defects/KLOC Total Defects/KLOC Yield % % Appraisal COQ % Failure COQ COQ A/F Ratio Program Size (LOC): Plan Actual To Date Base(B)

(Measured) (Measured) Deleted (D)

(Estimated) (Counted) Modified (M)

(Estimated) (Counted) Added (A)

(N-M) (T-B+D-R) Reused (R)

(Estimated) (Counted) Total New & Changed (N)

(Estimated) (A+M) Total LOC (T) (N+B-M-D+R) (Measured) Total New Reused (Estimated) (Counted) Total Object LOC (E) (Estimated) (Counted) Upper Prediction Interval (70%) Lower Prediction Interval (70%) Time in Phase (min.) Plan Actual To Date To Date % Planning Design Design review Code Code review Compile Test Postmortem Total Total Time UPI (70%) Total Time LPI (70%)

Forms Provide a convenient and consistent framework for gathering and retaining data

Standards Provide consistent definitions that guide the work and gathering of data.

Page 21: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 21

Carnegie MellonSoftware Engineering Institute

Putting the Elements TogetherInputs

Projectplan

summary

Balanced checkbookProject and processdata summary report

Timeand

defectlogs

guideProcess scripts

and standards

Checkbook process Planning

Enter data

Clear transactions

Update register

Update bank statement

Compare balances

Postmortem

Page 22: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 22

Carnegie MellonSoftware Engineering Institute

PSP Base Measures

Size

ScheduleQuality

Effort

Source: CMU/SEI-92-TR-019

Page 23: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

Sponsored by the U.S. Department of Defense© 2005 by Carnegie Mellon University

Version 1.0 Team Software Process 2005.10.26

CarnegieMellonSoftware Engineering InstitutePittsburgh, PA 15213-3890

TSP/PSP Results

Page 24: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 24

Carnegie MellonSoftware Engineering Institute

PSP Improves PerformanceEstimation accuracy• fewer underestimates • more accurate estimates• estimates balanced around

zero

Quality• yield improves by 2X to 3X• fewer defects in unit test,

integration test, system test• COQ is flat or reduced

PSP 0

PSP 1

PSP 2

Effort Estimation Accuracy

100%0%-100%-200% 100%0%-100%-200%0

20

40

0

20

40

100%0%-100%-200% 100%0%-100%-200%0

20

40

0

20

40

100%0%-100%-200% 100%0%-100%-200%0

20

40

0

20

40

Page 25: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 25

Carnegie MellonSoftware Engineering Institute

TSP Improves PredictabilityEffort and schedule deviation are dramatically improved.

Schedule Performance

< 10%TSP

27% to 112%Study baseline

100%+Typical Industry

Average Schedule Deviation - Range

-20%0%

20%40%60%80%

100%120%140%160%

Pre TSP/PSP With TSP/PSP

Average Effort Deviation - Range

-20%

0%

20%

40%

60%

80%

100%

120%

Pre TSP/PSP With TSP/PSP

Source: CMU/SEI-2000-TR-015

Effort/Cost Performance

< 5%TSP

17% to 85%Study baseline

100%+Typical Industry

Page 26: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 26

Carnegie MellonSoftware Engineering Institute

TSP Improves QualityAn analysis of 20 projects in 13 organizations showed TSP teams averaged 0.06 defects per thousand lines of new or modified code.

Approximately 1/3 of these projects were defect-free.

7.5

6.24

4.73

2.28

1.05

0.060

1

2

3

4

5

6

7

8

Level 1 Level 2 Level 3 Level 4 Level 5 TSP

Defects/KLOC

Source: CMU/SEI-2003-TR-014

Page 27: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 27

Carnegie MellonSoftware Engineering Institute

TSP Accelerates CMMI Improvement

0%10%20%30%40%50%60%70%80%90%

100%

Level 2 Level 3 Level 4 Level 5

CMMI Maturity Level

Perc

enta

ge o

f SP

s Unrated

Not Addressed

Partially Addressed

Supported

Directly Addressed

Page 28: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

Sponsored by the U.S. Department of Defense© 2005 by Carnegie Mellon University

Version 1.0 Team Software Process 2005.10.26

CarnegieMellonSoftware Engineering InstitutePittsburgh, PA 15213-3890

Team Software Process

Page 29: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 29

Carnegie MellonSoftware Engineering Institute

Working in TeamsSuccessful teams are both satisfying and rare.

Although many teams come close to meeting their product and business goals, they often do so at the expense of the team members.

We describe a team that works together smoothly and efficiently as being a “jelled team.”

“A jelled team is…greater than the sum of its parts… and the enjoyment people derive from the work is greater than you would expect.”

- Peopleware, DeMarco and Lister

Page 30: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 30

Carnegie MellonSoftware Engineering Institute

Building Jelled Teams Artificially-jelled teams can be built quickly through “team-building” exercises.• retreats, seminars, workshops• games (paintball, laser tag, etc.)• contrived challenges (e.g., blind obstacle courses)

Team-building activities are unlikely to produce long-term team success unless they address real workplace issues.• common understanding of roles, goals, products• management support of team needs

The TSP is a proven-effective way of building jelled teams quickly.

Page 31: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 31

Carnegie MellonSoftware Engineering Institute

Accelerating Team-buildingThe TSP was developed to address the need for• software engineering teams who can build quality

products within cost and schedule constraints• building teams quickly and reliably• optimizing team performance throughout a project• accelerating software process improvement• making use of mature processes normal and expected

If you are familiar with the SEI Capability Maturity Model or the Capability Maturity Model Integration, think of TSP as a CMM/CMMI maturity level 5 process for teams.

Page 32: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 32

Carnegie MellonSoftware Engineering Institute

TSP Teams are Self-directed

Traditional teamThe leader plans, directs, and tracks the team’swork.

Self-directed teamThe team members participatein planning, managing, and tracking their own work.

TSP Coach

Page 33: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 33

Carnegie MellonSoftware Engineering Institute

Requirements

High-Level Design

Implementation

Integration & System Test

The TSP Process ElementsLaunch Requirements Inspection Postmortem

Relaunch High-LevelDesign Inspection Postmortem

Relaunch Detail Design(PSP)

Review(PSP) Inspection Code

(PSP)Review(PSP)

PostmortemUnit Test(PSP) Inspection

Relaunch SystemTest PostmortemIntegration

Test

Compile(PSP)

PlanningDevelopmentDefect FilterPostmortem

Page 34: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 34

Carnegie MellonSoftware Engineering Institute

SummaryTSP gives teams a significantly greater measure of project ownership.

It makes them responsible for the outcome, but provides the tools to be successful.

The results demonstrate that this works.• high-maturity performance• predictable and improved cost and schedule• near defect-free quality• satisfied developers, managers, and customers

Page 35: Team Software Process and Personal Software Processcs.mty.itesm.mx/profesores/pverdines/TCS/p3/PSP-TSP.pdf · development process for engineering teams. ... the user of the process;

© 2005 by Carnegie Mellon University Version 1.0 Team Software Process 2005.10.26 35

Carnegie MellonSoftware Engineering Institute

For More InformationVisit the Software Engineering Institute web site atwww.sei.cmu.edu

Visit the TSP web site atwww.sei.cmu.edu/tsp

Contact SEI Customer Relations at 412-268-5800