Software Tools and Practices
Software Tools and Practices
Software Development
Best Practices
by Grady Booch
3
4 Chapter 1 / Software Development Best Practices
2. Caper Jones, Patterns of Software Systems Failure and Success. London: In-
ternational Thompson Computer Press, 1996.
3. Edward Yourdon, Death March: Managing “Mission Impossible” Projects.
Upper Saddle River, NJ: Prentice Hall, 1997.
5
you can precisely quantify their value but rather because they are
observed to be commonly used in industry by successful organiza-
tions. These best practices are as follows.
MANAGE REQUIREMENTS
The challenge of managing the requirements of a software-intensive
system is that they are dynamic: you must expect them to change
during the life of a software project. Furthermore, identifying a
system’s true requirements—those that weigh most heavily on the
system’s economic and technical goals—is a continuous process.
Except for the most trivial system, it is impossible to completely and
exhaustively state a system’s requirements before the start of devel-
opment. Indeed, the presence of a new or evolving system changes
a user’s understanding of the system’s requirements.
A requirement is a condition or capability a system must meet.
The active management of requirements encompasses three activi-
ties: eliciting, organizing, and documenting the system’s required
functionality and constraints; evaluating changes to these require-
9
SUMMARY
Building quality software in a repeatable and predictable
fashion is hard.
There are a number of symptoms of common software
development problems, and these symptoms are the observ-
able results of deeper root causes.
Six commercial best practices strike at the root causes of
these software development problems.
– Develop software iteratively.
– Manage requirements.
– Use component-based architectures.
– Visually model software.
– Verify software quality.
– Control changes to software.
The Rational Unified Process brings these best practices
together in a form that is suitable for a wide range of
projects and organizations.