April 2009  

 

 

 

 

Iterative & RUP Development

'lterative' Development
 

   

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.

 

Last | Next