Getting Started with the Rational Unified Process

Introduction

The Rational Unified Process product consists of:

  • The book "Rational Unified Process - An Introduction".  This book provides an overview of the process.
  • An online version of the Rational Unified Process description in HTML, including templates for reports and documents, tool mentors for Rational tools, white papers, and programming guidelines.

Training on the Rational Unified Process can be ordered separately.

The Rational Unified Process Online Top

The Rational Unified Process online makes the contents of the manuals possible to view with any of the popular web browsers and support frameworks, such as Netscape® Navigator ™ and Microsoft® Internet Explorer™. The Rational Unified Process online has a lot of hypertext links and interactive images for the user to browse.

You can view the Rational Unified Process online.

Learning the Process Top

This section gives guidelines on how to learn the process by reading the manuals, either with hard copy or online. Remember that one of the most effective ways of learning something is to actually do it. So try to combine your reading with some practical work.

To get started, take the Guided Tour.  The tour is organized according to the following project roles:

  • Project manager, the manager of the project.
  • Process engineer, the person who configures or tailors the process to be suitable for the project organization. A person acting as a process engineer is usually responsible for the methods in the project.
  • Developer, which comprises the various workers (use-case designer, architect, and so on).

Guide for Projects Top

To successfully install a software-engineering process in a project (or entire organization), you must at the minimum consider the following issues:

  • Management support. Without appropriate management support, it is hard to introduce a new process.
  • Training project members. Every project member must understand the new process.
  • Configuring the process to suit the project's needs. Configuration must consider such factors as the problem domain, what kind of application, the company culture, and supporting tools. See Introduction to Environment for more information about configuring the process.
  • Supporting tools. A software-engineering process requires tools to support all the activities in a system's lifecycle. You need to select a set of supporting tools and tailor them to work with each other, as well as within the process.

It is important that management stand behind the introduction of a new process, and possibly a new tool set. Management must be fully aware of what it takes to introduce a new process:

  • There are always initial costs associated with introducing a new process. You need to train your staff, and possibly pay for mentoring. You may experience a lower productivity in your first project, at least if you include necessary training as a part of the project. It may be wise to exclude training from the initial project to get a fairer comparison with other projects. Over time you will see a productivity gain; experience shows that you can expect to see increased quality from the first project.
  • Most people like doing things in ways they are familiar with, especially when under stress. This means that you can expect the staff to fall back on old procedures, especially when the pressure is extreme. As a manager, you must be prepared for this. Encourage team members to stick to the process. You may even find yourself falling back to old procedures when you see a problem. Try to go through at least one full project if you possibly can and then evaluate what went well, what did not go well, and what can be improved.
  • There are always risks when you introduce a new process, but there are also great rewards. One way to reduce risks is to provide the appropriate training and to run a pilot project, which is discussed in more detail in the following paragraphs. Another way to reduce risk is to have skilled mentors assist you. They should be able to identify and eliminate some of the issues before they become costly problems. They also typically increase productivity by helping you to avoid pitfalls.

It is strongly recommended that you introduce the process in a small project. A project goal should be that people understand the process and can work with it. Another should be to develop a process configuration (define how the process should be used). It is also recommended that you train people in an environment that is as realistic as possible.

There are several ways to accomplish these goals, all of which are a mixture of training, mentoring workshops, and project work:

  • Apply the process to a pilot project, in which you work on a fictitious prototype example. The goal is to learn the process without affecting the actual product.
  • Apply the process only to the first iteration of a project. In which case, you would be working on parts of the product, but there would still be ample time to fix anything that goes wrong.
  • Conduct a process "boot camp." The goal is to let developers work through all (or most) phases of the development process in the shortest possible time. The system could either be a fictitious prototype or part of the real system. The advantage of a "boot camp" is that people are focused on learning. The goal is primarily to get through all phases and learn as much as possible, thereby gaining enough experience to be able to configure the process to meet a particular set of needs.

When you plan training, remember to deliver it when it is needed. This will maximize the motivation and capacity to learn. Deliver design training when people are about to start working with design, for example.

Supporting Tools Top

A software-engineering process requires tools to support all activities in a system's lifecycle. An iterative development process puts special requirements on the tool set you use, such as better integration among tools and round-trip engineering between models and code. You also need tools to automate documentation, and possibly automate tests to make regression testing easier. The Rational Unified Process can be used with a variety of tools, either from Rational or other vendors. However, Rational provides many well-integrated tools that efficiently support the Rational Unified Process.

Below are listed the tools you will require, and some examples of tools Rational has to meet these needs.

  • A modeling tool to develop the different models, such as use-case model and design model. The tool should have true round-trip engineering so that you can forward-engineer and reverse-engineer code without overriding the changes you have made in the models or code since the last generation.

Example: Rational Rose

  • A requirements management tool, to capture, organize, prioritize, trace all requirements.

Example: Rational Requisite Pro

  • A documentation tool, to support the project documentation. You need to be able to extract information from the modeling tool, as well as other sources such as the code, to create documents that present the models. If you do not have automated document generation, you will most likely have documentation that diverts from your models (or no documentation at all). A documentation tool must allow you to make changes manually in a document, and not override these changes when you regenerate documentation.

Example: Rational SoDA

  • Programming tools, to assist the developers; editors, compilers, debuggers, and so on. These should be integrated with the modeling environment and the test environment.

Example: Rational Apex/Ada, Rational Apex/C++ (Java ready)

  • Tools that support the project manager in planning and steering the project.
  • In a large project, you need to automate the allocation of a task to the individuals on the project. A task management tool can help project managers know what tasks to work on, enforce conformance to a certain process, and at the same time automate tedious tasks related to configuration management. It may also help project managers to continuously monitor the project's progress.

Example: Rational Summit or ClearGuide

  • A configuration management tool, can help you keep track of all artifacts produced, and their different versions. Both models, and especially code needs to be configuration-managed. Integration of coding environments, modeling tools, and configuration management tools is essential.

Example: Rational Apex/CMVC or ClearCase.

  • In an iterative development process you test throughout the lifecycle. It is important that you use test tools to automate testing so that you can easily retest code (regression testing) to minimize resources and maximize quality. More specialized tools allow you to perform load testing.

Examples: Rational SQA Suite, Rational TestMate, Rational Visual Test

 

Display Rational Unified Process using frames

 

© Rational Software Corporation 1998 Rational Unified Process 5.1 (build 43)