Monday, July 1, 2013

RUP vs Agile..what is the different?

One of my friends asked me to explain the difference between RUP(rational unified process) and Agile. In fact both demand high rate of development and release. I thought of putting my answer on my blog as this topic seemed very interesting to me.

What is Rational Unified Process? Click here to find the official definition. Before writing this post I had to read lot of materials in the internet. I have never seen how RUP works. I have just heard of that. Therefore there can be some hiccups in the content. Please let me know if you come across any.  

From what I have read RUP and Agile are two different dimensions and have their own advantages when it comes to different factors such as scale of the project, urgency, type of the customer etc. RUP is a predictive methodology where Agile is adaptive. That being said, RUP also allows changes in the scope but does not welcome changes as Agile does. 

Here is a simple comparison of RUP and Agile. This is not an attempt to prove either of them are greater but to highlight the strengths of each discipline. This is a collection of what was there in internet plus my own thoughts!


RUPAgile
ApproachIterativeIterative
CycleFormal Cycle is defined across 4 phases, but some workflows can be concurrent.
Inception, Elaboration  Construction and Transition are the 4 phases.
Team has the flexibility to design each iteration. In best case each iteration can be deliver a workable piece of the product to the client for live use. 
PlanningFormal project plan, associated with multiple iterations, is used. The plan is end-date driven and also has intermediate milestones.No comprehensive project plan. In fact it doesn't need a big project plan. No end-to-end project plan. Each next iteration plan is determined at the end of the current iteration. Product Owner (Key Business User) determines when the project is done. However there is a milestone date used in many projects.
ScopeScope is predefined ahead of the project start and documented in the Scope document. Scope can be revised during the project, as requirements are being clarified, but these revisions are subject to a strictly controlled procedure.Instead of scope, Agile uses a Project Backlog, which is re-evaluated at the end of each iteration. Accommodating changes is a key aspect of Agile. 
Managing resourcesPromotes team work and collaborative work culture. Has a good procedures to plan and control resources.Individual and iterations over processes and tools is a key principle of Agile. Infact Agile is all about empowering the team and allowing bottom up decision model.
Type of Project/ProductRecommended for large, long- term, enterprise-level projects with medium-to-high complexity.Recommended for quick enhancements and organizations that are looking for rapid delivery.

There is one more thing I see in this comparison in favor of RUP. Agile is not a defined to granular level. Agile empowers the team and allows to make decisions. Agile is a mindset changes. It doesnt just change the way we develop software. The risk of Agile is if you get it wrong it will cost lot of money. Agile is easy to misinterpret. 

The best thing I like in both methods is that both relies on working software over anything else. Well, in this specific case Agile is little ahead. However primary focus this working software.

Agile can be applied to any context. Even you can implement RUP in an Agile environment. End of the day Agile is how you do things! 

RUP develops the software which has least changes while Agile develops the software on changes.  

No comments:

Post a Comment