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!
[note color="#C9DEEB"]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?[/note]
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:
[note color="#C9DEEB"]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.[/note]
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.
[button link="http://requirementsinc.com/ba/register" color="#0099CC" size="1" style="2" dark="0" square="0" target="blank"]Register for a Free Trial[/button]
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.
The Iterative and Incremental Development (IID) process is well suited to any “Teaching / Learning and Testing / Guidance Process”.
When an assignment is given, the students work on it all by themselves and present COMPLETE work / solution after a LONG TIME. Often, the instructor finds that the path taken and results produced are incorrect and unacceptable.
Alternately, in the IID process, the learners describe their understanding and plan of work within one hour. This way, the instructor can verify the understanding and approach and give early corrections. Frequent IID cycles ensure that time and effort yield acceptable progress from the start of the assignment.
You might find benefit by visiting my RUP integrated SDLC that blends business, engineering and development. It’s open (creative commons) enjoy! http://opensdlc.org/mediawiki/index.php?title=Main_Page
Real Estate model homes example:
1)Structure,Engineering,landscaping (RUP) method works best
After the prototype model homes are built
the waterfall method to build all the homes in the development
Advantages of RUP over Waterfall:
Faster- more ROI- because of higher efficiency
An opportunity to learn from past mistakes- thus streamlining the over all process.
More opportunity to improve the product with each iteration (make improvements in design, landscaping, save materials etc) in each iteration. This is especially true for a long project.
RUP / WATERFALL
I think it probably is fair to say that RUP provides a modular level of control on the business processes. It enables micro management on the individual components of the project there by providing a better solution as opposed to waterfall methodology.
however waterfall would provide an option to predefine the business processes enabling the project team to work with a premise of boundaries possibly offering a better scope and guidelines to the individuals at the low level on the food chain within the project..
RUP method also:
(a) Introduces Flexibility in the process. You’ve established a process for e.g. Built one phase of the building complex, now for the second phase you can either replicate the earlier process which is tried & tested or attempt to build the second phase using another process/method
(b)Since the process is tried & tested i.e. One Phase has been completed using the process, it’s easier to expand the scope of the project. Apply the same process to build more than 3 phases of the complex with minimal expenses & resource wastage
(c)Identifying errors in the Process & testing it as a Whole happens in RUP. If there is a possible error in Engineering or Landscaping phase we would not know till Month 2 or 3 in case of Waterfall but in RUP it happens in Month 1
In the example RUP has an advantage because it is marketable to sell the houses and you and start the next phase.
RUP is better when it comes to reuse of software components. For exampe in the construction example, certain software components used in the development of apartment complex A1 can be reused in the development of apartment complex A2. this sames time and also resouces.
Unexpected changes in project scope, stakeholders or user requirements can be easily accomodated in the RUP methods as compared to the Waterfall method.
Ability to test and minimize mistakes for future projects by working on each project individually
Ability to start producing profits earlier as each project is completed
Ability to make changes in all areas as all functions are taken care of one at a time
output is going to be closest and acurate to the requirement. you would know if you have meet the requirements in the first month itself, unlike waterfall where you would know the outcome only at the end of the period. Any changes in the design or requirements can be easily incrporated in RUP method.
RUP gives the oppurtunity to improve the design, a better structure and visualize the end result.
RUP has the advantage because one component of the system can be tried and tested before all the other components are developed which allows for better resource utilization and budget. Any changes in requirements that comes in at the last minute can be accomadated with relative ease without impacting the entire system.
The RUP process seems less time effective yet more efficient however may allow for finding errors only on in the developmental phases; however the Waterfall process if planned correctly may allow for a faster ROI due to faster structuring
The RUP process has flexible phases, therefore a more adaptable framework of software; where as the Waterfall has fixed phases with a more prescriptive concrete process.
I would thinks the stakeholders would be more satisfied with the RUP over the Waterfall approach as a result of being able to contribute to structural improvements from the original plan
What is the differenvce between RUP and PERT (Process Evaluation and Review Technique)- one of the old Project management Technique at 1960’s work?
Thanks for putting together this post on basics of the RUP ITERATIVE software development .It is a great read. I particularly find your thoughts about the waterfall enclave apartments really interesting.
Keep up these insightful posts.