Home Services Case Studies Programming Products Contact

The Rational Unified Process

Perhaps the best known Iterative Method is the Rational Unified Process (RUP).

RUP is best employed when the project is of a reasonable size (say more than 10 developers and many months of work). For smaller projects a subset of RUP could be used but if the requirements are well known and not liable to change then a water fall method can be used. RUP calls the software development stages 'disciplines' or 'workflow's':

The RUP recognises that the pyramid view of even slices of the waterfall is not realistic. In practice the early iterations tend to be heavy on the requirements end of things (you need to define a reasonable amount even to get started), whilst the later iterations have more of their effort in the design and build areas.

RUP recognises that iterations can be grouped into a number of phases according to their stage in the overall project. Each phase may have one or more iterations.

  • In the inception phase, iterations tend to be heavy on the business modelling and requirements, whilst any build and test activity may be limited to emulation of the design.
  • In the elaboration phase, iterations aim at completing the requirements and starting to focus on the analysis and design, with possibly the first real code build.
  • In the construction phase, requirements and analysis iterations are more or less completed and the effort is mostly in design and implementation.
  • In the transition phase, iterations ensuring that software is available for its end users. This includes testing in preparation for release, and making minor adjustments based on user feedback.

How big is an RUP iteration?

A good rule of thumb is that an iteration should take between six and ten weeks for typical commercial projects. Any longer and you have probably bitten off too many requirements to do in one go. You also lose focus on getting the next working iteration completed. Any shorter and you probably haven't got enough requirements to make a significant advance, and will struggle to get all the work done.

This then begs the question of how many iterations in total. This depends on the size of project. Take the estimated time (and working out / guessing that is a whole subject on its own), and divided it into 8 week chunks. Experience seems to suggest that the iterations will divide in the ratio of around 1:2:3:3 into RUP style inception, elaboration, construction and deployment phases. A project that has great vagueness in its specification (some advanced research projects for example) will tend to be heavier on the early phases.

When building a product to contract for a customer the end point is well defined. However when developing a new product for the market place, a strategy that can be used is to decide the product launch date, and hence the end date for completion of engineering (some time before). The time is then divided into iterations, and as much of the product as can be built in that time developed. The iterative process is very effective where time to market is more important that the exact functionality.