OpenUP Core Principles
OpenUP springs forth from 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 develop collaborative practices that foster a healthy team environment. Good collaborative
practices align the interests of project participants (e.g. development team, quality assurance, product stakeholders,
customers) and help project participants develop a shared understanding of the project.
Balance competing priorities to maximize stakeholder value.
Rarely can a system be all things to all people and often attempts to do so are wasteful and result in bloated systems.
Therefore stakeholders and developers must clearly understand and agree upon:
-
the problem to be solved,
-
the constraints placed on the development team (cost, schedule, resources), and
-
the constraints placed on the solution
The developers and stakeholders must collaborate to develop a solution that maximizes stake holder benefits and is
compliant with constraints placed on the project. Achieving balance is a dynamic process for as the both the stake
holders and developers learn more about the system, priorities and constraints change.
Focus on articulating the architecture.
Without a focal point a system can evolve in an inefficient and possibly haphazard way. Such as system may prove
difficult to evolve, re-use, or integrate without substantial rework. Furthermore, it may prove difficult to organize
the team or communicate ideas without a common focus.
Therefore, articulate essential technical decisions through a growing architecture. Develop the architecture of the
system early and use the architecture and use the architecture as a focal point for the developers to align their
interests and ideas.
Evolve to continuously obtain feedback and improve.
It is usually not possible to know all stake holders needs, be aware of all project risks, comprehend all project
technologies, or know how to work with your colleagues. Even if it were possible to know all these it is unlikely they
will not change over the life of the project.
Therefore divide the project up into short time boxed iterations to demonstrate incremental value and obtain early and
continuous feedback. Shift the focus of the iterations as the project evolves.
|