How do you achieve the mind shift from a "waterfall" way of doing things to thinking iteratively? When this is done within the context of a CMMI ML3 process improvement initiative, the complexity increases a couple of levels and requires a careful and well thought-out strategy. This paper discusses some of the nuances of planning and executing such an initiative.
Iterative lifecycle models come in various sizes and shapes. One of the most well known and industry proven methodologies is the Rational Unified Process a.k.a RUP. There are many good reasons why an organization might decide to ‘go iterative’ but that is the not the main subject of this paper. We will focus mainly on the implementation and institutionalization aspects of rolling out RUP.
First and foremost, you need to be absolutely clear about the real goals & objectives behind deploying the Rational Unified Process in the organization. Some of these might include
- Adopt an industry proven software development methodology that lets your organization benchmark IT software development processes against those of best-in-class organizations.
- Leverage the efficiencies to be gained in terms of competency and skills management of existing and new employees and the benefits of working with mature service providers who might already have adopted the iterative methodology.
- Support the application development teams by providing a credible alternative to the waterfall lifecycle model thus moving away from the "one size fits all" approach.
The above reasons and the anticipated benefits would therefore comprise your business case and help you put together a project charter. Remember, achieving this mind-shift in an organization that is used to a conventional approach requires sustained effort and a clever strategy for stakeholder involvement and management. Often, a small project is set up for this purpose that looks after all aspects of the roll-out, not limited to process engineering, stakeholder involvement, deployment planning, coaching and migration support.
Now, the obvious question is: If RUP is an out-of-the-box process framework from IBM, what kind of effort would be required before it is ready for your organization. This is often a tricky subject because the level and extent of customization required is often based on what already exists in the organization in terms of process infrastructure, in-house expertise in iterative concepts, ongoing process improvement initiatives such as CMMI, regulatory and other organization specific requirements that have to be adhered to and the general readiness/resistance towards such a change. For e.g. in a green-field kind of scenario where no standard models exist, the Classic RUP (for small, medium or large projects) could be applied as-is and incrementally enhanced and customized to the requirements of the organization. On the other hand if CMMI model compliance is required, then the Classic RUP will need to be enhanced a bit so that it is fully compliant to all the model requirements, especially in areas such as Integrated Project Management, DAR and Acquisition process areas. In most cases, the process would also need to be tailored to other organization specifics such as quality gates, policies, re-usability across lifecycles, management reporting and other standard operating procedures in an organization.
Consequently, the deployment approach also plays a significant part in overall success of the program. Issues such as a pilot approach vs. a big-bang deployment need to be addressed. If the organization is not used to the iterative concepts, then a big-bang deployment of the standard Rational Unified Process could be overwhelming and often counter productive. In such cases, deploying a tailored lean process using a pilot approach would be more beneficial. Often it might also be wise to pilot the most important disciplines first before trying to deploy the complete configuration. While in pilot mode and before becoming generally available, there are several important things to get right.
Coaching and training of the practitioner community is arguably the most important part of this phase. One of the ways to support pilot projects using RUP would be to assign RUP coaches to hand-hold and