The Rational Unified Process® is a Software Engineering Process. It provides a disciplined approach to assigning tasks and responsibilities within a development organization. Its goal is to ensure the production of high-quality software that meets the needs of its end-users, within a predictable schedule and budget.
“RUP Core Workflows: Project Management and Change Management.” is the next post from series Rational Unified Process Core Workflows.
Project Management
Software Project Management is the art of balancing competing objectives, managing risk, and overcoming constraints to deliver, successfully, a product in which meets the needs of both customers (the payers of bills) and the users. The fact that so few projects are unarguably successful is comment enough on the difficulty of the task.
This workflow focuses mainly on the specific aspect of an iterative development process. Our goal with this section is to make the task easier by providing:
- A framework for managing software-intensive projects.
- Practical guidelines for planning, staffing, executing, and monitoring projects.
- A framework for managing risk.
It is not a recipe for success, but it presents an approach to managing the project that will markedly improve the odds of delivering successful software.
Change Management
In this workflow we describe how to control the numerous artifacts produced by the many people who work on a common project. Control helps avoid costly confusion, and ensures that resultant artifacts are not in conflict due to some of the following kinds of problems:
- Simultaneous Update — When two or more workers work separately on the same artifact, the last one to make changes destroys the work of the former.
- Limited Notification — When a problem is fixed in artifacts shared by several developers, and some of them are not notified of the change.
- Multiple Versions — Most large programs are developed in evolutionary releases. One release could be in customer use, while another is in test, and the third is still in development. If problems are found in any one of the versions, fixes need to be propagated between them. Confusion can arise leading to costly fixes and re-work unless changes are carefully controlled and monitored.
This workflow provides guidelines for managing multiple variants of evolving software systems, tracking which versions are used in given software builds, performing builds of individual programs or entire releases according to user-defined version specifications, and enforcing site-specific development policies. We describe how you can manage parallel development, development done at multiple sites, and how to automate the build process. This is especially important in an iterative process where you may want to be able to do builds as often as daily, something that would become impossible without powerful automation.
We also describe how you can keep an audit trail on why, when and by whom any artifact was changed. This workflow also covers change request management, i.e. how to report defects, manage them through their lifecycle, and how to use defect data to track progress and trends.
___
Based on Rational Software White Paper “Best Practices for Software Development Teams”.