What is RUP and Why Use it?
by Phil Marks
What is RUP?
RUP is the abbreviation for “Rational Unified Process” - a systems development
methodology devised by Rational Unified Corporation and now owned by IBM. The author has no connection with
any of these organisations, but has used the process framework in major development projects.
The process was developed as a result of work done by Booch, Jacobson and Rumbaugh
(affectionately known as the Three Amigos), who were in large part the designers of UML (“Universal Modelling
Language). The RUP concept was based on an analysis of what really happens in development projects and why many
projects fail (typically the ‘failure rate’ is 30%).
It fits into the ‘Agile’ project management spectrum at the top end, after XP, Scrum,
RAD and DSDM on a scale of complexity and team size.
By designing the project process in a way which ensures that the riskiest items are
addressed according to highest risk first, then the overall project risk (as initially perceived) is not reduced at
first, but the risk of a large project gaining momentum and then collapsing spectacularly at a late stage is
aggressively addressed. This means that the risk of failure should clearly taper off as a project progresses – this
is quite different to what happens in many ‘traditional’ projects. Of course, it will not protect against the risk
of a business paradigm shift that has not been foreseen.
Briefly, RUP identifies nine project disciplines:
six ‘engineering disciplines’:
- Business Modeling,
- Requirements,
- Analysis and Design,
- Implementation,
- Test,
- Deployment
and three ‘supporting disciplines’:
- Configuration and Change Management,
- Project Management,
- Environment.
These are supported by software toolsets (for example UML modelling tools, automated
testing and test management tools and so on). Iterative working is an essential component of the process structure,
with artefacts (in Prince terms these would be called products) being continually refined and retested (remember
that even a test plan should be checked against its defined standards, as it is itself a project
artefact).
A project is defined in terms of four phases:
1. Inception – this is the high level design of the project itself, including governance,
business case, budgets, risks, plans and, often, assessment of an architectural prototype. The exit gateway is
called the Lifecycle Objective Milestone – that is, what the project is seeking to achieve over the complete
lifecycle (including realisation of the benefits).
Degree of Requirements/Design Changes expected – high
Probability of Requirements/Design Change expected – high
2. Elaboration - this phase involves extension of the teams, design products and prototype
buildout, enhancement of project processes (eg testing) infrastructure, and so on, with a formal exit gateway
known as the Lifecycle Architecture Milestone, the passing of which confirms that an executable architecture has
been demonstrated which ‘realises’, – that is physically delivers – the architecturally risky Use Cases and how
their associated risks are mitigated. It also requires that 80% of Use Cases have been identified and designed,
prioritised according to risk, together with rework of the Business Case and Risks. There are other important
‘tangibles’ required at this time too, including the software architecture model and the development plan. At this
point the project will move into a phase where the risk profile is raised (relatively) as changes will be more
difficult to accommodate.
Degree of Requirements/Design Change expected – moderate
Probability of Requirements/Design Change expected - moderate
3. Construction – in traditional terms, this is where the bulk of the system is built. The
exit gateway is known as the Initial Operational Capability Milestone. In other words, at the end of this phase it
is now ‘on the runway’.
Degree of Requirements/Design Change expected – low
Probability of Requirements/Design Change expected - moderate
4. Transition – the system moves into production, it is available in beta form to the users
and training is underway. It is reviewed against the quality criteria established during the Inception Phase. The
exit gateway is called the Product Release Milestone.
Why Use RUP?
The main reasons are:
- The overall project risk profile is front-loaded.
- The technically risky aspects of the system are addressed and proven early in the
project. If not, the project is redesigned or cancelled before significant resources are committed.
- Each formal phase has its own inbuilt inception, elaboration, construction and
transition phases. After all, the project manager has to ‘deliver the milestones’. This gives the project a
‘fractal’ structure, even down to lowest level programming tasks.
- Testing is a pervasive of the framework process, with proofs/confirmations/reviews a
constant theme, so that problems and issues are flushed out as early as possible.
- Because it is iterative, a project can be designed so that a useful prototype may be
delivered early (unlike a waterfall approach).
- It is ideal for larger projects which have significant technical risks or are
‘ground-breaking’ in other ways.
- The iterative buildout and incremental delivery approach lends itself to situations
where a business area is undergoing rapid change, so that there is early delivery of value, and the shape of
the system can be coupled to the rate of change; this however will also require a suitably flexible underlying
systems architecture.
How Should it be Used?
It requires a suitably experienced project manager to make it work effectively. It can be
applied with a light touch or a heavy touch – the experienced project manager will be able to apply a ‘contingent’
approach and adjust the intensity of the process implementation according to the risk profile, team experience and
so on. Indeed, the ability to customise the process is key attribute of a suitable project manager, as the process
lends itself very well to customoisation.
The Technical Architect, lead analysts, lead designers and test team need to be well versed
in the iterative approach.
To be used properly, it will require investment in software toolsets and infrastructure.
Given this, the minimum project size at which the process framework becomes practical is probably in the region of
3,000 – 5,000 man days, unless of course an organisation is large enough to share the overhead across other
projects.
It is important that the process is well-understood at the highest levels of project
governance, as the iterative approach is not always easy to grasp by people who are used to a waterfall structure.
Early benefits delivery is nearly always of interest at a governance level.
© 2010 Phil Marks. All Trade and Service marks acknowledged.
|