| ||||||||||||||
About PS&J > A Perspective on Software Process Improvement
A Perspective on Software Process Improvement To be effective, improvements must result in near-term benefits in productivity and cycle time. This doesn’t mean that we are not interested in improvements that yield long term benefits, only that we think that all viable improvements have a short term benefit in addition to a long term one. The reason is simple: effective continuous improvement requires sustained management sponsorship. Sustained sponsorship is impossible without a near-term, quantifiable, return on investment. There is so much change in today’s business environment that a long-term return may simply not materialize due to changed circumstances. Moreover, given the frequent re-organizations that are common in most businesses, it is unrealistic to assume the continuity of management sponsorship necessary to make a long-term improvement. We prefer to test any improvement opportunity against a few simple criteria:
Our experience is that most organizations have no shortage of opportunities that meet these criteria. Continuous improvement requires a well-defined, stable software development process, in which the staff has been trained, and which they are willing to use. Improvement is impossible without stability, and stability requires consistency. Consistency is very unlikely without training. Training is of no value if it is not put into practice. This means that training courses are not about transferring information as quickly as possible, they are about motivating behavior. An effective training course has to give the participants enough positive experience with the new practices to motivate using them in their everyday work when the course is over. A course needs to convince the participants to adopt the new practice and give them the hands-on skills to perform it effectively. Follow-up mentoring needs to be provided to answer all the “real world” questions that can’t be addressed in a class until the transition to the new practice is complete. Good processes are “lightweight” and they focus on what developers actually do at their desks. Processes that don’t have a significant impact on daily activities are most likely a source of needless overhead. Process documentation should be short and simple with clear quantitative entry and exit criteria. Processes should incorporate feedback to “close the loop” and build in continuous improvement. Projects need formal plans and need to have performance managed to planned targets, but project plans also need to be “agile”, incorporating an evolutionary approach that builds in opportunities to learn from mistakes and continually adjust the plan. Planning horizons should be kept short, at most a few months, since the environment will continually change. It should always be easy to re-plan in the face of changing circumstance. It takes measurements to quantify the effectiveness of a new or existing practice. Moreover, once a practice is in place, its effectiveness will decline without active management. Rational management requires fact-based decisions based on measurements. This means that an automated measurement framework, with some simple analysis capability for decision support, is one of the first orders of business when embracing continuous improvement for software. Data collection needs to be simple and fast. The costs of collection must be generally perceived as negligible. The data must be used directly by the people collecting it to improve their own practices, or it won’t be collected very long. Finally, improvements cannot ignore the human side of the equation. There needs to be an atmosphere of trust and a sense of teamwork between management and the development staff. Everyone needs to have a conviction that improving productivity, cycle time, and product quality will grow the business and result in improved career opportunities for all. We believe Six Sigma’s model for continuous improvement offers the best overall frame work for successful software process improvement and Six Sigma thinking permeates our approach to process improvement at every level. That doesn’t mean we think Six Sigma is the only way to go about software process improvement. On the contrary, we have also had outstanding results with model based improvement like the CMM, provided we kept the focus on achieving measurable business results rather than achieving levels, and provided we introduced a simple metrics framework up front. Any of the published processes, like TSP and Extreme Programming can provide a fine foundation for continuous improvement provided they are integrated with a simple metrics framework and the developers use measurements to actively manage and improve process performance.
|
|
Contact PS&J Software Six Sigma at: Phone: 201-947-0150; 201-358-8828 E-mail: Quality@SoftwareSixSigma.com Copyright © 2001-2006 PS&J Software Six Sigma, All rights reserved. Revised: September 28, 2007 . PSPSM, TSPSM and CMMISM are service marks of Carnegie Mellon University. CMM® and IDEAL® are registered in the U.S. Patent and Trademark Office. PMBOK® and PMP® are registered trademarks of the Project Management Institute. |