Software development is a team sport. Ideally, the activity involves well-coordinated teams working within a variety of
disciplines that span the software lifecycle. But it's not science, and it isn't exactly engineering, either -- at
least not from the standpoint of quantifiable principles based on hard facts. Software development efforts that assume
you can plan and create separate pieces and later assemble them, like you can in building bridges or spacecraft,
constantly fail against deadlines, budgets, and user satisfaction.
In the absence of hard facts, we must therefore rely on software development techniques we call best practices, the
value of which we have demonstrated repeatedly in our customer engagements. Rather than prescribing a
plan-build-assemble sequence of activities for a software project, they describe an iterative, incremental process that
steers development teams toward results.
The Rational Unified Process six tried-and-true best practices have been the basis for the evolution of our Rational's
tools and processes for more than a decade. Today, as software development is becoming a key business capability, our
best practices are maturing within the larger context of business-driven development. The following
principles re-articulate our best practices for the broader lifecycle of continuously evolving systems, in which
the primary evolving element is software. They are:
Each page included herein presents one of the above principles, emphasizing:
-
The benefits derived from applying the principle,
-
The pattern of behavior that best embodies the principle, and
-
The most recognizable "anti-patterns" or behaviors contrary to the principle, that can
harm software development projects.
|