Sunday, 25 November 2012

Introduction To Rational Unified Process (RUP)

This post is an introduction to the Rational Unified Process (RUP), a method driving software application implementation. It is an iterative framework, which puts it in the set of Agile methods.

Concepts

  • RUP is based on UP (Unified Process) which defines 50 optional artifacts. These are organized within disciplines.
  • Each RUP project is customized with a set of practices and artifacts.
  • RUP defines 4 phases:
    • Inception - Lasts few days, usually no iteration. Includes: Business requirement definition, scope definition, 10% of requirements are described in detail, identification of key risks, estimation of effort requirements, creation of risk list, definition of UML use cases, prototyping.
    • Elaboration - Small iterations start: coding and testing of system parts, identification and mitigation of main risks, 80% of requirements are analyzed in detail.
    • Construction - System is completed with more iteration and made ready for deployment (integrated and tested baseline). Includes: stakeholder evaluation, little new changes or requirements, performance tuning, documentation.
    • Transmission - System is deployed, starting with a release candidate. There may be multiple releases until the final release. Training is performed.
  • A Vision is the summary of stakeholder's needs and features.
  • A Design Model is a set of objects (not OO) describing how the different parts of the system to be implemented are going to work together.
  • The Iteration Plan is the set of task and objectives for the current/next iteration.
  • A Risk List with priorities, and mitigation plans.
  • The RUP roles are:
    • Stakeholders on the customer side.
    • On the implementation team: implementer, tester, architect, analyst, database designer, user interface designer.
    • The implementation is lead by a project manager, assisted by process engineers.

Practice

  • Short iterations 2 to 6 weeks.
  • Focus on high-risk and high-value elements first.
  • Reuse of existing component.
  • Accommodate changes early in the process.
  • Deliver value to the customer.
  • Team size can be 3 to several hundred.
  • Continuous verification of quality.

Conclusion

RUP is well suited-for many types of projects, though the overhead will be higher than other Agile methods for small projects. XP and Scrum are more suited for projects created from scratch or involving many new user requirements or features. RUP is efficient for migration projects, ERP deployments or large scale projects.