As there is no all-size fits all software development process, even Scrum practitioners can learn some tricks from Rational Unified Process (RUP) for implementing more effective the customer’s requirements. The iterations from RUP can help stabilize the agile approach and offer increasing predictability of the developed software, future architecture and spent budget while keeping the flexibility toward client’s requests, development team buy-in and involvement, and the incremental delivery of the developed system.
We will present in this article the most important features from RUP identified in conjunction with Scrum for a more agile project management style in the benefit of all stakeholders.
Author: Adriana Martin
Scrum is an agile approach that uses project backlog instead of scope. It allows the backlog to be redefined at the end of each iteration (usually about every 2 weeks) and determines if the entire “traditional” lifecycle fits into one iteration called sprint. The requirements for a particular feature are collected, documented as a user story, then coded, tested and presented for the user review after each iteration
RUP is a four-phase process oriented methodology (namely inception, elaboration, construction, and transition) for software development. It is an iterative approach that takes into account the need to accommodate change and adaptability during the development process. It requires a formal definition of scope, and major project milestones are associated with specific dates, subdivides the project lifecycle into phases, which can include iterations.
We will present further in detail some of the most important RUP features that could help Scrum in strengthen the management of a project implementation in some critical aspects.
Architecture: Agile techniques like Scrum promote constructing a list of features to be implemented. Then, it ranks by urgency each for creating the order priority of implementation. Thus the software architecture is developed on the go, with no high-level strategy. RUP can bring here the upfront planning of project and the request for initial design of the architecture that will enable later higher effectiveness in integration of different modules and components in the overall solution.
Budget & timeline: With Scrum, the project milestones are usually close to each other. It is difficult to plan and control that all features (from the initial product backlog and newly identified in the mean time) will be delivered because at the beginning of each iteration the team agrees on the use cases to be implemented in the next 4-6 weeks and update the priorities. Scrum doesn’t say how the project backlog is prepared and when, but it should be considered as an extra-mile in planning. With RUP, the team is ‘forced’ to define the major milestones for each phase at least at rough order of magnitude. These can be also communicated to sponsors and set expectations. Further, these upfront estimations help in forecasting the budget and the timeline, and setting baselines for later references. They can be integrated in the overall strategy or tactics of a company to meet specific objectives and targets.
Documentation and Tools: User stories and epics are consolidated in backlogs. Rarely, the workflows are defined in a visual format to comprise the entire processes. But RUP can provide the necessary support to design the flow diagrams, blueprints and a lot other visual documentation. Specifically, the dependencies between Scrum roles and artifacts can be easily managed with a modeler tool. This is a visual approach used to modify and manage the core model. So, the process engineer can make modifications to the framework based on Scrum concepts. With another tool, the process engineers describe the modified Scrum workflows, which helps project team members better understand the Scrum process. To share process changes within the organization, the process engineer releases the process in an application that centralized all this information. This tool ties together the process, artifacts, and descriptions and creates a navigable web site. This model visually is a strength in communicating information across project team as effective and accurate as possible.
Change control management and risk control: Changes in Scrum are treated iteratively. The most common case is that a new feature (sometimes critical, sometimes ‘nice-to-have’) is requested, graded as very important and suddenly planned for the next iteration postponing some features already scheduled. The overall solution may be critically impacted and there is no visibility how the final architecture will look like. The RUP approach requests a detailed requirement analysis and grading the importance of the new feature thus leading the customer to create a prioritization list for all features. With help of a RUP tool, the necessary discipline can be brought in managing requirements, change control and project management. Further, the risk of high impacts on scope, schedule and budget is mitigated. Project implementation becomes more predictable with less variance comparing with the project initiation outcome.
Focus on quality: With Scrum the quality of the delivered features is checked at the end of each iteration. However, due to time pressure, some bugs may be added to bug backlog and resolved in a later sprint, not in the cycle where they were developed. Nevertheless, in larger organizations, where quality control is considered from different perspectives and integrated quality control programs are in place, Scrum would benefit from RUP’s Quality Assurance Plan, which is coordinated by the project manager and is an important component of the iterative success. The QA Plan contains pro-active measures like review and audit plans coordinated together by the customer and the developer concerning aspects like the required artifacts (business requirements and modeling, architecture, design), responsibilities in the project dynamic, how to conduct meeting reviews or acceptance criteria.
Scrum is a very flexible approach to respond quickly to customer’s requests, to market demands and to bring live a viable solution. However, RUP can bring herein some structure and higher predictability over the implementation duration that provides a more comprehensive experience for the stakeholders in managing a software development project.
About the Author
Adriana Martin is an experienced IT&Business professional. She is active and interested in project management area focusing on an optimized approach based on both waterfall and agile frameworks. She has worked in management, consulting, banking, telecom, public sector and web development industries. See her profile on LinkedIn: http://www.linkedin.com/in/adrianamartin