IBM
Rational RUP
and Iterative Development
At
the start of the development effort, the scope of
the proposed project is formally determined and defined
in detail. A major effort is made to elicit
complete, detailed system requirements from the client's
management and staff stakeholders.
A
requirements-design-construction-test cycle then
follows. These processes exist within a given
'iteration' of project activity. All of these
processes are repeated as the software application
matures. This spiral cycle of activity provides several
major benefits to both the development team and to the
client.
A
final testing and delivery (release management)
phase of the project results when the spiral
development cycle has gone through sufficient iterations
to produce a version of the software product under
development that meets the client's expectations for
requirements and for quality. A Maintenance phase
follows this testing and release management phase.
The
benefits of iterative development:
-
A
short deliverable cycle allows developers to
achieve visible results and a sense of
accomplishment resulting from having smaller
development tasks to plan, execute and deliver.
-
Allows
developers to work with the required
creativity while providing short-term limits
that provide visible milestone controls for team
management and for the client.
-
Client
management and staff stakeholders see visible,
short-term results from the development effort.
-
Stakeholder
'owners' of different business processes
automated by the effort get to see incremental
results in their piece of the project with
frequency, leading to better client by-in for the
project's goals.
-
The
client gets to provide feedback as each
prototype deliverable of software is released to
them for testing. This results in a better,
more frequent and more accurate communication of
client requirements that will naturally evolve over
the life of the development cycle.
-
Changes
in client-desired requirements that become
apparent to the client's stakeholders only with
hands-on work with an evolving prototype model can
be communicated in a structured fashion to the
development team using a formal change control
process. This process reduces miscommunication
between the client's business unit stakeholders and
the development team.
-
Smaller,
incremental requirement change requests allow
the software team to properly plan for budget,
schedule and labor resource allocation changes in an
organized fashion.
-
Neither
the client nor the development team get caught
in misinterpretations of client intent for
requirements.
The
Rational Unified Process assembles the same process
terminology in a slightly different manner. The
RUP process maps to the Milestone process as follows:
# |
Milestone
Phases |
# |
Rational
RUP Phases |
0.0 |
Initial
Requirements |
I |
Inception |
1.0 |
Envisioning
Phase |
II |
Elaboration |
2.0 |
Design
Phase |
III |
Construction |
3.0 |
Build
Phase |
III |
Construction |
4.0 |
Test
Phase |
IV |
Transition |
|
Major
project lifecycle (LC) milestones occur when each
phase of the project life-cycle has been accomplished
successfully. Using RUP, these milestones often
occur after multiple iterations have been performed by
the development team within each RUP project phase.
# |
RUP Phases |
Phase-End
Milestone |
I |
Inception |
LCO-Lifecycle
Objective |
II |
Elaboration |
LCA-Lifecycle
Architecture |
III |
Construction |
IOC-Initial
Operative Capability |
IV |
Transition |
PR
-Product Release |
|
Lifecycle
milestones consist of the following
criteria, marking the successful phase completion:
# |
Life-Cycle
Milestone Definitions |
LCO |
Lifecycle
Objective - The project scope is agreed
upon by all stakeholders; the risks have been
identified and understood and are reasonable
to manage with assigned resources. |
LCA |
Lifecycle
Architecture - High risk areas of the
project have been identified, addressed and
prioritized. |
IOC |
Initial
Operative Capability - Product is
functionally complete and the quality is
acceptable to the client. |
PR |
Product
Release - Full testing based upon test
cases (derived from use cases created during
requirements analysis)... is completed.
Quality and completeness have been reviewed
and accepted by the end client for the
software project. |
|
Iterative
development and Rational Unified Process
� based development provide software teams and their
customers with processes that allow projects to be
planned correctly from the start. This approach
mitigates the very real risks that projects will loose
schedule and budgetary control when requirements and
change management are not well planned-for and when
these factors are not well managed during all project
phases. Effective and proactive risk management is
at the core of the Rational methodology.
|