Concept: Tailoring RUP
This guidance describes the overall process for tailoring the Rational Unified Process (RUP), the goal of which is to provide appropriate and customized guidance on how to develop software.
Relationships
Main Description

Introduction

The Rational Unified Process (RUP) framework constitutes guidance on a rich set of software engineering principles. It is applicable to projects of different size and complexity, as well as for different development environments and domains. This means that no single project or organization will benefit from using all of RUP. Applying all of RUP will likely result in an inefficient project environment, where teams will struggle to keep focused on the important tasks, and struggle to find the right set of information. Thus, we recommend that RUP be tailored to provide appropriate and customized guidance on how to develop software.  This guidance provides a high-level summary of the concept of RUP Tailoring.

Process tailoring can happen at two levels:

  • At the organizational level, where process engineers modify, improve or configure a common process to be used organization-wide. Organization-level tailoring takes into consideration issues such as the application domain, reuse practices, and core technologies mastered by the company. One organization can have more than one organization-wide process, each adapted to a different type of development. In some cases, the predefined classic RUP configuration serves as the organization-wide process. 
  • At the project level, where process engineers modify, improve or configure a common process to be used by a specific project.  When an organization-wide process exists, project-lervel tailoring is where the organization-wide process is further refined for a given project. Project-level tailoring level takes into consideration the size of the project, the reuse of company assets, the type of development lifecycle ("green-field development" versus the evolution), and so on.

