Software Methods and Tools

Kenneth M. Anderson <kena@cs.colorado.edu>

Lecture 02: No Silver Bullet

Today's Lecture

Extreme Programming

Extreme Programming Practices

Test-Driven Development in Detail

Applying XP in Labs

No Silver Bullet

There is no single development, in either technology or management technique, which by itself promises even one order-of- magnitude improvement within a decade in productivity, in reliability, in simplicity.

— Fred Brooks, 1986

i.e. There is no magical cure for the “software crisis”

Why? Essence and Accidents

An Order of Magnitude

The Essence

Complexity

Complexity, continued

Complexity, continued

Problems resulting from complexity
difficult team communication product flaws cost overruns
schedule delays personnel turnover
(loss of knowledge)
unenumerated states
(lots of them)
lack of extensibility
(complexity of structure)
unanticipated states
(security loopholes)
project overview is difficult
(impedes conceptual integrity)

Conformity

Conformity, continued

Changeability

Invisibility

What about <X>?

High-level languages Time-Sharing Programming Environments
OO Analysis, Design, Programming AI and expert systems “automatic” programming

Promising Attacks on the Essence

No Silver Bullet Refired

The size of accidental effort

Obtaining the Increase

Next Week