The IT industry learned a long time ago that creating products that merely satisfy customers is not a guarantee for long-term success. Successful IT solutions need to be robust and flexible, and above all, they must be aligned with business priorities. Since its creation in the 1990s,1 the Rational Unified Process®, or RUP®, has become the de facto standard for business-driven development. And because a methodology is only valuable when it is adapted to the organization that is using it, IBM Rational best practices embrace process tailoring as a key prInciple for successful iterative development.
To ensure lifecycle efficiency and increase project agility, a right-sized process can be created, documented, and published through the authoring tool known as IBM Rational Method Composer, the environment in which RUP is tailored for use.2
Author's note: This article assumes that you are familiar with RUP methodology and with some of its key concepts.
A case study: Adapting Yummy Inc. process
Yummy Inc. is a fictitious company offering online catering services. Their information system is crucial to ensure business continuity and efficiency. To mitigate risks throughout each project, the IT team has adopted the Rational Unified Process. Now they want to go a step further in the process adoption, so they plan to adapt some parts of the RUP content to their specific needs.
Liz, the IT manager, has decided to start with a proof of concept to evaluate the benefits of RUP tailoring. Based on her experience, she knows it is better to start with a small piece before moving to more advanced process fine-tuning. Richard, the process engineer, has been assigned to conduct the process tailoring activities. After a workshop, Liz and Richard draft out the content of the proof of concept. Their main objective is the tailoring of a work product: the RUP Software Architecture Document. Because they want to use a method authoring and configuration tool, they opt for IBM Rational Method Composer.
After a workshop, the team drafts the content for the proof of concept they want to conduct:
|
Name: Yummy process tailoring proof of concept
Concepts to demonstrate:
|
Supporting process authoring with Rational Method Composer
Rational Method Composer is a flexible process platform containing processes and tools for use throughout IT lifecycle management. It helps to customize out-of-the-box process content or to create a new process from scratch. Detailed descriptions of RMC key concepts and core functionalities are available in existing developerWorks articles.3
Now that the project has been founded, Richard, the process engineer, must conduct the proof of concept. The first step is to create a method plug-in as shown in Figure 1. The method plug-in will gather all the additional and customized material created for the tailored RUP framework.
Figure 1: Method plug-in creation
The plug-in is named "Yummy_Resources" (see Figure2). It references the RUP method plug-in because Richard wants to be able to define extensions and changes to the standard RUP content.
Figure 2: Available reference plug-ins
Rational Method Composer then creates an empty method plug-in structure (shown in Figure 3) based on an internal template. The method plug-in contains two different packages: the method content package and the processes package.
Figure 3: Default plug-in structure
Take a look at the Yummy_Resources shown in Figure 3. The "method content" package is a container for method content elements and it is broken down into smaller packages to help process engineers understand the content, including content packages, standard categories, and custom categories.
The "processes" package is a container for process elements. It contains capability patterns (reusable building blocks to assemble a full process) and delivery processes (processes that cover a whole development lifecycle from beginning to end).
Richard can see immediately that the RMC platform supports complex process tailoring. By using the different plug-in packages shown in Figure 3, engineers can customize any aspect of a process according to disciplines, the role sets, a specific reusable cluster of activities (capability pattern), or even a whole process (delivery process).
In Richard's case, based on the Yummy proof-of-concept objectives, it is clear that he will not have to create a full process. His tailoring work will only focus on the method content package.
In order to create the new work product content for the proof of concept, it is necessary to add a content package (see Figure 4). RMC creates a default structure for sorting the contents of each package (roles, tasks, work product, guidance), as shown in Figure 5.
Figure 4: Content package creation
Figure 5: Default content package structure
Richard needs to create a new artifact: the Yummy Software Architecture Document, shown in Figure 6.
Figure 6: Artifact creation
The team had decided that the Yummy process will provide additions to the existing RUP material, so Richard uses the content variability attribute to specify the additional material must be added to the base content, as shown in Figure 7.
Figure 7: Content variability: contribution
Variability allows elements in one content package to influence or modify elements in another without actually directly modifying the original content. Variability enables changes to the content while keeping the changes separate and optional.
As a contributing artifact, the content of the Yummy software architecture document elements will be added to the base element called rup_software_architecture_document. The effect, after contribution, is that the base element is replaced with an element that combines the attributes and associations of the contributing element with the base element.
In order to achieve the proof-of-concept objectives, a Yummy template must be added to the newly created artifact. In RMC, a template is created in the guidance folder of a method content package, shown in Figure 8.
Figure 8: Template creation
A template is a specific type of guidance that provides a work product with a predefined table of contents, sections, packages, and/or headings or a standardized format. A template in RMC can contain, along with other information, one more attachment, such as template files for different word processors, as shown in Figure 9.
Figure 9: Template editor
Similar to the creation of a template, it is possible to create other guidance elements. Richard decides to create an example element that will contain a sample software architecture document, as shown in Figure 10.
Figure 10: Guidance elements
Now that the guidance elements have been defined, they must be associated to the Yummy artifact as shown in Figure 11.
Figure 11: Associating guidance with a work product with the editor
The elements specified in the guidance tab will populate the illustrations section of the artifact. Then the published document will contain both the Yummy Inc. template and the Yummy Inc. example, which you can see reflected in Figure 18 at the end of this article.
In addition, it is also possible to add some customized text for each element of the artifact. For instance, in the purpose section, Richard decides to explain a bit further why a specific Yummy template has been created (see Figure 12). As the new artifacts contribute to the RUP software architecture document, any description will be added to the base element once the process is published.
Figure 12: Work product customization
Richard has completed the process authoring. Now he wants to show to Liz the result of his work with a published process.
Before being able to publish a method, it is necessary to create a configuration. In a method configuration, it is possible to select and deselect from the content packages and processes available in the method library's set of method plug-ins, as shown in Figure 13. The selections help determine the content of the published Website.
Figure 13: Method configuration creation
The new configuration created contains the method plug-in he created previously (Yummy_Resources). But all the plug-ins of a classic RUP configuration are also included (RUP, formal resources, informal resources, SOA, and base concepts), as shown in Figure 14. Reusing the out-of-the-box plug-ins, Richard can efficiently assemble a complete process with minimum effort.
Figure 14: Choosing the content of a configuration
The last step is to publish the Yummy configuration. In RMC, there is a simple wizard for specifying the destination directory and other Website attributes, which is shown in Figure 15.
Figure 15: Publish a configuration
The published process can be browsed and contains all the material usually found within a classic RUP configuration, shown in Figure 16.
Figure 16: Published Yummy Inc. process
Click to enlarge
But because Richard has created some additional content, the software architecture document is now adapted to Yummy Inc. needs. It contains additional descriptions (purpose section) specific to the Yummy organization, new links to a corporate template, and a sample (see Figure 17).
Figure 17: Published document -- custom content added to the purpose section
Click to enlarge
The new guidance elements (template and sample) are now part of the Yummy process, as shown in Figure 18.
Figure 18: Published document -- template and guidance elements added to the illustrations section
Click to enlarge
They can be displayed or downloaded by any process user through the published Website.
The customized artifact also contains all the standard RUP content (description, templates, and samples).
Now that the Yummy process tailoring proof of concept has been completed, Liz, the IT manager, wants to conduct an assessment of the method authoring tool they used. She calls Richard into a meeting room and they start writing down what they learned during the proof-of-concept exercise. For example:
- Rational Method Composer has supported the tailoring process efficiently. It was useful for customization, authoring, and even publishing activities.
- Rational Method Composer has provided guidance and structured packages to easily create and organize custom content (the Yummy artifact, the template, and the sample).
- Using Rational Method Composer, the proof of concept objectives were achieved through five easy steps (create a plug-in, create a content package, create an artifact, create guidance elements, associate the artifact with guidance elements).
- The process publication was even easier (create a configuration, pick and choose the content, publish the configuration).
- Rational Method Composer was easy and intuitive. Richard was able to customize an existing process without any technical skills, like having to know Unified Modeling Language (UML) before he could begin.
- Rational Method Composer can leverage reusable assets. It contains several out-of-the-box plug-ins, and new plug-ins can be imported to bring additional values. A complete list of available plug-ins can be found at http://www-128.ibm.com/developerworks/rational/library/05/1206_ibmstaff/
- Rational Method Composer plug-ins can be exported to Microsoft Project or Rational Portfolio Manager, so RMC bridges the gap between process and project management.
- A rich set of customization options allow different levels of process authoring, from the most basic (a configuration, a role, a work product) to the most advanced (new capability patterns, modified tasks, brand new delivery processes, etc.). It can obviously support the most experienced organization in their process tailoring.
At the end of the meeting, they all agree that Yummy Inc. must adopt Rational Method Composer as their method authoring, configuration, and publishing tool.
Many thanks to Peter Haumer, solution architect for the IBM Rational Method Composer product platform, who kindly agreed to share his experience and to review this article.
1 A brief introduction to RUP is available at http://en.wikipedia.org/wiki/Rational_Unified_Process#History. The official RUP Website is http://www-306.ibm.com/software/awdtools/rup/
2 Information regarding Rational Method Composer can be found at http://www-306.ibm.com/software/awdtools/rmc/index.html
3 See the following three articles published in The Rational Edge: Per Kroll, "Introducing IBM Rational Method Composer," at http://www-128.ibm.com/developerworks/rational/library/nov05/kroll/index.html; Peter Haumer, "IBM Rational Method Composer: Part 1: Key concepts," at http://www-128.ibm.com/developerworks/rational/library/dec05/haumer/index.html, and "IBM Rational Method Composer: Part 2: Authoring method content and processes," at http://www-128.ibm.com/developerworks/rational/library/jan06/haumer/index.html

Jean-Louis Maréchaux works as an IT specialist for IBM Rational in Canada. His areas of interest include J2EE architecture, Web services technologies, SOA, and software process implementation. Prior to joining the Rational group, he worked as an IT architect for the IBM Global Services group and other IT organizations, where he was involved in application architecture and design. You can contact him at jlmarech@ca.ibm.com.
Comments (Undergoing maintenance)





