The IBM Rational Method Composer (RMC) is a commercial product built on top of Eclipse. It is the next major evolution of the product previously called the IBM Rational Unified Process®, or RUP®, and, among other things, integrates the methods from RUP1 and IBM Rational SUMMIT Ascendant.2
The objective of RMC is to provide a comprehensive process solution for the enterprise. To accomplish this, we provide a broader set of content and improved process engineering tooling than was available through the earlier RUP versions. RMC hence expands on the RUP product to deliver:
- The RUP process framework for guiding people in the development of a variety of software-intensive systems, including legacy evolution, commercial off-the-shelf development, service-oriented architecture, systems engineering, and maintenance.
- Enterprise process guidance derived from IBM Rational SUMMIT Ascendant, RUP, and newly created content.
- A new set of Eclipse-based tooling for authoring, configuring, viewing, and publishing processes, including integration with IBM Rational Portfolio Manager to provide an execution environment of an enterprise process framework.
This means that RUP as a product is going away, but RUP as a process framework will still be carried forward; RUP continues to embody our comprehensive knowledge base for developing software-intensive systems. RUP customers under a current maintenance agreement are entitled to an upgrade to RMC and will hence benefit from greatly improved tooling and content.
For organizations focused on software, systems, or enterprise IT capability, RMC provides processes for defining existing or improved business processes, and describes the organization and IT requirements for implementing desired improvements. It can guide projects ranging from small collocated development to distributed or large-scale development, as well as projects of various types, including packaged application, legacy evolution, maintenance, and custom application development projects. It provides a framework for executing projects within the context of a project, program, or a portfolio, linking IT investments to high-priority business improvements, while leveraging up-to-date development and deployment environments, such as service-oriented architectures.
Rational Method Composer also provides tools that allow you to capture your own best practices, assemble what is suitable for a project or set of projects, and effectively communicate those best practices to the project team. RMC integrates the process with tools for analysis, development, and testing, as well as for tools for management of projects and portfolios.
A subset of the technology in IBM Rational Method Composer is offered to Eclipse as a part of the Eclipse Process Framework (EPF) proposal.3 This proposal is currently supported by more than twenty companies, fifteen of which have offered resources to co-develop the framework. If this proposal is accepted, it will mean that RMC is based on what we expect to be a vibrant open-source ecosystem that will greatly benefit RMC customers. Many universities are expected to teach EPF, many consultants are expected to deliver services, and many organizations are expected to make content available as a part of the ecosystem.
In this article, I will describe what RMC provides for projects of different types as well as its cross-project and enterprise-level guidance. I will also look at how RMC can deliver value to practitioners and team members, project managers, and process managers or process engineers.
Process for a variety of projects
The RMC product comes with a set of out-of-the-box processes, or delivery processes. These describe an end-to-end process, including a suggested order of activities, including phases to plan for and typical iteration patterns. These can be used out of the box or as a starting point for further customizations. New delivery processes are added frequently and are made available via the developerWorks Website4. As of today, the following processes are available, as listed below. Note the color code for processes that offer minor improvements, major improvements, or are completely new compared to the RUP product:
- Σ = improved
- Δ = greatly improved
- NEW! = brand new in RMC
Σ RUP for small projects: This process guides small and collocated teams in how to develop new software or make major improvements to existing software.
Σ RUP for medium-sized projects: This process guides distributed and medium-sized teams in how to develop new software or make major improvements to existing software.
Σ RUP for large projects (Classic RUP): This process guides distributed and large-scale teams in how to develop or refine business models, how to develop new software, and how to make major improvements to existing software to support an evolving business. This process is most appropriate for organizations working to meet industry or regulatory compliance guidelines, such as Sarbanes-Oxley, Software Engineering Institute (SEI) Capability Maturity Model Integration (CMMI), Basel, and ISO 9001.
Σ RUP for COTS (Commercial Off-The-Shelf) or packaged application development: This process describes how to choose the right components to reuse, and how to make the right trade-offs among reuse, addressing requirements, programmatic risk, and marketplace concerns. The process addresses how to incorporate one or several smaller components, as well as how to customize large packages to your needs, as shown in Figure 1.
Σ RUP for systems engineering: This process describes how to develop systems that consist of a combination of software, hardware, and people, addressing the common problems these resources present in effective, unified collaboration. This process is used in a variety of projects, from large-scale defense and communications projects to embedded software projects in the auto industry.
Σ RUP for service-oriented architecture (SOA): This process describes how to define business processes and couple them with services, as shown in Figure 2. It provides a variety of approaches for identifying the appropriate business elements to expose as services components by analyzing current assets and data structures. The approach includes specific guidance on how to leverage J2EE and other technologies to effectively implement Web services.
NEW! RUP for maintenance: This process describes how to take a set of defects and change requests, and drive an incremental release of an existing product.
Figure 1: RUP for COTS/packaged application development
RUP for Commercial Off The Shelf (COTS) or packaged application development describes how to balance tradeoffs among stakeholder, availability of commercial components, architectural concerns, and program risks as you develop applications using COTS or implement packaged applications.
Figure 2: RUP for service-oriented architecture (SOA)
RUP for SOA describes how to define and simulate business processes, how to identify services from business processes, use cases, existing data, and legacy components, how to couple services to business processes to allow close coupling between business needs and IT assets, as well as guidance on how to implement services and services components.
RMC also provides specialized content to support a variety of domains and technologies that can be used to augment or alter the delivery processes listed above or to build completely new delivery processes. This content is packaged as downloadable "plug-ins," which can be added at any time to your processes library. IBM and partners continuously develop new plug-ins.
Some key content areas covered by these plug-ins include:
Σ J2EE development, including guidance on architectural patterns, guidance for designs targeting various deployment environments, and how to effectively use tools to develop J2EE applications.
.NET development, including guidance on distribution patterns, application design, .NET platform elements, architectural layering, and how to effectively use tools to develop .NET applications.
User-centered engineering, including user-experience modeling, navigation maps, storyboards, wire frames, usability testing, and user-centered design.
Tool-specific guidance, including how to effectively leverage IBM Rational software development tools, as well as partner tools.
Process for the enterprise
RMC also addresses cross-project concerns at the program, portfolio, and enterprise levels. We expect to rapidly expand upon this content. At present, the content includes:
Δ Program management. This provides guidance on mobilizing and planning large to very large program efforts. This includes implementation of a program office, planning, and the establishment of program governance, controls, and supporting infrastructure.
NEW! Portfolio management. This provides guidance on planning and executing a portfolio assessment, managing business cases, conducting periodic and strategic reviews of ongoing initiatives, and making continue vs. discontinue decisions.
Asset-based development. This provides guidance on asset production, asset consumption, and asset portfolio management.
Σ Business engineering. This provides guidance on modeling business goals, existing and future business processes, and organizational structure as well as simulation of business process. It also describes how to link business processes to existing or future software assets.
Process engineering. This provides guidance on effectively leveraging IBM Rational Method Composer for your process initiative as well as how to carry out process improvement efforts.
Σ Systems engineering: As described above under "Process for a variety of projects," this process is used both at a project level as well as for large programs, where an overall system is defined and a large number of integrated projects are developing individual components, all leveraging the same system architecture.
IBM has also released the IBM Tivoli Unified Process, which addresses the needs of operations and systems management organizations. This process is based on a UK-based standard, IT Information Library5 (ITIL). Combined with IBM Rational Method Composer, the two processes cover the full IT lifecycle management space.
How the practitioner uses RMC
RMC provides structure in three areas for the practitioner: productivity, guidance, and personalization. Let's walk through what RMC provides in each of these areas.
- Productivity: A key reason for following a process is to be more productive. RMC provides a number of productivity tools:
- Templates to provide a starting point for producing key artifacts
- Roles, tasks, and artifacts to understand how to effectively collaborate with the rest of the team
- Tool mentors that provide specific guidance on how to use a specific tool to carry out tasks described in the process
- Process advisor to understand how to best leverage tools by providing context-sensitive process guidance directly within your development environment
- Guidance: RMC provides a number of different types of guidance:
- Guidelines, techniques, and concepts to help teams learn about new approaches in software development and how to effectively leverage key technologies and techniques
- Examples so that teams can learn from the success of others
- Check lists for rapid assessment of work in progress and for seeing how it can be improved
- Personalization: Based on your experience level, role, and interest, you can personalize your interface towards the process to focus on what matters to you. This is done through MyRUP for Web-browser access, and through Process Advisor for an Eclipse-based interface.
How a project manager uses RMC
RMC focuses on addressing three critical areas for the project managers: rapid project initiation, flexibility, and reality-based management.
NEW! Rapid project initiation: Once a decision has been made to initiate a project, time is usually a precious commodity. The purpose of the out-of-the-box delivery processes, as illustrated in Figure 3, is to provide the project manager with a quick starting point for planning and initiating a project. The delivery process will provide an initial project template, identify what type of project milestones to include, what work products to deliver at each milestone, and what resources are needed for each phase. The integration between RMC and IBM Rational Portfolio Manager allows the manager to rapidly instantiate a project plan based on a starting template and project specifics.
Δ Flexibility: No two projects are alike; a project manager needs to rapidly modify the process to address specific project needs. This can be done through plug-ins and selectable method packages, allowing content around various domains -- such as database modeling or advanced requirements management -- to be added or removed. Capability patterns allow project managers to rapidly add or remove process patterns that pertain to specific problems. RMC also allows a project manager to rapidly modify any aspect of a delivery process.
NEW! Reality-based management: Experience has shown that most detailed project plans produced at project inception are worthless halfway to completion. This is why a delivery process is assembled from capability patterns. These capture process patterns that can be applied as needed as you go through a project, rather than creating a detailed plan for the entire project upfront. Through the integration with IBM Rational Portfolio Manager, you can transfer delivery processes and capability patterns to Rational Portfolio Manager and instantiate your project plan in increments, one or a few capability patterns at a time.
IBM Rational Portfolio Manager also provides a complete environment for managing RUP projects, including the ability for 1) team members to understand what tasks are the most important, to estimate time-to-complete tasks, and to manage documents and reviews; and 2) project managers to distribute assignments, manage schedules and resources, and collaborate with the team to understand project issues. IBM Rational Portfolio Manager also provides advanced portfolio management capabilities, as well as the ability for the entire team to view a variety of metrics related to project health and status, such as progress relative to the project/iteration plan, resource utilization, and time and expense tracking.
Figure 3: Delivery process depicted graphically as a WBS
A delivery process provides -- among other things -- a work breakdown structure (WBS) that can be exported to IBM Rational Portfolio Manager. It also provides a graphical depiction of what activities and tasks should be done in what order, what work products and artifacts will be produced at what time, and what roles you need to staff at different points in time of a project.
How process managers use RMC
Process managers, process engineers, or content owners (or other responsible parties with similar roles in the organization) must determine the appropriate process for various teams within the organization. Typically, the process manager makes these decisions according to the breadth of content, and the ability to customize the process to the needs of different project types, as follows:
Breadth of content: To address the breadth-of-process needs of organizations, teams need to reuse best practices that work for other organizations, rather than inventing everything from scratch. RMC provides an excellent foundation of enterprise-level process content, especially when supplemented by commercial and open-source plug-ins from IBM and others. RMC also makes it easy for organizations to capture their own best practices and to make them seamlessly extend the RMC content libraries.
Δ Customizability: It is not enough to have a lot of content; you also need to be able to leverage that content to execute projects of different types effectively. This is made possible by enabling process managers, process engineers, or content owners to package content into reusable capability patterns and to construct delivery processes for various project types out of capability patterns.
Guiding principles for evolving IBM Rational Method Composer
During the last decade, the Rational Unified Process has continuously evolved by leveraging best practices from a variety of sources. This evolution occurred through integration with other proven processes, such as the Objectory Process, the Rational Process, and SUMMIT Ascendant; through collaboration with leading-edge companies and institutions, such as SEI Carnegie Mellon, University of Southern California Center for Computer Engineering, and a large number of companies who have pushed the state of the art in software development; and through efforts from the broader software development community, which has contributed innovations such as agile development techniques. Every year, we receive more than 1,000 requests for enhancements to our process framework from our customers. As we move forward with broader support for the expanding software development process arena, we rely on you to "keep us honest" and continue to help us evolve the new IBM Rational Method Composer product.
IBM Rational Method Composer and its predecessors have always provided a standalone process, independent of tools. At the same time, these process frameworks have ensured tight integration with software tools for teams seeking automated tool environments, especially IBM Rational Software Development Platform and the Eclipse platform. We strongly believe that the greatest productivity gains are reached by integrating process with tools.
Since RUP made its debut in 1996, the Rational team has firmly believed that a superior process framework must empower individual team members. Only then will a process be successfully adopted within an organization. Far too many process improvement initiatives are driven by management's desire to standardize on a process simply because it will drive "rigor" or "predictability," but these efforts fail when practitioners cannot see how the process makes their lives easier. This is why we have always focused on what the individual team members need. In the end, software is built by teams, and a process only works when it helps team members to collaborate more effectively.
In the October 2005 issue of The Rational Edge, Walker Royce and I described six key principles that can serve as the basis for improving the software development process. We believe that IBM Rational Method Composer offers specific guidance to apply those principles in this era of business-driven development. I invite your questions and comments, and will look forward to hearing from you on the developerWorks discussion forum for RUP users at: http://www-128.ibm.com/developerworks/forums/dw_thread.jsp?forum=335&thread=100198&cat=24
1 IBM Rational Unified Process came to IBM through the acquisition of Rational Software.
2 IBM Rational SUMMIT Ascendant came to IBM through the acquisition of PriceWaterhouseCoopers.
5 See http://www.itil.co.uk