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.
|