The Answer is Java/At CMM Level 4.
By Mark MarchukovThe two panel sessions today were dedicated to the discussion of possible platforms for software execution and the advantages of maintaining a high CMM level. From the title of the first panel, chaired by Richard Selby, I expected the discussion to revolve around the issues of databases, operating systems and browsers as execution platforms. However I soon discovered that the Java platform was the one most interesting to the audience and panelists. "A guy from the trenches" Paul Dorsey from Dulcan, Inc., opened the series of short presentations by surveying "the state of the world" of client-server and web-based computing models. He then described his "Holy Grail" model of computing as "code that runs everywhere" and Web-servers that can use dynamically linked libraries residing on clients. His vision was supported with great enthusiasm by Jeff Anders, from JavaSoft who described just such a platform in his talk (you guess what its name is.)
Larry Bernstein (Bell Labs), a computing technology "visionary" and veteran manager presented his opinions on the evolution of client-server architectures. According to Bernstein, the forthcoming step in this evolution is merging of clients and servers into a ubiquitous (or transparent) computing environment where the end-user need not be aware of whether his/her applications runs on a desktop or on a server in another continent. Bernstein also gave quite incredible factors of development productivity improvement that OO practitioners already enjoy (three-to-one) and that we should expect from the dynamic nature of Java (three-to-one) and reusable components (four-to-one). According to Bernstein, we have to be ready for a 3*3*4=36 time development productivity improvement. At the same time we may expect MVS mainframes to stay with us as a perfect platform for large database servers Randy Davis (MIT), an expert in copyright law and intellectual property gave the discussion a new spin by pointing out that the advent of World-Wide Web greatly simplified illegal distribution of software. It also reduced the leadtime in software and web-site industry. As a solution he proposed applying liability rules instead of property rules to software.
As for the future of execution platforms, the panelists came to a conclusion that although Web browsers may easily merge with operating systems, and object-oriented databases may become the dominating kind, the next five years will not change the world of computing as we know it now. Also, the panelists seemed to agree that Java will be the predominant platform for (at least) distributed computing. Java is a viable answer to the question of what kind of platform will dominate in the future.
The participants of the second panel, "Advantages of Maintaining a High CMM Level" chaired by Marie Silverthorn, all shared the basic premise that the SEI Capability Maturity Model is correct and useful. Indeed many of the panelists had empirical data at hand to support their point. Among the advantages of CMM Jeff Perdue (ISPI, USA) mentioned improved customer relationships, using metrics to stay informed and plan, improvements in culture and attitudes of developers, and quality improvements as a by-product of all that. Kelly Butler (Tinker AFB, USA) and Mike Diaz (Motorola GED, USA) both represented CMM Level 4 development organizations. They talked about the histories of improving process in their organizations and the impact it had on development productivity and cost. They stated that their productivity went up and their cost (as you might guess), went down. Both Butler and Diaz mentioned, however that their process is fined tuned to their particular organization and will not work for everyone. Alan Woody from Texas Instruments also reported an impressing ten time reduction in total cost of rework for a level five development group with respect to a level three group in his organization. He said that he was originally skeptical of CMM but found out that continuous improvement allows fine-tuning for the projects and helps eliminate non-value added work. Bill Curtis (TeraQuest, USA) stated that in order to meet any small fixed quality standard on every project an organization must have at least level four maturity. This applies not only to a large project in safety-critical areas like avionics software, but also to small projects that must be defect-free. As an example Curtis mentioned the overhaul of a million- line system in Bellcore done by a highly qualified group using well-established process in 9 hours.
The question of Microsoft disregarding CMM altogether was inevitable. Curtis gave an answer characterizing Microsoft as, in fact, at least a level three company according to his observations of its process practices.
The common conclusion was that to have a predictable defect rate, a development organization must be at the process maturity level equivalent to at least level four of CMM and this applies not only to avionics software producers or government contractors, but to all software vendors.