L arge and complex computer-based systems are critical to the economic and military welfare of the United States and to much of the industrialized world. These systems form the backbone of modern military, business, and governmental operations, and without their continued support, our societies would be severely inconvenienced and even threatened. Unfortunately, the development of such systems has been troubled, and the systems needed for the future will be vastly more complex and challenging. If history is any guide, attempting to develop these future systems with current widely followed practices will almost certainly yield unsatisfactory results. In addressing the challenges of the future, it is important to consider three points. First, with few exceptions, the reasons that large-scale development programs have failed have not been technical [1, 2]. As the cancellation of two large and critical efforts demonstrates, these systems have almost always failed because of program-management problems [3, 4]. Second, the solutions to these program-management problems are known and have proven to be highly effective, but they are not widely practiced. Third, if these known and understood project management practices are not promptly and effectively adopted, future large-scale systems development programs will be completely unmanageable. Such systems will no longer be delivered late, over cost, and with poor quality; they will likely not be delivered at all. Proper use of sound processes would actually improve the cost, quality, and schedule performance of engineering organizations. This article outlines the authors' current thinking on the likely future direction of process-improvement work and our strategy for addressing the challenges ahead. To explain the objectives of this article, however, it is necessary to revisit the original logic for the Capability Maturity Model ® (CMM ®) and Capability Maturity Model ® Integration (CMMI) ® work [5, 6, 7]. The original framework used by Software Engineering Institute's (SEI) Software Engineering Process Management (SEPM) Program to characterize its process-improvement mission can be explained in terms of what, how, and why perspectives as shown in Figure 1. The why in this figure describes the need to respond to customer, acquirer, user, or management demands for better software engineering practices and results. The what and how define SEPM's approach for addressing these needs. Here, a specific why question might be the following: Why would I need to improve my process? The answer might be the following: Because, by following your current process, your organization consistently misses most commitments …
[1]
W. Edwards Deming,et al.
Out of the Crisis
,
1982
.
[2]
Henry Petroski,et al.
To Engineer Is Human: The Role of Failure in Successful Design
,
1986
.
[3]
E. Ziegel.
Juran's Quality Control Handbook
,
1988
.
[4]
Watts S. Humphrey,et al.
Managing the software process
,
1989,
The SEI series in software engineering.
[5]
Peter G. Neumann,et al.
Computer-related risks
,
1994
.
[6]
S. B. Kiselev,et al.
The capability maturity model: guidelines for improving the software process
,
1995
.
[7]
Watts S. Humphrey.
Winning with Software: An Executive Strategy
,
2001
.
[8]
Naval Air Systems Command,et al.
The AV-8B Team Learns Synergy of EVM and TSP Accelerates Software Process Improvement
,
2004
.
[9]
James McHale,et al.
Mapping TSP to CMMI
,
2005
.
[10]
Diane L. Gibson,et al.
Performance Results of CMMI ® -Based Process Improvement
,
2006
.