Core Principles
Four core principles capture the general intentions behind this process and create the foundation for interpreting roles and work products and performing tasks.
Relationships
Main Description

OpenUP Core Principles

OpenUP is based on four mutually supporting core principles:

Collaborate to align interests and share understanding

Software is created by people with different interests and skills who must work together to create software effectively.

Therefore, practices that foster a healthy team environment are key to success. A healthy team environment enables effective collaboration that align the interests of project participants (development team, quality assurance, product stakeholders, customers) and helps project participants develop a shared understanding of the project.

Balance competing priorities to maximize stakeholder value

Systems needs to be developed by balancing different, and sometimes competing, perspectives. As an example, do you want to minimize cost be reusing an existing capability, or custom develop the capability to get it to do exactly what you want?

Therefore, project participants and stakeholders must collaborate to develop a solution that maximizes Stakeholder benefits and is compliant with constraints placed on the project. Achieving balance is a dynamic process, because, as both the stakeholders and project participants learn more about the system, their priorities and constraints change.

Focus on articulating the architecture

Without an architectural foundation, a system will evolve in an inefficient and haphazard way. Such a system often proves difficult to evolve, reuse, or integrate without substantial rework. It’s also difficult to organize the team or communicate ideas without the common technical focus that the architecture provides.

Therefore, use the architecture as a focal point for developers to align their interests and ideas by articulating the essential technical decisions through the growing architecture. 

Evolve to continuously obtain feedback and improve

It is usually not possible to know all stakeholders needs, be aware of all project risks, comprehend all project technologies, or know how to effectively work with your colleagues. Even if it were possible to know all of this, some of it is likely to change over the life of the project.

Therefore, divide the project into short, time-boxed iterations to demonstrate incremental value and to get early and continuous feedback.