The Rational Unified Process
The Rational Unified Process (RUP) is an iterative software development process framework intended to be tailored by the project team to suit their needs. As with any other project management method, the goal is to maximize the use of resources and lead a project that results in a successful conclusion. Given the importance of technology to the success of any organization in the 21st century, it is easy to understand why a business would put great effort into developing software. Any business that fails to develop new software to leverage the technologies that are available today will quickly fall behind the rest of the market.
Software development can be particularly tricky for an organization because it requires input from a number of different departments and individuals. Obviously the IT department would be heavily involved in any new software development project, but so too would the departments that are going to be affected by the new program. Additionally, the decision makers within the organization who control the resources are also going to be interested in how the project is developed. Obviously, there can quickly become a great number of stakeholders within this kind of project. Because of that, it is crucial that a specific process be put in place to govern the movement of the project from start to finish.
RUP is based on a set of building blocks and content elements, describing what is to be produced, the necessary skills required and the step-by-step explanation describing how specific development goals are to be achieved.
The main building blocks, or content elements, are the following:
- Roles (who) – A role defines a set of related skills, competencies and responsibilities.
- Work products (what) – A work product represents something resulting from a task, including all the documents and models produced while working through the process.
- Tasks (how) – A task describes a unit of work assigned to a Role that provides a meaningful result.
Within each iteration, the tasks are categorized into nine disciplines:
Many organizations have chosen to use the Rational Unified Process because it is a flexible framework that can be applied in a great number of different situations. There are four phases to this software development process:
This is where it all gets started. From the moment that there is an idea within the company for a new software project, it needs to be placed into the inception phase to consider future viability. Is the project something that actually could work right now, or should it be put on a shelf and reconsidered later on? Does the organization have the resources available to bring it to life successfully? All of the ‘tough’ questions need to be asked at this stage so that resources aren’t wasted pursuing something that won’t ever be completed.
If it is determined that the project will go forward, this is also the point in time when the necessary resources should be identified. Knowing what will be required in terms of money and personnel is crucial so there is no shortage of those key resources when they need to be called upon at a given point within the project. Once all of the details have been hammered out and the project is well-planned and resources have been allocated, it will be ready to move on to the next phase.
When this phase arrives, it is time for the developers to start thinking about the details of bringing the project to life. Discussions regarding possible approaches to the work should take place at this point, and the architecture of the project should start to emerge. It is possible that, at this time, there will be new demands for resources that emerge based on the plans that are coming together. Of course, the approval for the allocation of those resources will have to be secured before the project can continue on. The elaboration phase is really where an idea turns into something tangible that will start to be created and hopefully put into use in the near future.
All of the planning is over and now it is time to actually create the software. The development of the program takes place during this phase, which should be guided by the decisions that have already been made in previous phases of the project. When the first two phases – inception and elaboration – have been done correctly, the construction phase should be fairly straight forward. The developers should be able to base their work on the guidelines they have been given and the goal for the final product is well-established.
Construction not only includes the writing of the code and the development of the software, but also the testing of its function. All bugs and other issues should be sorted out at this time so they don’t become a problem later down the road. This is an area where they can be conflict among the organization and some outside of the IT department might not appreciate the time and effort required to properly test a piece of software. Some in other departments might be a rush to complete the project and move on, but a failure to properly debug the new program could wind up ruining all of the good work that was done up to this point. Testing should not be seen as optional – it is essential to a successful software development project.
The software is finished and it now simply needs to be rolled out and put into use. If the program is to be used within the organization, it will need to be introduced to the employees within the business and they will need to receive instructions on putting it to work for them on a day-to-day basis. Also, feedback should be received from these users as they will likely find any bugs that were not worked out of the system along the way. If the software is something that the company will be releasing to the public, it might be best to attempt a limited release in order to receive feedback and fix any final issues before doing a full-scale release to the general public.
It is not an easy task to develop a quality piece of software, no matter what the final application of that software happens to be. There are often many competing interests within the organization, so a good plan and clear objectives are necessary. Using the Rational Unified Process is a popular approach because it can put into place a framework around which the important decisions will be made. Challenges are going to come up along the way, but working within this method is a great way to help the members of your team handle those challenges and still arrive at the end of the project with a valuable and functional piece of software.
- The RUP is a software development process that divides the development process into four distinct phases that each involve business modeling, analysis and design, implementation, testing, and deployment. The four phases are:
- Inception – The idea for the project is stated. The development team determines if the project is worth pursuing and what resources will be needed.
- Elaboration – The project’s architecture and required resources are further evaluated. Developers consider possible applications of the software and costs associated with the development.
- Construction – The project is developed and completed. The software is designed, written, and tested.
- Transition – The software is released to the public. Final adjustments or updates are made based on feedback from end users.
- The RUP development methodology provides a specific plan for each step of the development process, it helps prevent resources from being wasted and reduces unexpected development costs.