PSP℠ for the 21st Century

Abstract:

These are the course materials for PSP for the 21st Century, a modular, flexible introduction to using Watts Humphrey’s Personal Software Process℠ (PSP℠). The PSP was first introduced publicly in Humphrey’s 1994 book, A Discipline for Software Engineering, and as the title suggests, the intent was to demonstrate the power and value of disciplined software engineering methods at the individual developer level. The current materials represent a fresh take on the PSP for the modern software developer working a quarter-century later in a more agile world—short modules, updated terminology, and some flexibility in learning the methods.

This current version of PSP training breaks the discipline into the following skills:

  • following a defined, measured process
  • estimating work consistently
  • reviewing work products effectively
  • documenting detailed design

Each skill is imparted through a “block” of lessons that introduce the components of the skill. Each block contains several modules, which include lecture slide decks covering each component topic, often a supporting Word document containing notes for the instructor, and a recommended programming exercise intended to provide hands-on practice in using the component skill.

 

Block 1 Abstract

These are the course materials for Block 1 of PSP for the 21st Century, a modular, flexible introduction to using Watts Humphrey’s Personal Software Process (PSP).

Block 1: Modules 0-3

  • Module 0: Course Overview
  • Module 1: Follow the Script
  • Module 2: Measure Program Size
  • Module 3: Account for Size Categories

Block 1 is the foundational block that the other blocks assume is in place; it includes four modules. Module 0 briefly summarizes the goals of the course. Module 1 explains how to capture time and defects step by step as work is being done. Module 2 describes how to capture gross size after development. Module 3 introduces the various size categories for actual size after development.

Block 2 Abstract

These are the course materials for Block 2 of PSP for the 21st Century, a modular, flexible introduction to using Watts Humphrey’s Personal Software Process (PSP).

Block 2: Modules 4-8

  • Module 4: Planning with a Model
  • Module 5: Estimating with Standard Sizes
  • Module 6: Building Standard Size Tables
  • Module 7: Reducing Estimation Bias
  • Module 8: Automating Estimation with Regression

Block 2 elaborates the component skills of PROBE, or PROxy-Based Estimating, without ever calling it that. Module 4, “Planning with a Model,” introduces the idea of using a conceptual design (the traditional PSP term) to relate all known requirements to various “parts” that one would need in order to implement those requirements and to record and classify those parts for planning purposes. Module 5, “Estimating with Standard Sizes,” introduces the use of a preexisting set of part types with a historical range of sizes as an aid to planning. Module 6, “Building Standard Size Tables,” shows a method for turning historical data into just such a set of standard part types. Module 7, “Reducing Estimation Bias,” introduces the idea of using one’s personal estimating performance to correct for estimation bias. Module 8, “Automating Estimation with Regression,” replaces historical averaging from the previous lesson with regression calculations that may improve estimating precision and accuracy, especially as more data becomes available.

Block 3 Abstract

These are the course materials for Block 3 of PSP for the 21st Century, a modular, flexible introduction to using Watts Humphrey’s Personal Software Process (PSP).

Block 3: Modules 9-11

  • Module 9: Controlling Quality, Review Your Code
  • Module 10: Reviewing with a Checklist
  • Module 11: Improving Your Review

Block 3 elaborates the essentials of reviewing code with a personalized checklist. Module 9, “Controlling Quality: Review Your Code,” introduces the review as a response to the problem “I’m still finding a lot of defects in test.” Module 10, “Reviewing with a Checklist,” and the optional-but-highly-recommended 10a, “Why Checklists Work,” provide the basics of what reviews are and how to do them. Module 11, “Improving Your Reviews,” takes this information and uses it to drive a retrospective analysis intended to make personalized modifications to the review process and the checklist to make them more effective.

Block 4 Abstract

These are the course materials for Block 4 of PSP for the 21st Century, a modular, flexible introduction to using Watts Humphrey’s Personal Software Process (PSP).

Block 4: Modules 12-16

  • Module 12: Quality by Design
  • Module 13: Describe the Problem
  • Module 14: State the Problem
  • Module 15: Structure the Solution
  • Module 16: Implement the Logic

