PSP is a framework to help software engineers improve the way they work and overcome obstacles to peak performance. PSP training shows engineers how to measure and analyze their software development efforts so they can produce high quality software in a predictable manner.
PSP distills the essential principles and techniques from the Software Engineering Institutes’s 10-day Personal Software Process (PSP) course. Derived from the Capability Maturity Model (CMM), the PSP takes acknowledged "best practices" for organizations and redesigns them for use by individual software developers.
PSP introduces a
disciplined
process improvement methodology to the development of software. PSP
shows
engineers how defining and measuring one’s personal practices provides
a quantitative basis for improvement. Adopting a process framework
enables
engineers to understand the way they work, to measure the effectiveness
of their current methods, and gives them concrete data they can use to
improve. PSP enables engineers to tune and refine their work practices
to produce the most personal benefit.
This course qualifies for
Technical Elective 1B credit.
Software development is a sophisticated and demanding task, yet most developers lack any kind of disciplined approach to their work; they are programmers, not engineers. Their formal training often provides them with computer science principles, but not software engineering skills. Most developers do not use practices that have been proven effective such as design methods or code reviews. Most programmers have only a vague idea of their own personal productivity rate, defect rate, and estimation accuracy.
Changing programmer behavior is very difficult, because people are justifiable skeptical of trying anything new. Before they will consistently use proven practices, engineers have to be convinced through personal experience that the new methods will work for them.
PSP succeeds because it removes engineers from their work projects and trains them on non-work assignments, thereby liberating them to experiment with a different approach. The training leads them through a structured set of activities where they develop working code. The PSP gives them measurable feedback about their performance that demonstrates concretely and often dramatically what works for them and what doesn’t. Engineers are convinced because they see measurable results in their own work.
So by providing a process framework, engineers learn to define and track their work and measure their performance. The result is a quantitative basis for evaluating the success of new methods they are invited to adopt. Using these measurable criteria they can select practices with the most likelihood of suiting their particular tasks and abilities.
By giving
professionals control
of how to customize improvements to their work, it is more likely they
will use them consistently.
What happens in the PSP course?
The course consists of some lecture/presentation along with practice activities and hands-on programming assignments. The course will use this textbook by Watts Humphrey.
Students are introduced to a simple, defined personal software process. They are guided through practice exercises that demonstrate how this process is followed. They then apply the process to their own work as they carry out four small programming projects. They gather simple process measures for time in each development phase, product size, and number of defects. They are taught how to analyze and interpret the measures to understand their own performance. This data may challenge their conventional habits and reveal obstacles that have kept them from achieving their best.
Every engineer is different and what works for one may not work for another. The PSP is customizable in order to accommodate for individual differences. Engineers are taught how to tailor the process to their own needs. During the course a specific software quality practice is introduced, code reviews, and students can observe and assess its effectiveness in their own work.
From completing the
course exercises
engineers receive immediate, explicit, quantitative feedback about
their
personal work habits, thus giving them tangible data about what methods
are most effective for them. At the conclusion the students have a
personally
defined process and the skills to tailor it for their own use. They
have
measurable goals and a strategy for improvement to help them achieve
their
goals.
What is the workload in the course?
The workload is less than a typical programming course. There are no new algorithms, data structures, or technical computer science topics to learn. The programs will be comparable to CPE 103 assignments. The focus is on applying the knowledge you gained in other courses to write quality programs.
Graduates of the PSP course realize significant, measurable improvement in several key areas:
Higher Quality – engineers are shown the cost benefits of removing defects early and can be expected to achieve a 50% reduction in the number of defects in their products.
Reduced Time – engineers will realize the cost savings of removing defects early in the life cycle, resulting in reduced overall development time.
Accurate Scheduling – because they now have quantitative data upon which to base size and resource estimates, engineers will produce more accurate schedules.
Improved Processes – engineers become "self-improving" as they define, manage, and improve their own processes.