Software Engineering Practices in the US and Japan

The term software engineering first appeared in the late 1960's to describe ways to develop, manage, and maintain software so that resulting products are reliable, correct, efficient, and flexible. I The 15 years of software engineering study by the computer science community has created a need to assess the impact that numerous advances have had on actual software production. To address this need, IBM asked the University of Maryland to conduct a survey of different program development environments in industry to determine the state of the art in software development and to ascertain which software engineering techniques are most effective. Unlike other surveys, such as the recent one on Japanese technology, 2 we were less interested in recent research topics. Journals, such as the IEEE Transactions on Software Engineering adequately report such developments; we were more interested in discovering which methods and tools are actually being used by industry today. 3 This report contains the results of that survey. The goal of this project, which began in spring 1981 and continued through summer 1983, was to sample about 20 organizations, including IBM, and study their development practices. We contacted major hardware vendors in the US, and most agreed to participate. Several other software companies and other "high-technology" companies were contacted and agreed to participate. While we acknowledge that this survey was not all inclusive, we did study each company in depth, and based on discussions with others in the field, we believe that what we found was typical. We were not interested in R&D activities in these companies. Most had individuals engaged in interesting developments, and most knew what was current in the field. Our primary concern was what the average programmers in these companies did to develop software projects. Data was collected in a two-step process. A detailed survey form was sent to each participating company. When the form was returned, a follow-up visit was made to clarify the answers given. We believe that this process, although limiting the number of places surveyed, allowed us to present more accurate information than if we had relied on the returned forms alone. Each survey form contained two parts. Section one asked for general comments on software development for the organization as a whole. The information typically represented the standards andpractices document for the organization. In addition, several recently completed projects within each company were studied. Each project leader completed the second section of the survey form, which described the tools and techniques used on that project. Several companies were concerned that the projects we were looking at were not typical of them. (Interestingly, very few companies claimed to be doing typical software.) However, since the companies selected the projects they described on the form, we believe we saw the better developed projects-if there is any bias to our report, it is that the average industry project is probably worse than what we describe here. Thirty organizations in both the US and Japan participated in the study: five IBM divisions, 12 other US companies, and 13 Japanese companies. About half the Japanese companies were not interviewed, while the other half were interviewed to varying degrees of detail. All US companies were interviewed. The "Acknowledgments" section at the end of this article lists the US participants. Some of the Japanese participants never responded to our request for permission to use their names, so only a few Japanese companies are listed. Table I characterizes the companies visited, divisions within a company, and the projects studied, arbitrarily