The Software Engineering Institute's Capability Maturity Model (CMM) has been widely adopted by companies seeking enhanced quality and heightened productivity in software development. This unique book offers step-by-step instruction on how to put the CMM into practice, and on how to conduct software process improvement within your own organization. Drawing on her first-hand experience leading process improvement groups in a large corporation, the author provides sound advice on how to get started, points out the problems that are likely to be encountered, and offers workable solutions that have proven effective in CMM implementation.
"synopsis" may belong to another edition of this title.
Industry and Community
The software industry has experienced tremendous and unprecedented growth over the past 40years, and our global and economic infrastructures are becoming more and more dependent on software. The software industry has been one of the fastest growing industries ever to exist. Along with it, a supporting industry has developed and grown into a strong international community: the community of SEPGs. What Is an SEPG?
A Software Engineering Process Group (SEPG) is a team of software professionals with responsibility for driving and facilitating software process improvement efforts within a software organization.
This book was written by an SEPG member for SEPG members, with the intention of capturing the knowledge, tools, and techniques that we have found to be critical to our work. In this book, I have captured the things I wish somebody had told me when I first started in the SEPG business. Goals of This Book
This book provides many thought-provoking ideas that are intended to help you be more effective in your software process improvement efforts. This book takes Humphrey's Managing the Software Process, Fowler and Rifkin's Software Engineering Process Group Guide, and Software Engineering Institute's Capability Maturity Model® to a higher level of abstraction, a deeper level of understanding, and a broader level of application to build a foundation for a disciplined approach to software process improvement.
The goals of this book are as follows: To help SEPGs understand the image of successful improvement as represented by the guidelines in the Capability Maturity Model® for Software (CMM®) and explain concepts in insightful ways that will help you to make sense of what to do. To help SEPGs work as partners with their customers (the people in the software organizations: the managers and project teams). To help SEPGs understand how to drive and facilitate process improvement efforts to implement processes that their organizations are willing to accept and follow. To provide tools and techniques for SEPGs to use for driving and facilitating process improvements that lead to successful implementation efforts. To provide encouragement for starting and continuously optimizing software process improvement efforts.
Learning from Experience
At Unisys Corporation, when our first SEPG was formed there was not much guidance on how to do the work of an SEPG. There was a lot of information out there, but it took us two to three years to read it and translate it to our own situation. We had information about what to do, but it was difficult to derive the practical methods for how to make organization-wide software process improvements. We had to learn the hard way--from experience.
Who should read this book? If you are currently part of an SEPG you can benefit from these ideas, which encourage working toward continuous optimization. You can benefit from seeing the relationship between your experience and ours, recognizing a repeatable pattern, and focusing your improvement efforts to save time and effort. I expect this book to help existing SEPGs to be more effective and possibly more creative. If you are just starting an SEPG you probably don't have the luxury of a two- or three-year start-up phase. You can't afford to learn the hard way, but you can learn from the experience of others. You can benefit from our experience to save time and effort. By packaging this information and integrating it with practical experience, I expect this book to help new SEPGs to start their efforts and gain momentum. If your organization does not have an SEPG and has no plans to staff one but you are willing to champion improvement efforts, you might find these tools helpful. By starting a few small efforts and making progress, you will gain some short-term benefits, and you will begin to build an awareness of the focus that is involved in organization-wide software process improvement efforts. I expect this book to help process improvement champions to make the improvements that they can make on their own, but there may be global improvements that they cannot make on their own. If the champions want to convince senior management of the need for an SEPG and want to explain what the SEPG members would do for the organization, this book will be helpful. A Choreographic Perspective
As I considered the source of inspiration for my work in software process improvement, I found a most unlikely source in my early life experience with dance and choreography. The analogy comes alive in this book. Dance is like producing software. Dancers perform the steps of the dance; software programmers perform the steps of the software process. Learning a dance could involve things such as reading the notation and interpreting the steps, or it could involve watching someone who has performed the steps before, trying to do the steps, trying the steps with the music, and making changes when something isn't working. Improving a process involves similar activities. As professionals, programmers are gifted and talented individuals, brilliant in their own right, who can collaborate to give a performance that does not diminish any individual performance. At least, this is our hope; sometimes the chemistry is wonderful, and sometimes it isn't.
Choreography involves movement ofthe body, guiding one or more dancers through certain steps and through changing rhythms while maintaining balanceto create a peak performance for their audience. Software process improvement involves the movement of an organization, guiding one or more individuals through certain activities and through changing conditions while maintaining balance to create a peak performance for their customers.
In both cases there is a need to understand how to move people's energy to continuously strive for excellence. Just as art is not done simply for the sake of art itself, but for the sake of enlightenment, entertainment, and encouragement of the audience, so software process improvement is not done simply for the sake of software process improvement itself, but for the sake of the customers whose lives are becoming increasingly dependent on software. We must learn to improve and create excellence for their sake.
How to Use This Book
Because this book is based on both theoretical models and practical experience, as you use the models you will encounter many of the same experiences described here. Some things may not apply to you right now, but they may apply to you later. How to Use the Files on the CD-ROM
The CD-ROM contains templates, samples, and presentation materials that you can use to get started more quickly. However, please note that these materials are not intended for you to use directly but rather are intended for you to adapt to fit your organization. These tools will reduce your start-up time, but you must add your own finishing touches if you hope to succeed.
I am not suggesting that these materials are "silver bullets" or perfect templates. They fit the situation at the time they were used. If your situation is different, the materials won't fit as well. And your situation is sure to be different: a different day with different people (and remember that even the same people might be different on a differentday).
These materials might be helpful to people who find it easier to start with something and make changes rather than start with nothing and create their own materials from scratch. There is a phenomenon called IKIWISI, an acronymn for "I'll know it when I see it." We often can't describe what we want, but we will know what we want when we see it. We will also know what we don't want when we see it. Both reactions provide valuable information for producing successful results. These templates give you something to look at so that you can consider what you want and what you don't want. Then you can create exactly what you need. 0201379384P04062001
"While the CMM focus on goals and generality makes it widely applicable, this leaves the application problems largely in the hands of the users. Kim Caputo's book provides a pragmatic guideline for how to address the CMM in an organizational context. The many examples and frequent war stories make for enjoyable reading and provide practical insight into the problems and challenges ahead." -Watts S. Humphrey
The Software Engineering Institute's Capability Maturity Model (CMM) has been widely adopted by companies seeking enhanced quality and heightened productivity in software development. The CMM enables managers to measure their organization's capabilities against a recognized standard and to determine their relative level of software process maturity.
This unique book offers step-by-step instruction on how to put the CMM into practice and how to conduct software process improvement within your own organization. Drawing on her first-hand experience leading process improvement groups in a large corporation, the author provides sound advice on how to get started, points out the problems that are likely to be encountered, and offers workable solutions that have been proven effective in CMM implementation. This book is precisely the guide she would have welcomed when first performing this critical task.
"About this title" may belong to another edition of this title.