Minimal, Complete, and Extensible
OpenUP is minimal, complete, and extensible. It's the minimum amount of process for a small team. It can be used as-is or extended and customized for specific purposes.
Main Description

Introduction

A good way to understand OpenUP is to think of it as targeted to teams that have the following objectives:

  • Apply the minimally necessary process that brings value.
  • Avoid being overloaded with unproductive formal work products.
  • Use a process that can be tailored and extended for additional needs that may arise during the software development lifecycle.

In order to be applied to as many project environments as possible, OpenUP is a process that has the following characteristics:

  • Minimal - only fundamental content is included
  • Complete - it can be manifested as an entire process to build a system
  • Extensible - it can be used as a foundation on which process content can be added or tailored as needed

Minimal

OpenUP is considered an agile, lightweight process that promotes software development best practices such as:

  • iterative development
  • team collaboration
  • continuous integration and tests
  • frequent deliveries of working software
  • adaptation to changes, and so on.

Other factors also count when determining the size of process material, such as the number of method elements like roles, tasks, artifacts and guidance.

OpenUP provides descriptions of responsibilities, skills and competencies of the fundamental roles in a team. See the list of Roles for more details.

OpenUP provides the essential artifacts needed to capture and communicate decisions. Ultimately, the process is not governed by artifact creation. For example, thinking about design is more important than documenting the design; assessing and planning an iteration is about promoting team collaboration instead of creating plans that are written in stone. In addition, for each artifact, OpenUP suggests informal representations or provides informal templates as starting points for teams that do not need to create their own. The team decides what the most appropriate form to be applied is. See the list of Work Products organized by domains.

Tasks in OpenUP are clear and focused on results. Text is usually short and objective, describing how individuals should collaborate to achieve objectives. Steps are short descriptions of what to achieve, and point to external guidance on how to do it. See the list of Tasks organized by disciplines.

OpenUP recommends the least amount of process guidance a team should use in order to be successful. Teams may have different names or responsibilities for roles, may perform tasks in or have different representations for artifacts, but they still want to follow the principles and practices described in OpenUP to increase the chances of project success.

Complete

OpenUP is considered a complete process because it covers the essential disciplines in a software development lifecycle by guiding the team in the following high level activities:

  • Customer needs and requirements are elicited and captured, with continuous customer involvement.
  • A robust architecture for the system is evolved, addressing technical risks and promoting team organization.
  • For each requirement, a technical solution is designed, implemented and tested, which conforms to the architectural decisions.
  • The system is evaluated by tests that validate customer requirements.
  • Defects and enhancements feed back into development.
  • Work is prioritized, iterations are planned and assessed, and team members take on work to be done.

However, OpenUP assumes that the project team is not responsible for certain activities and decisions that are assigned to other areas of the organization, such as:

  • Creation of the business case is dealt with by management who decides whether or not the project is worth investing in, what is the return on investment, and so on.
  • Environment setup - some organizational issues may not be in the scope of the team, such as: installation, configuration and licensing of development tools and configuration management tools; development process customization and publishing, etc.
  • Deployment and operation - addressed at an organizational rather than a team level.

Other areas of concern are also not present in OpenUP, because small teams do not need to deal with the formality or overhead of these areas. They include, but are not limited to:

  • Advanced configuration management
  • Advanced requirements management
  • Program and portfolio management

Extensible

OpenUP can be adopted by projects as it is, out-of-the-box, because it's minimal and complete.

However, different projects may have different needs. Organizations may be interested in customizing some aspects of OpenUP to adapt it to their projects. These are some examples of possible customization:

  • Add new or rename existing roles
  • Add steps to existing tasks
  • Create new guidelines on a given technique
  • Remove a given content area
  • Modify existing or add new templates to artifacts
  • Modify or create a new process lifecycle
  • Add or remove process content
  • Add guidance on how to achieve compliance
  • Add guidance specific to a technology being used
  • Replace or augment one of the layers with new content (e.g. by changing or adding material to how management is performed)
  • Etc.

OpenUP can be customized and extended by using the EPF Composer tool, which allows you to author, configure and publish methods. With EPF Composer, you can add, remove and change elements according to your team needs, then publish the content to serve as guidance for your team.

See more information about customization in Supporting Material: Resources for Customizing Methods.