Open Source

Rational Unified Process

Body content of Rational Unified Process
Rational Unified Process (RUP) is a software product that defines a set of development methodologies that, if followed ensures the creation of quality products. The RUP product provides help on every aspect of the software development activity and process, in the form of guidelines, descriptions, HTML and documentation templates. RUP can be adapted and customized according to the requirements and scope of the project.
RUP is based on UML (Unified Modeling language) – a modeling language that enables the creation of models/views to provide better understanding of the project being developed.
RUP defines four phases for a development cycle. These include the following:

  • Inception Phase: In the inception phase stage a project feasibility study is conducted. The business case and project plan are created.
  • Elaboration Phase: The elaboration phase involves the designing of the system architecture. The development plan for the entire project is also drawn up in the elaboration phase.
  • Construction Phase: The actual coding of the various modules of the application is done in the construction phase. At the end of the phase the product is ready for release.
  • Transition Phase: In the transition phase, the software application is handed over to the end user for testing.

The following principles form the basis of the Rational Unified Process methodology:

  • Process Adaptation: The RUP process must be adapted as per the needs of the project.
  • Balance stakeholder needs: According to this principle there should exist a balance between the business goals and stakeholder needs. This involves identifying the business processes and linking them to software capabilities, prioritization of the requirements, creating business use cases etc.
  • Collaboration across teams: This principle states that there should be proper collaboration and communication between team members in order to improve productivity and development.
  • Demonstrate value iteratively: The delivery of the project happens in multiple iterations. In order to reduce risk for each iteration proper analysis and prioritization is required. Feedback from stakeholders after every iteration can help in improving the development of the project.
  • Elevate the level of abstraction: This principle states that the level of complexity should be reduced in order to improve productivity. According to this principle reusable components should be used while coding.
  • Focus on quality: Quality checks should be performed on a continuous basis thereby leading to higher quality of products.


Outsourcing web development efforts can yield drastically different results depending on who you partner with. In the end, success depends on so many factors far beyond code development itself - strong project management skills, the ability to balance a strategic vision and end user needs with technical realities, discipline in execution, steady productivity, honesty, and a positive attitude in dealing with unexpected challenges and changes to name a few. I've found that those who can consistently deliver on these key attributes are rare.
Ted Bream
CEOCore Agenda Inc.