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 observable results of the 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.
Continuously 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.