Module 12, “Quality by Design,” begins by talking about common design problems that are difficult to find in code mainly because they reflect issues of incorrect or incomplete design. Module 13, “Describe the Problem,” focuses on the external-dynamic design view with the UML use case (external to software system) or sequence diagram (external to individual software modules). Module 14, “State the Problem,” looks at the internal-dynamic views captured by state charts (sometimes called state diagrams) or state transition tables. Module 15, “Structure the Problem,” introduces the external-static view of design. Module 16, “Implement the Logic,” speaks to the internal-static design view.

Block 5 Abstract

These are the course materials for Block 5 of PSP for the 21st Century, a modular, flexible introduction to using Watts Humphrey’s Personal Software Process (PSP).

Block 5: Module 17

  • Module 17: Scaling Up

Module 17, “Scaling Up,” talks about scaling up the individual development process from single-day projects like the programming assignments in this class, to real-world work that spans multiple days or weeks. 

Copyright and License

The materials available for download on this page are copyright 2018 Carnegie Mellon University. All rights reserved. The Software Excellence Alliance is not affiliated with nor endorsed by Carnegie Mellon University.

This material is based upon work funded and supported by the Department of Defense under Contract No. FA8721-05-C-0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center.

Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the United States Department of Defense.

NO WARRANTY. THIS MATERIAL IS FURNISHED ON AN "AS-IS" BASIS WITH NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, ANY WARRANTY WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT, OR THIRD PARTY INTELLECTUAL PROPERTY RIGHTS.

[Distribution Statement A] This material has been approved for public release and unlimited distribution. The United States Government has Unlimited Rights in this material as defined by DFARS 252.227-7013.

The text and illustrations in this material are licensed by Carnegie Mellon University under a Creative Commons Attribution 4.0 International License.

℠ Personal Software Process, PSP, Team Software Process, and TSP are service marks of Carnegie Mellon University. The Creative Commons license does not extend to logos, trade marks, or service marks of Carnegie Mellon University.

Other Learning Materials

Team Process Integration: Half-Day Course

Abstract: This half-day course covers all aspects of the Team Process Integration (TPI) framework. The TPI methodology integrates disciplined project practices that can be applied by many product teams (e.g., software, systems, and test). It is a framework that...

Empowering Virtual Working Groups for Success

Abstract: We’ve all worked on teams where it is impossible to find the latest files, emails get lost, people get left off (or on!) meeting notices and email chains, and worse. Things get even more chaotic when team members are all volunteers and everything is virtual....

Introduction to Personal Process Course

Abstract: This course will introduce you to the Team Software Process℠ (TSP℠) and Personal Software Process℠ (PSP℠), disciplined methods for producing quality software in a timely manner. Course Objectives:  We will introduce you to the fundamentals of TSP. launch...

TSP℠ Executive Strategy Seminar

Abstract: In this course, you learn the key concepts and principles of the Team Software Process℠ (TSP℠) and Personal Software Process℠ (PSP℠) from a management perspective. You learn how to introduce and apply the TSP in your organization. This course is designed for...

PSP℠ for Engineers Version 4 Course

Abstract: In these two courses (PSP℠ for Engineers I & II), you learn a process-based approach to developing software, including how to measure and analyze your personal software process℠ (PSP), how to use process data to improve your personal performance, and how...

Leading a TSP℠ Team Course

Abstract: In this course, you learn how to manage quantitatively to complete projects on schedule, within budget, and with all requirements met. You study the knowledge and skills that Team Software Process℠ (TSP℠) leaders need to effectively lead and coach...

Managing TSP℠ Teams Course

Abstract: In this course, you learn how to manage a Team Software Process℠ (TSP℠) team using TSP data. You learn coaching and mentoring techniques that you, as a TSP leader, can use to manage and direct TSP teams. Course Objectives: This course will  describe the...

TSP℠ Coach Training

Abstract: In this course, you learn to launch and coach effective Team Software Process℠ (TSP℠) teams. You study key TSP concepts and principles from an operational and procedural perspective, and you learn how to recognize and effectively address common problems that...

PSP℠ Fundamentals and Advanced

PSP℠ Fundamentals Course Objectives A key principle of TSP℠ is The people who do the work know the best way to get the work done and are the best people to develop a realistic plan. In the TSP, management asks you to develop realistic plans to produce high-quality...

TSP℠ Team Member Training

Abstract:  In this course, you learn the foundational concepts of the Personal Software Process℠ (PSP℠) and Team Software Process℠ (TSP℠). You study how to measure size, time, and defects in your work; how to use a personal planning framework to plan and track your...

Share This