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 3
PSP: A Self-Improvement Process for Software Engineers 4 Watts S. Humphrey “PSP: A Self-Improvement Process for Software Engineers” Addison Wesley Professional, 2005.
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. 6
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. 7
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. 8
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. 9
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” 10
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. 11
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. 12
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. 13
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. 14
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. 16
Objectives for process improvement 17 schedule (delivery date) functionality (features) quality (defects)
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) 18
Models for software process improvement 19 (c) 1998 Software Productivity Consortium MFP, Inc.
What is PSP? (1) 20 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.
What is PSP? (2) 21 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.
How was the PSP developed? 22 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)
Quality umbrella 23 CMM/CMMI - for organizational capability TSP - for quality products on cost and schedule PSP - for individual skill and discipline Ref: DAAD Project, “Joint Course on Software Engineering”
Planning and quality principles of PSP (1) 24 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.
Planning and quality principles of PSP (2) 25 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.
CMM and the PSP 26 *PSP key practices Level 2 Software configuration management Software quality assurance Software subcontract management Software project tracking and oversight* Software project planning* Requirements management Level 2 Software configuration management Software quality assurance Software subcontract management Software project tracking and oversight* Software project planning* Requirements management Level 3 Peer reviews* Intergroup coordination Software product engineering* Integrated software management* Training program Organization process definition* Organization process focus* Level 3 Peer reviews* Intergroup coordination Software product engineering* Integrated software management* Training program Organization process definition* Organization process focus* Level 4 Quality management* Process measurement and analysis* Level 4 Quality management* Process measurement and analysis* Level 5 Process change management* Technology innovation* Defect prevention* Level 5 Process change management* Technology innovation* Defect prevention* Level 1
CMMI The Team Environment PSP Engineering Skills TSP Building the Team Committed Teams Sound Management Skilled Team Members Goals and tracking Policies and practices Organizational process Training and resources Tools and facilities Personal measures Process discipline Estimating & planning Quality management Project tracking Project roles and goals Team communication Project and quality plans Risk analysis Project reporting Effective Engineering Teams “Three Dimensions of Process Improvement,” Watts Humphrey, CROSSTALK, February 1998 Three process perspectives
What is TSP? 28 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.
PSP overview 29 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.
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 31
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. 32