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:
-
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.
-
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.
-
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):
-
-
Develop the method
elements. This includes developing new content and/or refining existing content
-
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.
-
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.
-
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:
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.
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.
When you tailor RUP using an external document, the key tailoring steps are performed as follows:
-
Develop the method elements (such as templates, guidelines, and examples using whatever tools support the
development of the content.
-
Configure the method content.
-
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.
-
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).
When using My RUP to tailor the RUP, the key tailoring steps are performed as follows:
-
Develop the method elements using whatever tools support the development of that content (e.g., word processors,
spreadsheets, HTML pages, etc.).
-
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.
-
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.
-
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.
When using Rational Method Composer (RMC) to configure existing method content, the key
tailoring steps are performed as follows:
-
Since you are configuring existing content, no method element development needs to be performed.
-
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.
-
Since you are configuring existing content, no process needs to be developed (one of the pre-defined Delivery Processes can be used).
-
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.
When using Rational Method Composer (RMC) to add Guidance to existing method elements, the key tailoring steps are performed as
follows:
-
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.
-
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.
-
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).
-
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.
When using Rational Method Composer (RMC) to define a new Delivery Process, the key tailoring steps are performed as follows:
-
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.
-
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.
-
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.
-
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.
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:
-
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.
-
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.
-
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.
-
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.
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.
|