3 Lecture Overview You will The topics covered will include Become familiar with the concepts behind PSP and TSPDevelop ways to measure the size, time, and defects in your workUse the PSP planning framework to plan and track those tasksUse the PSP quality strategy to manage the defects in your work and support the team's quality goalsThe topics covered will includePSP planning frameworkPSP process frameworkIn-process control and trackingEstimating and schedulingMeasurement in PSPDefect managementDefining a personal processProcess analysis and improvementTeam Software Process
4 PSP: A Self-Improvement Process for Software Engineers Watts S. Humphrey“PSP: A Self-Improvement Process for Software Engineers”Addison Wesley Professional, 2005.
6 Watts S. HumphreyA 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:formsguidelinesproceduresThe 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 PurposeThe PSP is to help you improve your software engineering skills.You manage your workAssess your talentsBuild your skillsHelp you to make better plansTo precisely track your performanceTo measure the quality of your productsWhether you design programs, develop requirements, write documentation, or maintain existing software, the PSP can help you to do better work.
9 The PSP’s PurposeThe 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 SoftwareIn 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 problemPoor software quality in delivered systems is expensiveexpensive service and enhancementpotential for accident or loss of life.Organizational progress with process improvement is limited becauseprocess improvement takes time / is hard to sell.The PSP addresses these problems byproviding convincing evidence of the benefits of process improvementexposing the engineers to the benefits of using effective processes in their workteaching the engineers effective process improvement methodsproviding the historical data to better manage cost, schedule, and quality.
16 The PSP strategyThe 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 90001988 TickIT (ISO 9001)1990 ISO (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 principleHumphrey 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 fromHumphrey 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 TSP - for quality products on cost and schedulePSP - for individual skill and disciplineRef: 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 workMeasurement & 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 5 Process change management* Technology innovation*Defect prevention*Level 4Quality management*Process measurement and analysis*Level 3Peer reviews*Intergroup coordinationSoftware product engineering*Integrated software management*Training programOrganization process definition*Organization process focus*Level 2Software configuration managementSoftware quality assuranceSoftware subcontract managementSoftware project tracking and oversight*Software project planning*Requirements management*PSP key practicesLevel 1
27 Three process perspectives CMMIThe TeamEnvironmentPSPEngineeringSkillsTSPBuilding theTeamCommittedTeamsSoundManagementSkilled TeamMembersGoals and trackingPolicies and practicesOrganizational processTraining and resourcesTools and facilitiesPersonal measuresProcess disciplineEstimating & planningQuality managementProject trackingProject roles and goalsTeam communicationProject and quality plansRisk analysisProject reportingEffectiveEngineering Teams“Three Dimensions of Process Improvement,” Watts Humphrey, CROSSTALK, February 1998
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 PSP0.0 & PSP0.1 PSP1.0& PSP1.1 PSP2.0 & PSP2.1 PSP3 7 upward compatible steps and four levels:PSP0.0 & PSP0.1PSP1.0& PSP1.1PSP2.0 & PSP2.1PSP3Each 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.
31 What is Personal Software Process? PSP0You establish a measured performance baselinePSP1You make size, resource, and schedule plansPSP2You practice defect management and yield managementPSP3You scale up PSP methods to larger projects
32 ReferencesWatts 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.