Software process improvement: a successful journey

Background:

For many organizations like ours, the intermediate goal of achieving ISO 9001 or CMM levels is a daunting task. Discipline is not fun: Organizations readily recognize that striving to approach projects according to ISO 9001 or CMM guidelines requires the creation of new procedures. It is vital to the success of improvement efforts to realize that process change implies cultural change and its human nature to resist change. Numerous social and technical barriers must be overcome to achieve lasting improvement.

My organization targeted ISO 9001 certification and then CMM level 2 and level 3 assessment about a year and a half ago and I knew it would be thoroughly scrutinized by ISO auditors and CMM assessors. For software process improvement, we first need to know its strengths and weaknesses so that management can assess the improvement effort. Only with this knowledge can we customize an infrastructure for process improvement. We have had success with the plans adapted according to the CMM model of the Software Engineering Institute. This includes the formation of the Software Process Engineering Group, which knows its functions, responsibilities, statutes and action plans, helping it to develop a statute and vision and to establish a clear coincidence with the goals and objectives of the organization. . They will be much more effective if they receive the proper formal and informal training. A fundamental decision was “not to reinvent the wheel”, but to seriously consider the best practices of the industry.

We later saw that process improvement always pays dividends for those who have the discipline to get it right.

Process Improvement Project

The Strategic Plan

A clear vision is essential to the success of the process improvement project. In our case, top management had the view that Process is Product and was committed to sponsoring and supporting improvement efforts. We were responsible for mobilizing people and resources to try to make this happen, but process improvement was a new endeavor for my group and everyone wasn’t sure how to get started and get organized. My organization opted for strategic planning using Total Quality Management’s Plan-Do-. Check-Act cycle.

We developed a vision to use the best practices of software development teams and eleven best practices were identified:

* Develop iteratively (incremental development life cycle)
* Use component-based architecture
* Visually model the product using the Unified Modeling Language (UML)
* Formal Risk Management
* Interface Agreement
* Formal Inspections
* Programming and management based on metrics
* Visibility of the entire Progress Vs Plan program
* Defect tracking against quality targets
* Configuration management
* Responsibility of conscientious management of people

In the planning model we try to analyze current projects while maintaining the ISO/CMM vision through rigorous reviews. Next, we carried out an organizational Gap Analysis between its current state and the vision we were seeking. The ISO 9001 status feedback itself became the catalyst for developing tactical plans by providing team leaders with the necessary control mechanism for project tracking and oversight.

Our organization tried to treat software process improvement as a development project too! Senior management sponsored the hiring of a corresponding project team (software quality assurance team or the software process engineering group), selected a project leader, and established a repository to store process documentation and other project artifacts. process. We follow the plan as: Start by discovering and understanding the current practice in the whole group. Find existing process documentation and talk to professionals to understand how tasks are performed. Reconcile any differences between the actual and proposed processes. Document and review the newly characterized process. Then iteratively and incrementally improve the process and make sure the documentation is updated appropriately. Project planning, software configuration management and software quality assurance, project tracking, and use of software tools were the key areas our organization focused on most for process improvement. We tried to customize the Rational Unified Process for our work environment and automated tools were also taken into the process.

We also made sure that the visibility of the project to senior management and the rest of the organization was comparable to other major projects.

Culture and Resistance

Process improvement affects more than the processes used by professionals to do their jobs. Process change means culture change, fraught with all the difficulties inherent in changing the perceptions, values, and normative behaviors of a community. Some of the forces that hinder such improvement efforts are:

o Resistance to change (often due to a perceived threat of losing power, control, familiarity, or social status)

o Existing tolerance and readiness for change present within the current organizational climate

o Process change imposes a learning curve, which often makes things seem worse before they get better.

o Improvement efforts consume time and resources, which many would rather spend on their particular development projects.

In my organization we try to solve the above problem by bringing our improvements from the Local Heroes themselves (Involve everyone!). These people should be “stars of the family”: respected members of the organization with proven track records as developers or managers. Emphasize the importance of the “local hero” being part of the Software Process Engineering Group and try to wait for the “real” one if you can manage it (this is another one of those times when support from middle and top management can be necessary). necessary). We document our local technical procedures by electing local SE champions/heroes to write that procedure using SEI-CMM key practices. The Software Quality Assurance team was the guidance and support center for all process improvement activities. The SQA was the main body authorized to carry out and organize the improvement efforts in the organization. The entire professional community was regularly informed of the status of the improvement efforts. It is also desirable to solicit input and feedback on process improvement issues from the professional community. We chose a pilot project so that we can discuss and test how software process improvement really helps in the current scenario.

Benefits of process improvement

The clearest textbook definition of return on investment (ROI) is, as described by Lawrence Putnam, “Investing to improve [productivity] implies giving up the use of those funds for other purposes. Over time, recouping the future stream of profit from operations pays back the invested capital.” ROI may not always be in dollars. Quality and schedule issues as return are almost as important to participants as are quality issues. costs.Our set of measures covered the following eight categories of metrics: effort, process, productivity, progress, quality, schedule, stability, and staffing.We asked our research participants to indicate which metrics from our set they kept and added to We listed any additional metrics they used. We also asked for the early and late phase of the software lifecycle during which each metric was maintained. When we analyzed the participants’ measurement data across maturity levels against the eight metric categories, each maturity level showed, on average, a consistent growth pattern.he also tried to relate the immeasurable benefits we experienced from your process improvement program. ipants worried about changes in attitude. Developer morale and confidence improved significantly, and software development experienced increased attention and respect from organizations outside of the software organization. Participants also attributed less overtime, less employee turnover, increased competitive advantage, and increased cooperation between functional groups as benefits that resulted from process improvement initiatives.

conclusion

Software process improvement is crucial when any organization tries to take on and deliver larger projects. The lack of well-defined software processes can be very costly. The support of all staff, especially top management, is a prerequisite for any serious SPI initiative. As a great philosopher once said: “It won’t happen overnight, but it will happen.”
Many improvement efforts fail or fail during the initial phases of process improvement. My organization quickly achieved ISO 9001/CMM because it worked hard to apply the lessons learned by others. But this cannot be the end for process improvement in any organization, our process improvement journey will always continue.

References

1. Carnegie Mellon University/Software Engineering Institute, The Capability Maturity Model: Guidelines for Improving the Software Process, Addison-Wesley, Reading, Mass., 1995.

2. Roger S. Pressman, Software Engineering: A Practitioner’s Approach, 4th ed., McGraw-Hill, 1996

3. Watts Humphrey, Software Process Management, Addison-Wesley, 1989

Leave a Reply

Your email address will not be published. Required fields are marked *

Back To Top