A Technical History of the SEI
ihQTwP
ihQTwP
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Personal S<strong>of</strong>tware Process and Team S<strong>of</strong>tware Process<br />
The Challenge: Improving S<strong>of</strong>tware Quality During Development<br />
As <strong>the</strong> use <strong>of</strong> computers and <strong>the</strong> development <strong>of</strong> s<strong>of</strong>tware grew in <strong>the</strong> 1960s and 1970s, it was accompanied<br />
by growing pains: many projects failed to deliver quality products within a predictable<br />
time or budget and project failure was common [Humphrey 1989]. In response to a request from<br />
<strong>the</strong> Department <strong>of</strong> Defense, <strong>the</strong> <strong>SEI</strong> led <strong>the</strong> development <strong>of</strong> <strong>the</strong> Capability Maturity Model<br />
(CMM), which captured organizational best practices for s<strong>of</strong>tware development [Paulk 1993].<br />
Maturity relates to <strong>the</strong> degree <strong>of</strong> formality and optimization <strong>of</strong> processes, from ad hoc practices, to<br />
formally defined steps, to managed result metrics, to active optimization <strong>of</strong> <strong>the</strong> processes. When<br />
<strong>the</strong> model was applied to an existing organization’s s<strong>of</strong>tware development processes, it provided<br />
an effective approach toward improving <strong>the</strong>m.<br />
Although <strong>the</strong> CMM began to see widespread adoption, some problems remained. An early misperception<br />
<strong>of</strong> <strong>the</strong> CMM was that it did not apply to small organizations or projects. Ano<strong>the</strong>r issue<br />
was that <strong>the</strong> CMM told people what to do, it did not help <strong>the</strong>m understand how, and s<strong>of</strong>tware development<br />
practice was nearer a craft than an engineering discipline. Most finished s<strong>of</strong>tware products<br />
could be made to work, but only after extensive testing and repair. And as s<strong>of</strong>tware programs<br />
grew larger and larger, <strong>the</strong> difficulty <strong>of</strong> finding and fixing problems also began to increase exponentially.<br />
A Solution: Personal S<strong>of</strong>tware Process and Team S<strong>of</strong>tware Process<br />
Because he believed s<strong>of</strong>tware quality starts with <strong>the</strong> individual engineer, an <strong>SEI</strong> Fellow decided to<br />
apply <strong>the</strong> underlying principles <strong>of</strong> <strong>the</strong> CMM to <strong>the</strong> s<strong>of</strong>tware development practices <strong>of</strong> a single developer.<br />
From 1989 to 1993, he wrote more than 60 programs and more than 25,000 lines <strong>of</strong> code<br />
using CMM practices and concluded that <strong>the</strong> management principles embodied in <strong>the</strong> CMM were<br />
just as applicable to individual s<strong>of</strong>tware engineers. The resulting process was <strong>the</strong> Personal S<strong>of</strong>tware<br />
Process (PSP) [Humphrey 1994].<br />
The PSP is a structured s<strong>of</strong>tware development process that helps s<strong>of</strong>tware engineers understand<br />
and improve <strong>the</strong>ir performance by using a disciplined, data-driven procedure. It includes effective<br />
defect management techniques and comprehensive planning, tracking, and analysis methods. PSP<br />
training follows an evolutionary improvement approach: engineers learning to integrate <strong>the</strong> PSP<br />
into <strong>the</strong>ir processes beginning at <strong>the</strong> first level and progressing in process maturity to <strong>the</strong> final<br />
level. Each level has detailed scripts, checklists, and templates to guide engineers through required<br />
steps that help individual engineers improve <strong>the</strong>ir own personal s<strong>of</strong>tware process. Properly<br />
used, <strong>the</strong> PSP provides <strong>the</strong> historical data engineers need to better make and meet commitments.<br />
It soon became obvious that, while excellent results were possible using <strong>the</strong> PSP, it was almost<br />
impossible to maintain <strong>the</strong> discipline required for PSP practices if <strong>the</strong> surrounding environment<br />
did not encourage and demand <strong>the</strong>m. Systems development is a team activity, and <strong>the</strong> effectiveness<br />
<strong>of</strong> <strong>the</strong> team largely determines <strong>the</strong> quality <strong>of</strong> <strong>the</strong> engineering. A process for <strong>the</strong> smallest operational<br />
unit in most organizations, <strong>the</strong> project team, called Team S<strong>of</strong>tware Process (TSP) was designed<br />
in 1996 [Humphrey 2000].<br />
CMU/<strong>SEI</strong>-2016-SR-027 | SOFTWARE ENGINEERING INSTITUTE | CARNEGIE MELLON UNIVERSITY 144<br />
Distribution Statement A: Approved for Public Release; Distribution is Unlimited.