11.01.2017 Views

A Technical History of the SEI

ihQTwP

ihQTwP

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!