No matter what level in the organization the process is being tailored for, the overall approach to tailoring the RUP is the same (though the concerns are different).  The overall approach for tailoring a process is as follows:

  1. Identify the scope of the tailoring effort.  Identify the method content to be added to or refined in RUP.  Identify existing method assets that could be included. For example, organization/project-specific guidelines, templates, examples, etc.  Select the processes, roles, tasks, work products, guidance, processes, etc. that you want to tailor.  For more information on defining the scope of the tailoring effort, see Guideline: RUP Tailoring.
  2. Select the level of tailoring to be performed. There are different levels at which RUP can be tailored, each with an associated "cost" and "benefit".  For information on the different tailoring levels, see the tailoring levels section.
  3. Tailor the process. Tailor the identified parts of RUP using the selected tailoring level.
    No matter what level of tailoring you choose, tailoring the RUP generally involves three key steps (though some steps are optional depending on the tailoring level):
    1. Develop the method elements.  This includes developing new content and/or refining existing content
    2. Configure the method content.  This includes deciding what content to include and what content to exclude, as well as providing appropriate views into that content (for example, views based on role or specific domains).  Configuring the method content is a matter of right-sizing the process to match the needs of a specific organization or individual project.
    3. Develop the process for the configuration.  This includes selecting a type of development lifecycle (for example, waterfall versus iterative) and defining a process that is fine-tuned to fit the exact needs of the organization or project. The resulting process will serve as a direct input to the planning of the project.    
    4. Make the process available.  This includes publishing the configuration (and it's process) as a process website, and/or exporting the process to a project planning tool.

How much of the process you decide to tailor, as well as the level of tailoring you decide to undertake, both depend on a number of factors. These factors are described in Guideline: Process Discriminants.  It is also a good idea to familiarize yourself with RUP, both in terms of content, as well as tailoring support. For more information, see Introduction to RUP.

Tailoring the process is just one part of implementing a process for a project.  Once the process has been tailored, the project manager instantiates and executes it for the given project. An "Instantiated" process is an enactable project/iteration/activity plan (it includes actual activities and work products for an actual project). Such instantiation is done as part of project planning. For more information on project planning, see Task: Plan Phases and Iterations and Task: Develop Iteration Plan.  

The remainder of this guidance describes the different levels of tailoring that are available for the RUP, followed by the description of some common tailoring scenarios which reflect the different tailoring levels.   

For more information on tailoring the RUP, see the following:


Levels of Tailoring

The following are the levels of tailoring that are currently available for RUP, listed from easiest to most complex, where each level includes the preceding level:  

Level 1 Document the tailored process in an external document that refers to an underlying process, as well as any customized method assets.

This level is beneficial if the process you need to tailor cannot be modified for some reason (i.e., it is tightly controlled for auditing purposes) or you do not have access to Rational Method Composer.  Tailoring at this level only affects the presentation of the web site, not its underlying content.

Level 2 Personalize an existing process web site using My RUP and external documents.

This level is intended for use by individuals on a personal copy of the process web site, and is generally not the recommended approach for tailoring the process for an entire project or organization.  However, personalization may be a good compromise in those cases where you want to do some minor refinement of the presentation of the web site and you do not have access to Rational Method Composer.  Tailoring at this level only affects the presentation of the web site, not its underlying content.

Level 3

Configure a process web site from existing method content using Rational Method Composer.

This level is sometimes referred to as Method Configuration development.

Level 4

Add Guidance to the existing method framework using Rational Method Composer.

This level is sometimes referred to as "thin" Method Plugin development.  Thin plug-ins only add Guidance (e.g., Concepts, Guidelines, Templates, Examples, Tool Mentors). Thin plug-ins are a mechanism that organizations can use to package their organizational assets, such as work product templates, guidelines, examples and other reusable assets for consumption in the individual project. The creation of thin plug-ins is done at very low cost and, as such, is highly applicable to any sized organization and can usually be justified within the budget of one single project. In addition, the creation of thin plug-ins does not affect the processes (Capability Patterns and Delivery Processes) included in a configuration, since no roles, tasks, or work products are added/refined. 

Level 5

Develop a new Delivery Process (ideally based on available Capability Patterns) using Rational Method Composer.

This level is sometimes referred to as Delivery Process development.

Level 6

Extend the existing method framework with new method content (e.g., Tasks, Work Products, Roles) using Rational Method Composer.

This level is sometimes referred to as "structural" plug-in development.  A structural plug-in is a plug-in that extends the RUP by adding/refining Roles, Tasks, and/or Work Products. 

Creating structural plug-ins tends to be more resource-intensive than creating thin plug-ins because when you add a role, task, and/or work product, you may need to add additional method content elements, as well as create/refine processes (Capability Patterns and Delivery Processes) to include the new method content elements.  For example, if you were to add a new work product, then you may need to add a new role to be responsible for the work product, as well as add a task to produce the new work product.  You would then need to add the new task to an existing process (or possibly create a new process).

Structural plug-ins are usually developed in process-mature organizations where the focus is on utilizing the process synergy between projects, especially where several projects are developed over the same domain and technology, or in similar development environments. A single project usually does not take on the task of creating a structural plug-in to the RUP, unless the project is large enough to justify the cost of the plug-in development within the budget of the project. A structural plug-in is similar to any reusable asset in the sense that you don't want to take the cost of making it reusable unless you see a reuse potential for it beyond the scope of the project.

In summary, creating new roles, tasks, and so on in a reusable plug-in is non-trivial, and it's generally best to keep such tailoring to a minimum at first, focusing on adding guidance (Level 4) and only adding "missing" elements in a delivery process (Level 5), rather than trying to refactor, replace, or rename RUP tasks, roles, and work products. However, adding new tasks or activities that are isolated to a delivery process or a few new capability patterns is fairly low risk.


Tailoring the RUP using Rational Method Composer (RMC) is recommended.  By using RMC, the resulting process web site has the exact same functionality and look & feel as the classic RUP web site.  Also, if RMC is used, a Delivery Process can be instantiated by exporting it from RMC and then importing it into a project management tool (like Rational Portfolio Manager) where actual work products can be identified, actual resources can be assigned to roles, etc.  For more information on exporting delivery processes, see Tool Mentor: Exporting Processes to a Planning Tool Using Rational Method Composer.

We also recommend that you spend some time looking at existing plug-ins before a plug-in project is started, to avoid "reinventing the wheel". The developerWorks:IBM Sponsored RUP Plug-Ins contains a complete list of available plug-ins that you can download and include in your RUP configuration.

Tailoring Scenarios

In this section we describe a common set of scenarios for tailoring RUP. Each of these scenarios describes how to perform the key tailoring steps using a different tailoring level.

The scenarios are as follows:

Each of these scenarios is discussed below.


Tailor RUP Using an External Document

When you tailor RUP using an external document, the key tailoring steps are performed as follows:

  1. Develop the method elements (such as templates, guidelines, and examples using whatever tools support the development of the content.
  2. Configure the method content.
  3. Develop the process for the configuration by developing a document (or a series of documents) that describes what RUP content is to be included in the tailored process, how the method elements developed in the earlier step fit in, and its location in the overall process lifecycle. The document can be a word processor document, a spreadsheet, a web site, etc. Develop as many documents as necessary to provide sufficient views into the different aspects of the process.
  4. To make the process available, just make the external document and referenced content available to the end-users. With this scenario, there is nothing additional to publish and there is nothing that can be exported.

For example, you could create a series of HTML pages that describe the instantiated process. These web pages could be made accessible from the organization's/project's web site and could be used to provide the initial points of entry for the underlying RUP website (i.e., the HTML pages link to the RUP web site for details).


Tailor RUP Using My RUP

When using My RUP to tailor the RUP, the key tailoring steps are performed as follows:

  1. Develop the method elements using whatever tools support the development of that content (e.g., word processors, spreadsheets, HTML pages, etc.).
  2. Configure the method content by adding the developed method elements to the existing RUP web site process views, creating new process views, and or suppressing existing process views.  
  3. Develop the process for the configuration by developing a document that describes what the overall process lifecycle is, referring to the personalized web site, as necessary. 
  4. To make the process available, just make the personalized web site and referenced content available to the end-users.  With this scenario, there is nothing additional to publish, since the tailoring is performed on the published web site, and there is nothing that can be exported. 

Note: This scenario is very similar the to the Tailor RUP Using an External Document scenario, except with this scenario, the external documents are part of the published web site. 

For more information on how to personalize a RUP web site using My RUP, see Tool Mentor: Personalize the RUP web site using Personal Process View or My RUP.


Tailor RUP by Configuring Existing Content

When using Rational Method Composer (RMC) to configure existing method content, the key tailoring steps are performed as follows:

  1. Since you are configuring existing content, no method element development needs to be performed.
  2. To configure the method content, create a Method Configuration that includes relevant content packages from the RUP framework (and any included method plug-ins) and excludes the irrelevant content packages, and define views into the configuration to support different stakeholders' perspectives.  Ideally, use one of the predefined configurations in RMC as a starting point for the configuration.  For more information on creating a configuration using RMC, see Tool Mentor: Creating a Method Configuration Using Rational Method Composer.
  3. Since you are configuring existing content, no process needs to be developed (one of the pre-defined Delivery Processes can be used).  
  4. To make the process available, publish the configuration to produce the process web site and/or export the delivery process to a project planning tool.  For more information, see Tool Mentor: Publishing a Method Configuration Using Rational Method Composer and Tool Mentor: Exporting Processes to a Planning Tool Using Rational Method Composer.

Tailor RUP by Adding Guidance to Existing Method Elements

When using Rational Method Composer (RMC) to add Guidance to existing method elements, the key tailoring steps are performed as follows:

  1. Create a Method Plugin to contain the guidance.  The method plug-in will not only contain the guidance, but will also contain the associations between the guidance and the method elements they support.  A plug-in that contains only guidance is sometimes referred to as a "thin" plug-in.  For more information on working with plug-ins, see Tool Mentor: Creating a Method Plug-In Using Rational Method Composer and Tool Mentor: Developing Method Content Using Rational Method Composer.
  2. Create a Method Configuration that contains the method plug-in created in the previous step.  Ideally, use one of the pre-defined RMC configurations that contains the necessary method elements, as a starting point.  Refine the configuration views to include the new guidance, as necessary.  For more information on working with configurations, see Tool Mentor: Creating a Method Configuration Using Rational Method Composer.
  3. Since you only added guidance to existing method elements, no process needs to be developed (one of the pre-defined Delivery Processes can be used).  
  4. To make the process available, publish the configuration to produce the process web site and/or export the delivery process to a project planning tool.  For more information, see Tool Mentor: Publishing a Method Configuration Using Rational Method Composer and Tool Mentor: Exporting Processes to a Planning Tool Using Rational Method Composer.

Tailor RUP by Defining a New Delivery Process

When using Rational Method Composer (RMC) to define a new Delivery Process, the key tailoring steps are performed as follows:

  1. Since you are creating a new delivery process, you need to create a Method Plugin to contain the delivery process.  For more information, see Creating a Method Plug-In Using Rational Method Composer.
  2. Configuring the process involves creating a Method Configuration that includes the plug-in created in the previous step, plus any other needed plug-ins (for example, plug-ins containing the method elements referred to in the delivery process).  Ideally, you can use a pre-defined configuration as a starting point (specifically, a configuration that contains a delivery process that is close to the delivery process you want to define).  For more information, see Tool Mentor: Creating a Method Configuration Using Rational Method Composer.
  3. To develop the process for the configuration, create a new delivery process, ideally either starting from an existing delivery process or from an existing Capability Pattern.  For more information, see Tool Mentor: Developing Processes Using Rational Method Composer.
    While developing the delivery process, if you discover that additional method content is needed, you can always add that content to a method plug-in that you then include in the configuration.  For more information, see Creating a Method Plug-In Using Rational Method Composer and Tool Mentor: Developing Method Content Using Rational Method Composer.
  4. To make the process available, publish the configuration to produce the process web site and/or export the delivery process to a project planning tool.  For more information, see Tool Mentor: Publishing a Method Configuration Using Rational Method Composer and Tool Mentor: Exporting Processes to a Planning Tool Using Rational Method Composer
     

Tailor RUP by Adding a New Non-Guidance Method Element

When using Rational Method Composer (RMC) to add a new non-guidance method element (Role, Task, or Work Product), the key tailoring steps are performed as follows:

  1. Create a Method Plugin to contain the new method element and any other additional method elements.  For example, if you are adding a work product, you may need to add a role that is responsible for the work product, a task to create the workproduct, etc.  For more information, see Creating a Method Plug-In Using Rational Method Composer.
  2. Configure the method content by creating a Method Configuration that includes the plug-in created in the previous step, plus any other needed plug-ins (for example, plug-ins containing method elements related to the new method element).  For more information, see Tool Mentor: Creating a Method Configuration Using Rational Method Composer.
  3. To develop the process for the configuration, create a new Delivery Process, ideally either starting from an existing delivery process or from an existing Capability Pattern.  Add the new method element and any related method elements to the delivery process.  For more information, see Tool Mentor: Developing Processes Using Rational Method Composer.
  4. To make the process available, publish the configuration to produce the process web site and/or export the delivery process to a project planning tool.  For more information, see Tool Mentor: Publishing a Method Configuration Using Rational Method Composer and Tool Mentor: Exporting Processes to a Planning Tool Using Rational Method Composer.

Using a Development Case

As discussed earlier, one option for tailoring the RUP is to provide tailoring information in an external document that refers to the underlying process.  The Development Case is an example of such a document.  For more information on the use of a development case in the tailoring process, see Task: Develop Development Case and the associated guidance.