Principles re-articulate the "best practices" in the old versions of RUP; The patterns and anti-patterns for each are:
Adapt the Process
Pattern
1. Right-size the process to project needs.
2. Adapt process ceremony to lifecycle phase and allow formality to evolve from light to heavy as uncertainties are resolved.
3. Improve the process continuously.
4. Balance plans and estimates with level of uncertainty.
Anti-Patterns
• Force early estimates and stick to those estimates.
• Develop precise plans and manage project by tracking against a static plan.
• Always use the same degree of process throughout the lifecycle.
Balance Completing Stakeholder Priorities
Patterns
1. Define, understand, and prioritize business and user needs
2. Prioritize projects and requirements and couple needs with software capabilities
3. Understand what assets we can leverage
4. Balance asset reuse with user needs
Anti-Patterns
• Negotiate any changes to the requirements, where each change can
increase the cost or duration of the project.
• Lock down requirements up-front, thereby reducing the ability to
leverage existing assets.
• Primarily perform custom development.
Collaborate Across Teams
Patterns
1. Motivate people to perform at their best
2. Create self-managed teams.
3. Encourage cross-functional collaboration (for example, analysts, developers, testers)
4. Provide effective collaborative environments
5. Manage evolving artifacts and tasks to enhance collaboration and progress and quality insight with integrated environments.
6. Integrate business, software, and operation teams
Anti-Patterns
• Nurture heroic developers willing to work extremely long hours, including weekends.
• Have highly specialized people equipped with powerful tools for doing their jobs, with limited collaboration between different team members, and limited integration between different tools.
• Assume that if just everybody does his or her job, the end result will be good.
Demonstrate Value Iteratively
Patterns
1. Enable feedback by delivering incremental user value in each iteration.
2. Adapt your plans using an iterative process.
3. Embrace and manage change.
4. Attack major technical, business, and programmatic risks early.
Anti-Patterns
• Plan the whole lifecycle in detail and track variances against plan (can actually contribute to project failure).
• Assess status by relying on reviews of specifications, rather than assessing status of test results and demonstrations of working software.
Elevate Level of Abstraction
Patterns
1. Reuse existing assets.
2. Use higher-level tools and languages to reduce the amount of documentation produced.
3. Focus on architecture first.
4. Architect for resilience, quality, understandability, and complexity control.
Anti-Patterns
• Because few abstractions are used, a lot of the discussions are made at the code level versus a more conceptual level, which misses many opportunities for reuse, among other things.
• Informally captured requirements and other information require many decisions and specifications to be revisited over and over.
• Limited emphasis on architecture causes major rework late in the project.
Focus Continuously on Quality
Patterns
1. Ensure team ownership of quality for the product.
2. Test early and continuously in step with integration of demonstrable capabilities.
3. Incrementally build test automation.
Anti-Patterns
• To peer-review all artifacts and complete all unit testing before integration testing.
• To conduct in-depth peer-review of all intermediate artifacts, which is counter productive because it delays application testing and hence identification of major issues.
• To complete all unit testing before doing integration testing, again delaying identification of major issues.
For the information about Key Principles, you can read my blog here: http://blog.csdn.net/iright/archive/2007/01/09/1478153.aspx