Electronic Review of Computer Books

[ ERCB Home | New | Feature | Brief | DDJ | Letters | Links ]

[an error occurred while processing this directive]

Vital Statistics

Title

Rapid Development: Taming Wild Software Schedules

Author

Steve McConnell
http://www.construx.com/stevemcc/

Publisher

Microsoft Press
Redmond, Washington
http://www.microsoft.com/mspress/

Copyright

1996

ISBN

1-55615-900-5

Pages

647

Price

$35.00


Biting the Silver Bullet

Pop Quiz: What do Charles Petzold's Programming Windows and Andrew Schulman's Undocumented DOS have in common? Your knee-jerk reaction would probably be, "Not very much!" Philosophically, the two books lie at extreme opposite ends of the programming spectrum. Yet, on a more abstract level, the books are members of the same exclusive club: they established a new genre or ecological niche in computer trade book publishing, and then -- by virtue of their authority, comprehensiveness, and readability -- went on to dominate that niche for many years.

Steve McConnell's Rapid Development is instantly recognizable as another member of that rare breed of highly original and definitive books. It addresses a dire need in mainstream commercial or "shrinkwrap" software development that was previously unmet and only dimly perceived. It integrates a vast amount of practical information within a logical, easily grasped structure. It is soundly grounded in the author's mastery of his subject and common sense, and it is backed up by hundreds of references. And, last but hardly least, it is beautifully written in an economical, direct style that makes every page count.

For those of you who are (justifiably) skeptical about the extravagant claims made for "Rapid Application Development" (RAD) products, fear not -- this book is not about CASE or Visual Basic. RAD development tools are certainly described in the book, but only as one arrow in a quiver of many. Rather, Rapid Development is a wide-ranging book on the professional and fact-based management of software development projects, with "rapid(er) development" as the hook.

The chapters of Rapid Development are organized under the umbrella of three main themes. The first section is principally concerned with "efficient development" rather than "rapid development" -- focusing in on fundamental technical and management principles, assessment and management of risk, and avoidance of classic mistakes. Proper attention to these areas makes schedules and costs at least predictable. Most of the topics are illustrated with entertaining (and sometimes painfully familiar) case histories.

The second section is a detailed exploration of a diverse strategies, techniques, and tools for speeding up the development process. Each topic, ranging from lifecycle planning to improving the motivation of developers, gets the careful, thoughtful treatment that is McConnell's hallmark. The chapters on estimation, scheduling, and feature-set control are especially valuable. I've read about code size estimation and software project scheduling many times elsewhere, but only after reading Rapid Development did I truly believe.

The last section of the book is a collection of mini-essays on 27 "best practices"in a common format. Each begins with a table that summarizes the technique's efficacy in various domains, major risks, interactions, and tradeoffs. The table is followed by a (sometimes extensive) discussion of usage, risk management, side effects, and "keys to success" for the practice at hand. Citations for further reading on each "best practice" are often provided as well.

In Rapid Development, we are privileged to see a virtuoso author/programmer and a superb editing and publishing team working together at the top of their form. Very few books I have encountered in the last few years have given me as much pleasure to read as this one. The only teensy quibble I have with the book is a design issue -- elimination of the excessive white space and the slightly patronizing "hard facts," "classic mistake," and "cross-reference" icons and tags in the left margins would have shortened the book by a hundred pages or more and saved quite a few trees.

-- Ray Duncan


Excerpt from "Rapid Development"

In the fairy-tale version of Jack and the Beanstalk, the magic beans grow into a giant beanstalk, and Jack has a great adventure. But in the software version, when Jack's mother throws the beans out the window, that's the end of the story. The beans don't contain any magic, and Jack has just wasted his mother's cow.

Software people buy magic beans whenever they believe claims that their best judgment tells them are impossible. Vendors continue to promise that they have beans that will produce huge beanstalks and allow the purchasers to scale to impossible heights of productivity. Developers and managers continue to spend millions of dollars based on those claims. The $64 question for our industry is, "how many times are we going to buy the same magic beans?"

It's human nature to look for an easy way out, and it's entirely rational to look for the cheapest, fastest, easiest solution. But it's hard to believe that trained professionals would continue to act against their best judgment for 30 years, which is what we as an industry have done.

Software development is a tough, time-consuming business. For 30 years we've been told that the magic that will enable us to slay giant schedules and budgets is just around the corner. For 30 years it hasn't come. I say, enough is enough. There is no magic. There is no point in waiting for it. The more we wait, the more we deprive ourselves of valuable, incrementally better solutions to many of our problems. There aren't any easy solutions, but there are easier solutions, which can provide modest improvements individually and dramatic improvements collectively.

This whole book, in a sense, is an entreaty to stop buying magic beans and looking for silver bullets. We as an industry need to grit our teeth, bite the bullet, and do the hard work necessary to achieve real productivity gains.

-- from Steve McConnell's Rapid Development, pages 367-368.


Additional Excerpts from "Rapid Development"

These excerpts are located on other Web sites and may or may not be available at any given time. The links are provided to our readers as a convenience only.

A Case Study in Classic Mistakes

What Kind of Rapid Development Do You Need?

Best Practice: Voluntary Overtime

Case Studies in Project Recovery

Best Practice: Daily Build and Smoke Test


Table of Contents

 

Part I: Efficient Development

1

Welcome to Rapid Development

2

Rapid-Development Strategy

3

Classic Mistakes

4

Software-Development Fundamentals

5

Risk Management

 

Part II: Rapid Development

6

Core Issues in Rapid Development

7

Lifecycle Planning

8

Estimation

9

Scheduling

10

Customer-Oriented Development

11

Motivation

12

Teamwork

13

Team Structure

14

Feature-Set Control

15

Productivity Tools

16

Project Recovery

 

Part III: Best Practices

17

Change Board

18

Daily Build and Smoke Test

19

Designing for Change

20

Evolutionary Delivery

21

Evolutionary Prototyping

22

Goal Setting

23

Inspections

24

Joint Application Development (JAD)

25

Lifecycle Model Selection

26

Measurement

27

Miniature Milestones

28

Outsourcing

29

Principled Negotiation

30

Productivity Environments

31

Rapid-Development Languages (RDLs)

32

Requirements Scrubbing

33

Reuse

34

Signing Up

35

Spiral Lifecycle Model

36

Staged Delivery

37

Theory-W Management

38

Throwaway Prototyping

39

Timebox Development

40

Tools Group

41

Top-10 Risks List

42

User-Interface Prototyping

43

Voluntary Overtime


Quick Rating

Readability

Star Star Star Star

Originality

Star Star Star Star

Organization

Star Star Star Star

Accuracy

Star Star Star Star

Consistency

Star Star Star Star

Depth

Star Star Star Star

Timeliness

Star Star Star Star

Editing

Star Star Star Star

Design

Star Star Star

Overall Value

Star Star Star Star

Explanation of ERCB rating scale: No stars = unacceptable, 1 Star = marginal, 2 Stars = average, 3 Stars = above average, 4 Stars = exceptional.


Copyright ©1996 Electronic Review of Computer Books
Created 8/28/96 / Last modified 8/30/96 / webmaster@ercb.com