Posts

Basics of the RUP Iterative Software Development

Rational Unified Process (RUP, commonly pronounced as in rupture) is a contemporary approach aimed at efficient software development. RUP is representative of the newer iterative and incremental methods, forming the basis of newer and rapid development approaches such as Agile Development. Waterfall is a conventional software engineering approach been in existence since 1970s and we will compare RUP with Waterfall and analyze if it is more efficient.

In this post, we will use a non-IT construction analogy to understand the basics of RUP. After all, software development borrowed concepts from constructing buildings to start with!

Let’s say the project at hand is to build three apartment complexes, A1 A2 and A3. The project needs to be completed in three months. For simplicity, assume that the project involves three primary processes, Structuring, Engineering and Landscaping. How will Waterfall go about it? What about RUP?

The Waterfall Enclave Apartments

Waterfall is a top-down, common-sense approach. It proposes that the key processes in a project must be performed sequentially.

The three key processes Structuring, Engineering and Landscaping. Waterfall recommends performing each task in one ‘big bang’. Do it once, do it right! Sounds ambitious? You’re right, not everything about a project is known clearly up front, so this is a risk in waterfall approach!

In Jan, we take on the Structuring work for all the three complexes, A1, A2 and A3. In Feb, we proceed with all the Engineering for all three complexes and in Mar, we finish the project by Landscaping for A1, A2 and A3.

This is how the project plan will look like:

Visually construction will progress as illustrated below:

The RUP Hill Apartments

RUP recommends that key sub-systems in the project be identified first. Take a sub-system, complete the all the key processes, then repeat for each of the sub-systems.

Let’s break the bigger project into three sub-systems: A1, A2 and A3. Take A1, perform the key tasks (Structuring, Engineering and Landscaping) then repeat for A2 and then A3.

In Jan we’ll take A1 and complete Structuring, Engineering and Landscaping. Then, A2’s Structuring, Engineering and Landscaping in Feb. Repeat for A3 in Mar.

The project plan will look like this:

And visually in three months we’ll see the apartments progress as shown here:

RUP is called an iterative and incremental model. Iterative, since we repeat the processes in each iteration (A1, A2 and A3 are our iterations). Incremental since each iteration contributed to expanding the project towards it completion.

What are the advantages of RUP?

  • Faster Return of Investment – End of Jan, the apartment complex A1 is complete and rentable, yielding usage much sooner
  • Opportunity for improvement – If you do not like the way something turned out in A1, you can always make changes into A2 and A3
  • Improved Efficiency – Building a repeatable process allows for increased efficiency in each cycle
  • Better Resource Utilization – Since Structuring, Engineering and Landscaping resources are utilized in three stints over three months rather than being fatigued one of the months, resource utilization is optimal
  • Greater Access to Materials – Over time, technology and materials availability increases, presenting wider options
  • What are some other benefits? Use comments to add your thoughts..

Is RUP always better than Waterfall?

The answer to this question depends on several factors:

  • project size
  • problem domain area
  • requirements stability up front
  • resourcing availability

Here is a video snippet on this topic from a trial class of our Business Analyst Workshop.

Register for a Free Trial
youtube
please specify correct url

RUP and Agile methods are widely adopted these days. What is the reason behind the focus shift? Does RUP and Agile provide for more Rapid Development? What do you use in your current project? Please share your thoughts in the comments section.