i :Mliliffi^': HD28 0CT2O1S87 .M414 ALFRED P. WORKING PAPER SLOAN SCHOOL OF MANAGEMENT A U.S. "SOFTWARE FACTORY" EXPERIMENT SYSTEM DEVELOPMENT CORPORATION Michael A. Cusumano David E. Finnell Sloan School of Management M.I.T. May 1987 SP #1887-87 MASSACHUSETTS INSTITUTE OF TECHNOLOGY 50 MEMORIAL DRIVE CAMBRIDGE, MASSACHUSETTS 02139 A U.S. "SOFTWARE FACTORY" EXPERIMENT: SYSTEM DEVELOPMENT CORPORATION Michael A. Cusumano David E. Finnell Sloan School of Management M.I.T. May 1987 SP #1887-87 M.l.T. LIBRARIES OCT 2 1987 RECEIVED Michael A. Cusumano and David E. MIT Sloan School of Management 5/31/87 Software Project Paper #2 Finnell Working Paper #1887-87 A U.S. "SOFTWARE FACTORY" EXPERIWENT: SYSTEM DEVELOPMENT CORPORATION Introduction SDC and the "Software Factory" Experiment Components: Policies and Technologies Factory II. Factory's Performance Problems and the Initial III. Factory Created New Problems the IV. Factory Fate of the SDC Software V. VI. Subsequent U.S. Developments Conclusions Appendix Tables I. INTRODUCTION This paper or not such is companies part of a larger study examining the question of whether large-scale as choosing are to a development software and organizational consideration? manage as well as complex engineering with range of a technological corresponds to the spectrum usually associated with i.e. of job shops, flexibility includes batch organizations, in product mixes proposal the factory environment for facllties in tha U.S. of approaches that "hard" manufacturing, The research and technologies. and policy software might look to strategic and factories exhibiting various degrees technology and Japan activity like; criteria a defining project what a survey of 38 software determine where firms stand in relation to these criteria; and detailed case studies examining the technology and policy Implementation factory model process * . followed at firms identified as being close to the There are several interrelated conclusions: "factory" approaches, software facilities inherent the U.S. in software in observable is as a in (1) statistically a and Japan. (2) technology that This spectrum, including significant sample of 38 There appears prevents be nothing to some managing the development process more effectively than others. approach development But, (4) developing to not is by Hitachi and Fujitsu relatively lesser extent, and flexible -- firms. by the NEC group and Toshiba, and followed general-use techniques quality-control firms led are significantly ahead of most U.S. -- disciplined a management concepts, U.S. -- software aid to The (3) Japanese and U.S. significantly different between Japanese firms applying infrastructure technological a from firms to "factory" tools, approach standardized software large-scale competitors -- production- procdures, effective Other development. close to the flexible factory model are in TRW and, to a Sperry and System Development Corporation (SDC), now both part of Unisys. This particular paper Rand Corporation and then U.S. "software factory" case, for a on System Development Corporation, formerly is Burroughs subsidiary that attempted the a experiment One two main reasons: larger attempt and early 1970s, in to the U.S. is in mid-197ns. the that SDC's reflect on improve the performance development of the operating well as is an Software Factory and other countries, beginning in first important is part of the late 1960s various programming experiences and suggest how an organization might bring together new to It a of software tools, methods, and procedures engineers. system for the 360 family numerous other government and Analyses of private-industry of IBM's mainframes, projects, as were particularly contributors important Two software engineering. 1975 and 1977 were in a body SDC Software reports on the on literature of Factory published part of this literature and presented the first well- publicized attempt to think model software for emerging an to of a through Second, development. than rather factory, laboratory, a as SDC publications, its a influenced the strategies and practices of several Japanese firms that have promoted, more aggressively or explicitly highly implicitly, disciplined approaches to software engineering; these firms include Hitachi, Toshiba, and NEC. The and ideas practices that came out of the SDC experiment provided the basic model for the criteria used to define in The survey the survey described above. did not consider their factory facilities, behind only TRW facilities software factory reveals that, while experiment Unisys/SDC ranked 11th among 38 a to have been also a SDC managers success, total responding, and 3rd among U.S. and Unisys/Sperry (see Appendix tables). Thus, the company has been more successful or determined than most other U.S. firms in "rationalizing" This paper background to of the the Software infrastructure, technological System. software-development process. organized as follows: is company and areas its Software Factory, embodied in infrastructure, Section The which SDC's first two sections discuss the experiment and Factory of business. The SDC's evolution as a third section analyzes the components can be broken down into a Software Dev elopment Manual , policy and a which took the form of SDC's Factory Support IV compares the performance of the Factory in operation with the five major problems with project management and Factory the arrived created, responsibilities conflicting at: maintain the control, relating to solve; an insufficient among managers, factory and reusability of discusses two problem areas section to these were concerned availability, tool The next program components (code). that was designed it procedures and the and some "work final flow" and solution SDC the of but tools, decentralize the factory workers. The main conclusions succeed as technological because expected and this of policy study are SDC attempted on infrastructure experiment did the that impose to a not sophisticated mananagers and engineers both without adequate analysis or anticipation of the work flow and the reactions of its from personnel, the especially survey and in On the other hand, data middle management. comparisons with other suggest that the factory model for software is especially firms, not inherently in Japan, impossible to implement. I. SDC AND THE "SOFTWARE FACTORY " EXPERIMENT The Company System Development Corporation (SDC), Corporation and then Burroughs and now Unisys, first under has served as the a Rand strategic business unit primary responsible for doing software development and systems engineering for the United States Government. U.S. and approximately 6,000 employees in 1987, With it was facilities a across the major U.S. provider " of hardware, software, command, management; airspace and workstations; Engineering and control According networks.*^ Systems Group, SDC's in and system integration for applications focusing on the to Ronald custom systems; intelligence Director SDC Atchley, Software of applications software programs are "usually real-time systems [for] command and control... on various pieces of equipment -- DEC, Gould, Much mainframes, Amdahl, Univac 1100." -- Department of Defense have built and we would scale systems Burroughs, IBM PC's, minis, work has been of this for the U.S. "any large scale system that they would like to build for them. . . They're . all to like primarily large where we can leverage our software development skills to get in the the bigger jobs. SDC early has been a key defense contractor ever since the launching SAGE (Semi-Automatic Ground Environment) 1950s of the system program, the to SAGE "was Atchley, contract to became "the very as first the which System in system ever built spun turn Development [by defense According built. The Air Force gave the the beginning of SDC." Rand Corporation, Development Group system ever first large scale real-time air off Corporation. SDC]; it their System SAGE thus was the air first defense system ever built, the first large scale computer system built, and was the other first stuff," company's system with consoles, and light pens and displays and recalled work requirements transponder and data fault tolerant Other Atchley.^ link and for the computer system for recent resources: a SDC new jobs air all this illustrate the traffic Federal Aviation Administration this application in a joint it control (FAA); a venture with Westinghouse; an automated search system for the U.S. Patent and Trademark Office; a Medicaid Management Information System for Massachusetts; Emergency Command and Control System (ECCS) for the Los and an Angeles Police Department. The Experiment Initially, it seems and unchanged even Houston of division factory idea emerged out structure for major development projects, organizational the the that in thought facility) of Managers 1987. labor and it led SDC's of instituted for SAGE by Jack Munson (now manager of was possible work flowing through to incorporate factory notions lines in a centralized facility, as Atchley recalled: We implemented it with the idea that we would have three separate groups of people. We would have the requirements analysts, designers, or what now is possibly called system engineering. We would have the program production, which is now software engineering. And we would have the test and evaluation. Those three would be disciplines whereby the work would be done, and the work would flow through the factory. ... In the SAGE environment we had a group called Requirements Design Branch, and they did the specification. We had the Programming Development Branch, and we did the coding and the preliminary testing; and we had the System Test Group in Phoenix which did the final testing. So we just kind of moved that concept into place and made it more formal. The 1975, an first public mention of the experiment seems to have come in May when two SDC managers, Harvey Bratman and Terry Court, published article described Monica, in an IEEE Computer experimental California. , titled facility "The Software with The procedures and about tools 200 This Factory."^ programmers in Santa under development were "not when integrated and consistently applied, the new or revolutionary" but, authors believed they had the potential to radically change the way largescale applications was software explained their project developed. being and Bratman Court highly optimistic terms: in The Software Factory is an integrated set of standards, procedures, and supports a disciplined and repeatable approach to software development [through] the concepts of structured programming, topdown program development, and program production libraries, and incorporates hierarchically structured program modules as the basic unit of production. ... [It] replaces ad hoc conglomerations of developmental techniques and tools with standard engineering techniques. ... In brief, the Software Factory is an excellent vehicle for the configuration control of a system during operational and maintenance stages.^ tools that There seemed lines of little doubt that programs with hundreds code would benefit from better systems to labor and improve, in and experience frustrated the SDC managers and suggested a methodological and development process."' available to deal complained that, founded well To change with body problems in software time situation, large a in its and application."" to In them "the lack knowledge on all production, in the software it with the tools authors system development or, an integrated manner, but are put Bratman and Court advocated support to system programming project emphasized "discipline and repeatability." consistently of "they are either not used at hoc each this and regard to the tools and programming concepts With when they are used, they are not used together ad of engineers But the poor correlation between program productivity other programmers. of thousands of the division of facilitate and other ways, the performance this of a simplify begun." methodology that And they proposed that will is "to apply it and standardize one bold stroke, SDC thus attempted to institutionalize : good in tools and practices software problems managers had encounted to solve the basic development. Bratman and Court placed these into five categories 1) Bratman and Court referred to Lack of Discipline and Repeatability absence of "standardized approaches to the development process. Each time a software system is developed, the process is partially reinvented, with the consequence that we never become very proficient nor are we able to accurately predict the time and at this process, resources required." : the 2) They complained that code production Lack of Development Visibility was often used to indicate progress in completing a software project, but this did not measure "completeness of performance requirements, Not the design itself, or how well the code implements the design." until system testing did it become clear how well a project was progressing; and fixing problems at this stage "is exceedingly expensive and time consuming... Managers have difficulty in tracking the progression of the system from phase to phase, and as a result they have problems in planning and controlling the developing system." 3) The problem here was that Requirements requirements are subjected to interpretation and change as soon as the system design and implementation process begin the translation of requirements to computer programs." Not only was it nearly impossible to completely specify performance requirements before detailed design and coding, but there were often disagreements on the meaning of certain requirements, changes demanded by the customer, and the like. : Changing Performance : "Performance 4) Several tools -- such as highLack of Design and Verification Tools subroutine libraries, and level languages, data-management systems, debugging. debugging tools, facilitated coding and But Bratman and accounted for only Court asserted that these activies about 20% of "There are few widely used tools and techniques development costs. which provide significant support to other components of the development process such as requirement and design specification, verification and validation, project management and control, " documentation etc : , 5) . There were many application areas that Lack of Software Reusability required similar logic, but there was little capability to reuse software components. "Extensive use of off-the-shelf software modules would significantly lessen the risk and shorten the time required for software development. "^ : 8 The problem with the factory strategy was sustained implementation. Due, apparently, to the objections of managers and programmers, as well as to some technical obstacles, SDC was unable David experiment, concept, it Deaver, to develop or factory beyond the its involved to "force" better tools employees to follow the required reusablity facilitate to interconnecting of modules, and then encourage their use. It Deaver that the software factory was simply another one to that was valuable and exciting but "ahead of SDC retained many of the procedures decided to decentralize -areas corresponding abandoned and at to programmers.''^ its customer markets. to and the thus appeared of those ideas time."'' developed for the factory but it divide programmers SDC and seems the in get software engineers to follow the factory was necessary either procedures, carry According to one of the managers stage. '^ prototype to different functions and The word "factory" was also into have become an anathema to both managers Among other American companies during the 1980s, despite the existence of several experiments applying computer-aided tools to large-scale programming projects, a "factory" for software production firms adopted the factory model considerably more enthusiasm, remarkable improvements But at SDC, questions a pioneer remain: in in none claimed ^"^ . for to have built and maintained On the other hand, several Japanese software and combining flexibility implemented in with it product design with engineering productivity and quality control.'^ many the very concept of the software factory, Did the Factory accomplish what it set out to do? was there something with the technological or managerial components Or of the Factory, or the basic philosophy behind this approach for this company? In and why? short, what went right and what went wrong, II. FACTORY COMPONENTS: POLICIES SDC's Santa Monica, California Atchley, who AND TE CHNOLOGIES facility joined the project toward attempted the Software Factory. end its We were only large open office we had at that time. block long, patios in two stories high, stands, but we've moved out. and software systems any programming language. terminating predefined retool schedule. a in ' building about a That building still " size, Factory complexity, as The basic strategy was specified results Their goal was the facility for each new system, vehicle a application, to methodology that would make software production process in three long corridors with cross corridors and Court viewed the of "That's the recalled Everyone had an outside window. the center. Bratman 1977, in within for a computer, object establish a or standardized 'disciplined, budgeted developing costs repeatable and on a reduce the need to thereby allowing the organization to to eliminate or get projects underway quickly and improve, through capturing the benefits of experience, aspects such as program design, and project management. Bratman and Court did not, therefore, envision the Software Factory as simply a maintained that the success of the consistent code production methodology, building a housing a collection and on tools. They software development effort depended upon use of good techniques and practices, management areas; of standardization, in both technical and faithfully established maintained to reflect changing conditions and continual improvement.^ 10 and Two (1) and control components" comprised the Factory: "basic structural standards, procedures, and organizational principles, Software Development Manual, to provide consistency in embodied in the approach; and (2) an integrated set of standard tools (the Factory Support System) to increase the efficiency and effectiveness of the software development process. Support System automated many Factory provided the total system development of the framework, manual a procedures, Court explained, contract their methodology was requirements but was to stand on its consistent own and dynamic management data base, and tools to help assure cost and schedule integrity. and The as with As Bratman government part of the Factory system: standards and procedures are computerapplication-independent and have been developed as the foundation and basis for the Software Factory. In addition, they are compatible with US military standards, US Air Force Manual 375 requirements, and the better commercial practices. Standards such as the US Air Force System Command Manual 375 series developed by The Electronic Systems Division, the Military Standard 380/480/483 series developed for DoD, and similar procedures developed by the US Army, the Navy, and by the Joint Technical Support Activity for The World-Wide Military Command Control System Advanced Data Processing Equipment were reviewed and incorporated where practical. However, where the emphasis in these efforts was on product descriptions. System Development Corporation has expanded this to include detailed process descriptions, including both methods and procedures. In general, the independent and Software Development Manual (SDM) SDC produced the Software philosophy and methodology. In Development Manual 1987 this was 11 still used to at formalize SDC this facilities in (California), Paoli (Pennsylvania), decade after the Factory experiment, (Virginia), a process being of Camarillo and Monica Santa replaced by a Department of although Defense and McLean it was Military in the Standard (2167): The SDM describes of set a standards and procedures for the development of a software system from both tiftie-phased and functional organization points of view. It recognizes the close interralationship between software development tasks and the functional skills necessary to do the job. The SDM is organized in sections which follow the phases of a throughout its entire software development life Each section provides detailed standards and defines the objectives, the initiation and inputs, termination and outputs, applicable reviews, and activities to be performed for each phase prior to initiation of the next. The SEM( also defines and provides guidance for those functions that are not unique to a specific phase but are applicable throughout the entire project life cycle. These functions project cycle. . . . are: - - - project management configuration management quality assurance contracts administration program control Although the relative emphasis on these functions varies each phase of the software development life cycle, they normally all operate to some degree throughout a project. The SDM defines each function, outlines its purpose and goals, provides cautions concerning critical areas of applications, lists inputs and outputs, specifies with mandatory requirements, applications as well as and provides examples of recommending organizational principles for control. The SDM outlined the tasks detailed levels objectives concepts, and of each major phase of activities to be performed the development involved. such as structured programming, 12 life at successively cycle, Recognized more discussing the techniques and top-down program development, and program production libraries were incorporated throughout the discussion of each a development phase. Overall, the SDM was designed to describe how standardized methodology and available Factory tools would work together to provide a step-wise refinement approach to software development. Factory Support System The Factory Support System was the name given extensible facility software of recommended methodology." - - - It development the capability assisted automated program checkout facilities of the sense that it under development host machine (IBM 370, the host operating system. at in initially) The design was 1975-1977, the tools were not the time and others never materialized: all there; flexible some were Bratman and Court published their "We do the traceability [matrix] that the technical a allowed new tools to be added as they became available. Atchley admitted that, 1977, supported supported top-down development automated management support maintained requirements through implementation provided library/history capability possessed complete symbolic system data control and used the to that tools "integrated and provided these features: The Factory Support System ran on in to an still don't have a good editor. by hand..." infrastructure of the ... articles, We had Bratman and Court also noted Factory was still evolving in 1975- although they were highly optimistic about their ability to completed an "automated" facility: Our long term plan is that the Software Factory will be augumented by the continued development of more sophisticated tools and techniques 13 such as application- oriented process design languages, reusability technology, correctness verifiers, and cross compilers, and will therefore evolve into a truly automated software development facility. The as "basic structural and control components" of the Software Factory, Bratman and Court described them, included three main sub-systems: Access and Control Executive (FACE): performed and status gathering services for all processors, supported the factory command language, integrated the processors with the system development data base, and provided program production library (PPL) services. Factory control Integrated Techniques Management, (IMPACT): Project Analysis, and Control utilized production data base on milestones, tasks, resources, system and their relationships to provide schedule, resource computation, and status reports at the individual components level or summarized at any module or task information components, hierarchy level. Project Development Data Base: a data base established for project using the facility and containing all the schedules, tasks, specification components, test cases, and their relationships along with the various forms of the evolving software components and the complete development status. This actually consisted of two parts: a software development data base and a project control data base. each 14 Software Factory Architecture /T^ \L^ IMPACT Capabilities J r 8 2- S 3 E i"? 3 e o I — — O^^ •* w* «ai c k. n I z O C « ^ 3 C « 2 general, In of the project development data base facilitated the automation management program development, library concept; The programs. this control, and kept copies of program modules from their through definition functional first configuration The software development data base extended the program documentation. production visibility, completion their as object-language project control data base maintained the system and program descriptions and supporting management data, which was oriented toward the system software performed and the activities structure to develop the software system. IMPACT was particularly This assisted the manager of the production of various central a items, the to management software project such in the documents, modules, user manuals, etc. for which his project was responsible. him plan, monitor, and ensure the observance configuration; assists him project and control the work; in define and of quality the preparation of management progress, and in spotting potential Factory. planning and monitoring specification as of control the program "It helps software assurance measures. reports, in difficulties It the evaluation of and developmental trends." IMPACT supported the software development process, furthering the concepts of programming and module design by fostering the creation and integration of a hierarchical structure of program modules. In structured preparing input for IMPACT, upon the project manager, entities of the project a necessary discipline of planning was forced requiring him or her to know and define the and the relationships between them, such as requirements and deliverable items, requirements and program functions, 17 program functions and program modules, high-level program modules and lower-level program modules, program modules and equipment, deliverable items and the activities that produce them, and and the resources necessary activities IMPACT -- areas data tools generation and base was designed facility management to maintenance, be straightforward enough any computer for the management were three into functional and planning project management descriptions. make IMPACT portable to system development. of by providing such information built activity were grouped The data base generation and maintenance and report generation. control'", to project support them. to to IMPACT Data bases as item descriptions and and processed involved three major functional modules-- Data could be inserted interactively during the development cycle. planning and control Project the Scheduler, resource which the allocations; and derived optimized Threader, which critical schedules path interpreted the hierarchical structure of the software system and the organization of project work manager or system architect could direct the Threader trace development status the elements of at various and the Trender, which output trends and anomolies "These three tools constituted increase a the powerful project project manager's modeling efficiency the report generation function of stored in his included the in plans." capability of thread", a to abstraction; project performance. Together they designed IMPACT provided access Management 18 to Summary, to also significantly Furthermore, and effectiveness. the development and control data bases. requested levels a -- integrated set of capabilities that help the represent an manager create and work with project to "pull and the information Reports which could be Resource Allocation, Summary, and the Module Run Summary reports. Modification several addition, In Configuration Summary, Modification Index, Index and Status, Configuration infrastructure: technological processing were part tools (AUTODOC) using comments inserted program flow analyzer that analyzed a to several thoroughness of testing. in provided a Data Definition common programming languages (TCG) was an automatic technique Developer (TOPS) was describe and verify data interface logic a in to a to assure that (DATADEF) as tool well as of Test Case Generator provided that in Top-Down System the capability to describe much of the control and the actual coding language. AND THE FACTORY'S evaluate the results of what were essentially engineering problems Factory accomplished program modules all for designing test data. modeling design, INITIAL PROBLEMS One way Processor program, means of defining data for system programs written central the system would have compatible references to data. III. According to this helped to provide information about the structure of the aid into source program and inserted calls to a recording program at appropriate locations. SDC, Factory's Program Analysis and Test Host^' the program modules by the programmer. a the Automatic Documentation Processor produced program and system documentation, (PATH) was of in operation with inception. 19 P E RFORM ANCE SDC's factory approach is to to solve compare what the Software the five problems that motivated its Probleni #1 Absence : of stemming process development repeatabilty standardized, a solution On the and management policy. "lack a of to the discipline and " The SDC no. from approach . Did the Factory solution work Yes and predictable in practicg? involved a combination the historical data on projects positive side, tracked through the Factory Support System data bases made improve the predictability of future projects, technology of possible to it long as managers as used the data and engineers and other programmers repeated standardized procedures outlined in the Software Development Manual procedures were standardized, and this seems that SDC to with allowances have worked extremely well. According . for to modifications Testimony to this Atchley, over time, is the fact maintained the procedures developed for the Factory manual for a decade. On the negative the data bases predictability. kept made it ensure it seems that managers did not effectively use the goals of discipline, repeatability, and Atchley claimed that during the Factory's earlier days nobody statistics completion, to side, on reuse rates, and program quality difficult to were directly related tell improvements, productivity (inversely related whether improvements to the Factory or not. 20 in to defect efficiency schedule rates). This or productivity TO r^ccp LIBRARY ATTENTION ^H-6.-«^lC) magement difficulties work :tory solution integrated i, in in stemming from a "lack of practice? the Factory Support System, tracked phases of the development process and provided I process the T served tool its a project control construction. In mechanism for tracking lines of authority and responsibility During the planning and system development. CT was lance as and letion status, ut and flow a used to allocate resources, check functional requirements to assess their completeness and IMPACT te reports. completeness, as well as while the PATH TOPS provided tool provided visible a more of testing completeness. FROM \j LIBRARY S noted e lZ^ejU>-Jty that these as indicated in the le DATE tools Factory over time into survey and supporting literature type of technological Software evolved later infrastructure on Bratman became common in and large Lib-ll-65 Problem #3: Inability to define accurately a customer's performance requirements at the beginning of development or to deal easily with changes made during the development process. 21 " Problem #1 Absence : of standardized, a stemming process development predict from a . repeatabilty Did the Factory solution work Yes and The SDC no. solution On the and management policy. practJM in involved a coi the positive side, hi* tracked through the Factory Support System data ba improve the predictability of future projects, data and engineers and other programmers outlined in the and with allowances seems to have worked extremely well. this that repeated Software Development Manual procedures were standardized, SDC lone as ; . for r Testii maintained the procedures developed for th decade. On the negative the data bases predictability. kept made it it ensure seems that managers goals the of disciplir Atchley claimed that during the Factor statistics completion, to side, on reuse rates, and program quality difficult to were directly related tell productivity (inversely related whether improvements to the Factory or not. 20 im| in t eff Project Problefn #2: management difficulties stemming from a of "lack development visibility." Did the Factory solution work Factory tools, integrated Yes. programmers through means all visualizing of practice? the Factory Support System, tracked in phases of the development process and provided process the IMPACT the particular, in tool and flow served as a project control construction. a In mechanism for tracking cost and schedule, completion status, and lines of authority and responsibility for a project, definition designs throughout phases, its IMPACT was used against performance to allocate resources, check functional requirements to assess their completeness and IMPACT accuracy, and to generate reports. assessments of design During the planning and system development. completeness, as well as while the PATH TOPS provided tool provided visible a more quantitative assessment of testing completeness. It should different versions, on individual be also noted but, as indicated firms, the these that in tools over time into the survey and supporting literature type of technological Court outlined for the Software evolved Factory later infrastructure on Bratman became common in and large software organizations. Problem #3: Inability to define accurately a customer's performance requirements at the beginning of development or to deal easily with changes made during the development process. 21 Did the Factory solution work Yes and no -- or, rather, worked it in as practice? best as could be expected for an engineering organization doing the type of projects the Development Manual Software capture company experience down the best procedures process, can be available interpreted customer defining in Portions of did. as attempting and requirements During writing. in SDC to setting development the such as IMPACT kept track of the interrelationships between tools system components; consequently, the effects of requirement changes on the system architecture were more completely and easily determined. On the other hand, SDC starting however, is so many different types of systems the design process doubt continued. no This "problem," to a large extent intrinsic to the design process except for firms making products with the most stable and standardized features. "factory" solution could have been comprehensive, Factory for and applications that accurately defining customer needs different machines before built infrastructure was designed to nor should the simplify it Thus, But the be. handling no of design changes, and seems to have performed this function. The Factory was not Court, Design, pooling this appears to production, the technical totally centralized and, according to Bratman and have facilitated the requirements definition process. and test resources activities of the were organizationally Santa Monica facility's separated, personnel. Top-level visibility came through the management of each of these activities, and provided at the time of end-product turnover 22 a natural point for review and quality control. a was project control, A program office established for the entire life-cycle of responsible primarily for program management and overall customer (user) interface, requirement and performance specification generation, system engineering, and quality control and assurance. of this allocation of computer location. customer/user in responsibilities, Rather, the Because the program office was not tied to any program order to maintain office smooth a was physically "interface" with with the development activities. Lack of tools for design and verification. Problem #4: Did the Factory solution work The Factory Yes. tools between design have become common Problem #5: in to the design and program coding. other software to process and to smooth These types of tools Lack of reusability of code. There was no tool lack of software reusability. specifically in pra ct ice? designed to combat the problem of The possible reuse of software was thought to be sufficiently facilitated by careful system component structuring, relationships provide facilities. Did the Factory solution work No. practice? TOPS and DATADEF were designed more automation and better verification the transition in of software components 23 to performance specific requirements, and not inherent documentation improved be the case. out to turn in Factory-developed Atchley recalled the software. beliefs of This the did Factory architects regarding reuse of code: They if we used this technique (top-down program we used modules, that the reusability would fall out it... you would decompose your requirements into functions and that felt design) and of if come up with code that was modular and reusable by following the And then, as a fallout of that, you could techniques in the SDM. go back [to the software library] and find it and reuse it. This did wrote and not work because of the different types computers. of programs SDC languages and types of object programming concepts available in the mid-1970s probably made this goal of the different extensive reusability and portability too ambitious. because managers did not reuse components often to use. Atchley explained: require it, Also, For these reasons, programmers did not even try very from the library, which also seemed difficult [W]e changed machines from project to project, and it was very to reuse the code. We had an electronic funds transfer program that was done on DEC's PDP-II And then we went to Emergency the Command and Control System for the Los Angeles Police Department which was also done on the PDP-ll. And we tried to find some of that software that we could reuse, and some of the modules. We had not done a good job in EFTS [Electronic Funds Transfer System] of providing a road map to get it, even using some of the same programmers. They would say, know did it and think we saved it; I'll go look for it... ...They expressed a willingness verbally to do it, and it sounded like a It good idea, but at that time we were unable to capture much. was easier to do it than to go find it. If you did find it you had to recode it [a module in the library] Basically, it offered you a detailed design. Not bad, but you had a different database, a different language, different applications, and it was hard to find the building blocks that remained the same. We were at that time doing the police system, an air defense system, a ground telemetry system, and an intelligence classified system. They were on four different machines, they had four different sets of requirements, difficult . I I . 24 and I to it was very hard to find any reusability or savings among the We did set up a library, where we collected all the four of them. Usage of that software produced, filed it, and documented it. library was very minimal. and David Deaver described the problem as relating to which programmers did not like to have philosophy that would been Programmers required retraining there was the work, and in basis of programs running There was, with therefore, make the Factory work. to resistance reused no "more as Programmers allegedly did not therefore was not as tight as it culture and new program, although Deaver a programs relying on reused code because and in in order to write and use reusable code; programmers' of aesthetics than performance." of atmosphere problem of integrating someone else's previously- additional the drastic change a necessary written and perhaps more lengthy code into described rigid a it like the kinds the code was not their own all could be, although performance levels code were tradeoff real problem of a in in actuality efficiency; not but a problem. programmers' happiness and sense of aesthetics could not be ignored.^" In SDC there was only one programming 1987, was that admitted, reusing however, code from that this and the same application. about it; we just do it. it That's And we're it's a simple... no really programs. "It's fights, not getting any static at hard." SDC very high number. ^^ is Atchley no arguments all. But when actually bid on this project turning out more like 50%, When asked how he 25 by the same machine could reuse 80% of the program code from existing Atchley says that the real figure considers written was possible because, the applications aren't the same, assuming previously being developed project felt SDC systems. which he still about the low incidence of program code reuse "it's do that the idea . . Atchley been ten years, and we're now coming up with an ability to commented, . the early days of the Factory, in good but the fact that is taken us so long it's ... is kind of sad." IV. NEW PROBLEMS THE FACTORY CREATED Work-Flow Planning and Management A serious "work flow" problem occurred that architects appear true This made have overlooked. to and continuity or operations, economies it and scale of difficult managers for scope on from project to project as learn the Factory of impose development their systematically to had been as hoped. naming In envisioned integrated an and procedures, tools produced manufacturer of hard to stages completion of stations, be with a flow a organization Software end goods until organizes "work of it centralized in this tool development to The data base seems can be found in SDC managers " development costly, to progress in base through the production phases, to various of line resembling detail a work conveyor as various the product have worked well and counterparts many other 26 large a There was activities. add more and more to and much the same way that production data standards, higher quality, reached the end of the factory's and techniques were used framework. less process" that carried an evolving product through tools a product, Factory, software of which would allow more efficiently supposed "The approach their to softwa re- development organizations. Programmers did not seem to mind this type of managers never required them to drastically example, Atchley modules. suggests work flow, altiiough change their habits and, reuse code from the program routinely a library or write for reusable many programmers were not even that particularly aware of what was going on: It was a term used and a They didn't even know it happened. way of doing work, but as far as most of the programmers were don't think there was any concerned, life went on as usual. They knew the term, they great culture shock or resistance to it. knew they had been gathered from the various four corners of the company and put together, but they didn't consider themselves in There were lots of cartoons on the wall about the a factory. Factory and all these kinds of things, but truthfully don't think the programmers considered themselves factory workers. I I A far more serious concept as intended. dropped, that and management practices made planning, was not problem was a it the nature of SDC's difficult to Because projects came about on a constant flow of work to feed the Factory. SDC also continued its custom of laying off business, implement the "flow" contract basis, there When the work level even trained people. Atchley admitted the lack of work undermined the factory concept, although he also saw this as a failure of production planning: We If you were going to have a did not have the work to sustain it. factory, and the work wasn't coming through all the time, then you had these ups and downs. You somehow had to provide the flywheel money, No one was some other projects, to keep people between programs. willing to make the sustaining investment to keep a flywheel going there was no planning to take care of that. Every job was totally different. It would work a lot better if we had a specific line of . . 27 . . . , business "Matrix" Management type for problem was that the Software Factory created A related of matrix management whereby there were project managers responsible responsible for different from developed the the actual then software. effect managers in principle, In a the Factory this was no non-software firms that had product or project managers who products manufacturing created producing and customers with directly dealing in take jointly care Factory management or preparing of with final without its manufacturing production. anticipating managers But the to accept the 28 imput and then SDC appears difficulties new structure. of to let have matrix Software Factory Organizational Principles o C_3 : As shown in the figure outlining the Factory the software requirements of program, " the organizational principles, s major project were done "independent of the a program being a large contracted when a project manager suddenly was the discord this created Atchley project. recalled no longer in control of development activities: didn't have the management tools in place what happens is that you've got a program manager who's come to you with his program and he's given you the task to do, but really he doesn't And if you overspend, what's he have any control over you. He has to have the job done. going to do? So there was not enough incentive on the part of the factory to produce at an We . . . were the complaints of the other them money ... there were some complaints about the fact that now they had two managers, that they had doubled the overhead since you had the management of the Software Factory but you still had the management of the program. So there were some complaints about that. economical cost managers. It . . . was [These] costing . . . . Some managers accepted the Factory concept software success. development, were even excited about But others, according to Atchley, seemed influence on their and as . viable structure for a it with to feel hopes for its they were losing the software development processes over which they had control we took managers and we consolidated into That left some men and women at that same level who no three areas. longer had a direct influence, and they became plans and programs people. .. they were in the situation of getting their projects done by the Software Factory. That left some of those people uneasy... They wanted their hands on that. They wanted to be able to touch their programmer. So there was a lot of resistance from program management to the idea. There still is. Some a of the managers felt they were lot of people who'd been program 30 losing their turfdom " . . . . These "plans and programs people" Factory and the program office, of the Factory experiment, to the customer's site to served as the interface remaining with the customer. between the After the end programmers then went with the programs people do actual development: [Plans and programs people] chase new programs, help the proposals, help develop the new business, go out and talk to customers, help with the strategic planning, determine where we are going in a particular line of business, become experts in that line of business, and when we win contracts they become the They are a interface out of the program office with the Factory. They used to give us the specs and say part of the organization. The plans and programs person would 'Go produce this software.' be the interface, and he would be controlling the budget ... As it Is now, we [program implementation] are a part of the program We moved the people office; we work in their area, physically. into that physical area; we no longer keep the people physically separated [from the program office] THE SDC SOFTWARE FACTORY V. FATE OF Decentra ization I Because the Factory as attempted at SDC created problems as well as management gradually dispersed the Santa Monica programmers solved them, into different sites. ^^ In functional general, this areas by assigning them to different customer was the strategy SDC has followed for the past decade, although, organizationally, management has tried to focus particular facilities on specialized lines of business. Most firms, however, according to the survey, were more centralized than SDC. even SDC's Paoli work coming into Atchley admitted as well that (Pennsylvania) facility successfully adopted the concept of one large facility where factory-type productivity be systematically applied, even though 31 Paoli tools can does not use the term "Software Factory" (which remains an SDC trademark). simply did not work out as well as intended. Some factory work flow and technological As Atchley explained, the factory workers now go You of the at Santa Monica Factory discipline remained while the physical centralization and notions of and procedures centralized The attempt would a infrastructure disappeared. to the work: see a sign in this building that said Software We've moved on ... All the tools weren't there; some were, some weren't. The concepts were there, the ideas were there, but it wasn't all there. ... They weren't really dismantled. They were in disuse because new ones came along, and we just no longer used them. The only thing we're still using, and we won't use it much longer, is PDL [a Program Development Language SDC developed for in-house use]. We're still using it, but we're going to BYRON [a commercial product], and within the next six months, we're going to be all converted over to BYRON. ... PDL was a Pascal-based system. That's the only thing left that we're still using. We're moving to ARGUS, we're using a new editor. Times change What we're trying to do now is establish a common software environment where we provide tools and the environment to develop software from the beginning up to the coding stage. .We provide the cadre of people to do the job as opposed to In Paoli, they're still running the taking the job into the factory. other way. But in Santa Monica, we've drifted from that quite a bit. We still have the disciplines, standards, and concept, but the work does not flow through the factory. The Factory workers go to the work. Factory.' . . . . . Atchley's positive. in not ... final assessment of the factory experiment was Aside from the work flow and management problems, efficiency were not obviously attributable to the Factory, the system did not focus on productivity and reusability, approaches, such as at Toshiba. improvements perhaps because unlike other factory On the other hand, he believed the Factory increased awareness among software engineers of the product greatly improved quality through generally a life cycle, and structured approach and more formalized testing procedures. 32 think that while we may not be organized the way we were, our seriously people are more aware of the software life cycle now. Were the people more doubt that it [the Factory] reduced cost. hard to say they were more efficient because of It's efficient? the Factory or that they became more efficient because we became presume there was a fallout there on efficiency more efficient. think the structured approach helped quality and productivity. think the fact that we became very formal with the immensely. independent test organization improved the quality of the product Whether that was the Software Factory or not, we delivered. don't know. I I I I I I Atchley, had as well potential however, has procedures Deaver, as for not real Factory concept was workable and also felt the improvements factory-type in SDC, productivity. done much with the idea beyond the standardization and the greater work-flow centralization at of Atchley Paoli. concluded: think it's a good concept. think discipline can be applied to software the development process. think that reusability and productivity should be the main factors out of it. We're not doing as good a job today as we were ten years ago in keeping it alive. We've made a lot of progress, but we could be better if we had really actively pursued the concept and grown the concept as new ideas came out of the schools and papers were written. If we'd kept the factory concept more prominent, think we would have been able to put more of those ideas in sooner. As it is now, there's a lag. Instead of being at the forefront, we're kind of dragging. I I I I The Survey Response Another way experiment on SDC to is gauge the impact as of 1987 of the Software from the company's "performance" large-scale software facilities or firms 33 in the U.S. in Factory the survey of 38 and Japan (21 U.S., 17 Japanese). The SDC/Unisys 1975-77 SDC Atchley) (from general covered As noted earlier, these questions were largely based on company practices. the response articles describing the Factory's technology, policies, and objectives. SDC/Unisys did not come out it ranked 22nd of factory the which the experiment model policy/methodology overall 2nd in studied, (77%, 13 percent above the mean). despite a place of 10th policy and 3rd overall in SDC/Unisys biased. criteria (75%, 8 percent facilities seem more obvious is the facilities). Effects area, toward policy ranked above the 9th mean), in SURVEY ANSWERS KEY: CAPABILITY OR POLICY CAPABILITY OR POLICY 2 = CAPABILITY OR POLICY = CAPABILITY OR POLICY = CAPABILITY OR POLICY 1 n = I. 38 (Jap. = 17, U.S. IS IS IS IS in technology, llth SDC/Unisys ranked FULLY USED OR ENFORCED FREQUENTLY USED OR ENFORCED SOMETIMES USED OR ENFORCED SELDOM USED OR ENFORCED NOT USED = 21) TECHNOLOGY/FACILITY INFRASTRUCTURE ALL 15 Furthermore, among U.S. firms and (see Appendix tables). IS the and MEANS AND STANDARD DEVIATIONS FOR SURVEY QUESTIONS 4 = 3 = where the 8 technology criteria, in one percent above the mean for 38 (72%, total well G 'it's not used as frequently as we would like. A central production or development data base connecting programming groups working on a single product family to track information on task completion, resources, and system components, to facilitate overall project control and to serve as a data source for statistics on programmer productivity, costs, scheduling accuracy, etc. milestones, SDC: response was above the mean for the sample, than thae average U.S. applications response, although it would have been average for the Japanese firms. SDC reported that their central data base was project or line-of-business (facility) oriented; this was the usual practice in other firms This 3 and higher as well. E. Project data bases standardized for all groups working on the same product components, to support consistency in building of program modules, configuration management, documentation, maintenance, and reusability of code. potential SDC: answer was considerably above average, and, seems to reflect the continuing influence of a factory-type approach to development. This 4 again, F. A specific group or groups designated to develop and disseminate methodologies and tools to automate tasks such as requirements specification and design, coding, documentation, system testing and debugging, as well as to facilitate standardization of practices and division of labor, and effective managerial control over all programming activities. G. Above average, SDC: 4 A interface providing the capability data bases, the centralized production especially for U.S. system project to data firms. support tools, base and program link libraries. SDC: This 3 answer was average for a above the sample mean and above U.S. response but equal to the Japanese average. SDC also reported this interface, which had been described in the Software Factory experiment, was "still evolving. " H. Automated or support systems semi -automated integration of applicable data from tools and development data bases with management control (project data bases and the central production data base), for 36 phase of program development; and the utilization of this capability to facilitate budgeting, forecasting, maintenance, and overall llfe-cyle cost control on current and future projects. each SDC: II. METHODOLOGY which was low due commented that "This dream." This was above the sample mean, to the U.S. average. is the goal -- it might & POLICY SDC be a INFRASTRUCTURE also A. Use standardized design language of a SDC: 4 This was double the average response. SDC used a it had developed based on Yourdon and using the UNIX operating system. tool B. Use of SDC: C. Use 3 This was above the mean, though equal to the Japanese average. SDC continued to use PDL, which it had developed for the Software Factory, though it was changing to Byron. standardized coding language of a SDC: D. standardized module-specification language a 2 This was below average. For most projects, SDC used C, but new programs used Ada, and others used Algol, Fortran, Pascal, Jovial, and CMS2. The range of languages reflected the diversity of SDC products and customers. Emphasis on high-level abstraction (data-type or procedure abstraction; object rather than variable orientation) SDC: E. Above average. SDC claimed to place the highest emphasis on this, along with the ability to test. 3 This was an average the U.S. averages although higher than response, Planning for portability at the module-design level SDC: H. 4 Planning for reusability at the module-design level SDC: G. Above average. Planning for maintainability at the module-design level SDC: F. 3 3 Above average. Monitoring of how much code SDC: 3 is being reused Above average, 38 and especial higher than the U.S. As noted in the data summary above, the means for this question was 3.16 for Japanese responses. overall and 1.29 for U.S. I. "Layering" of reused modules from the program newly written code, to create new programs SDC: J. 2 library, with along This was an average response. Layering can be interpreted as a factory-type approach to program development in that it is an effective way to combine existing modules with new code, as well as develop programs that have distince components and are thus more easily maintainable or transferred to different computers (portable). Cataloging for the program library of common functional modules (e.g. date verification routine) SDC: K. facilities. 2 Below the sample mean but average for the U.S. Cataloging for the program library table or linked-list managers) SDC: 2 a data of modules abstraction Average for the sample; somewhat high for though still below the Japanese mean. (e.g. U.S. a facility L. Writing of documentation to accompany modules placed in the program library SDC: M. Average. Requirement that, if changes are made program library, the documentation must SDC: N. 3 4 the code of a module in in the changed also be Above average for the sample; average. equal to the Japanese management promotion (beyond the discretion of individual project managers) that new code be written in modular form with the intention that modules (in addition to common subroutines) will then Formal serve as reusable "units of production" SDC: 4 Considerably in higher future projects than especially high for a U.S. 39 the facility. sample mean and Formal management promotion (beyond the discretion of individual project managers) that, if a module designed to perform a specific function (in addition to common subroutines) is in the program library system, rather than duplicating such a module, it should be reused O. SDC: Considerably 4 higher than especially high for a U.S. SUBSEQUENT VI. In his with in essay now-classic , software on Frederick P. engineering published in . Based on -^^ experience his Brooks set the tenor for development of software engineering IBM, and he did so promoting approaches that, with the exception of his suggestion to limit the number of people on one project, have generally been incorporated into software factories and improvement efforts firms: (1) independent Consideration subtasks sequential of and 25-26), (pp. charts or critcal path analysis use 154-158), (pp. and constraints variety of a in number the concrete milestones, of with to deal The team approach 31-37) (pp. languages (p. 93) to deal with experienced programmers formal definitions, system improve communication "efficiency and wide discrepancy a (pp. (3) of The use formal 62-69) conceptual tools in and the difficulty (p. 30), programmer productivity. and software of precise conferences such 40 in a PERT 16-20). high-level as the performance even of of increasing written and large individual specifications, other techniques and overcome the difficulty integrity" of poorly developed estimating techniques and methods to monitor schedule progress (pp. (2) 1975, Brooks, Jr., discussed problems very what Bratman and Court had identified OS/360, and DEVELOPMENTS U.S. The Mythical Man-Month similar to mean sample the facility. project of to achieving with many participants (pp. 31). Use (4) of pilot documentation, and definition progress in with deal to intermodule of design, interfaces, extensive complete standard calling sequences and table-driven techniques, the use of very-high-level 117-118), top-down using change through careful modularization subroutining systems and systems designed for and languages and self-documenting techniques frequent alterations development and testing. (5) in specifications that (pp. delayed Better testing techniques and tools such as top-down design and structured programming (pp. 142-144) to reduce bugs and overcome (pp. difficulties in system debugging and program maintenance 120-121). A recent article by R. Goldberg, a consultant the at IBM Software Engineering Institute, outlined the progress IBM and other firms have made In developing or using these tools and techniques. the late 1960s, According to when OS/360 and other projects prompted the engineering-type practices software, to management focus on the individual the was or in application of to a programmer and a field engineer Goldberg, limited focus on techniques such as structured programming. technological the In next stage, roughly during the 1970s, experimental techniques such as Brooks recommended became more formal methodologies, such or structured analysis. understanding attention to software life-cycle maintenance). technology Managers, In better development in the (for turn, began processes example, as to stepwise refinement direct more of their involved from in basic each design step of through the most recent stage (the 1980s), companies have pushed development more toward improving managers have shifted their concerns more 41 to software environments, process-management issues. as •^'^ The result development, of and experience, Bratman and Court, as structured design, psychological structures, measurements, maintenance, team cost software human factors or programming estimation, decades many other authors as development, language definition, well management, project two research, of huge literature covering topics discussed a is by Brooks, requirements drawing on evolution, this economics, configuration data productivity software tools, control, life-cycle the 1970s: programming, programming, and concepts engineering modular in in quality, management, large-program management, documentation, flow diagrams, testing, reusability, prototyping, and the software engineering of directions U.S. leader among tools to software Boehm TRW, of beyond the scope is indicates and paper, trends although suggests a in sampling some the of TRW was in a leader in the entire sample and applying factory-type discipline and Much of this is due to Barry who has written extensively on software engineering and environment offered environment of of this development (see Appendix). by decade. a been extremely influential perhaps that respondents U.S. economics for more than learning review of subsequent developments full firms have taken. The survey the A "^ company experiences, ideas, sevel like. in a His the U.S. factory for clearly TRW, how many people should be involved 42 The type and abroad model Boehm advocated and experiments ideas in supported except for one project. in TRW of controlled have the type the question of In a key 1976 helped that article define to the software of field engineering, Boehm discussed integrated approaches to software development, citing the objectives of such approaches as "a significant boost development efficiency and quality He cited as examples approach." programming standards; the at the same time perform or simply the improvement participants using are support software. ^ perform ability to set of timely, a synergism the a unified a software update and consistent project status updates; software system integration achieved when in same development concept, the of complementary development approach and a set of through software in Strategies Boehm seemed ground and rules, recommend were to all IBM's "top-down structured programming with chief programmer teams" concept, as well as SofTech's structured integrated Electronics and TRW's management- The System Design Laboratory (SDL) intensive integrated approach. Naval approach Laboratory Center was also engaged the integrated an in at approach to software development. In efforts a at outcome to 1977 TRW a article, to Boehm described the define a set of results principles to of one "guarantee" software development effort: 1. Manage using 2. Perform continuous validation 3. Maintain disciplined product control 4. Use enhanced top-down structured programming 5. Maintain clear accountability for results a sequential life-cycle plan 43 a in a series of successful In 6. Use better and fewer people 7. Maintain commitment a to improve the process^^ contrast to software-factory notions of large scales of people these one of recommended fewer people on principles Brooks of IBM, Frederick in one projects; site, so did based on the experience of having developed the although System 360 operating system, Japanese software-factory managers claimed they were able to add people to projects falling behind and get them done on As time.'^° sufficient and application not sufficient to ensure are a now techniques programming, structured these principles over the entire life-cycles of successive of would projects top-down as that But he did maintain that the continued learning themselves. in is Boehm suggested Neither effort. such universally, almost practiced development software well, as project personnel alone reliance on outstanding successful found has Hitachi bring forth improvements and understanding project in gradual overcoming of management complexities. In 1984 a software leading managers to of more a Boehm and article, several substantial his co-authors cited the of level technology and productivity improvement. demand costs, for software, limited motivating "corporate investment recognition factors" software in study productivity development, in or TRW did were process These factors included increased supply of software engineers, reduced hardware and rising software-engineering support expectations.'^' productivity which by in software prototyping, 1980 identified development, of ways for improving recommending requirements 44 several A software specifications, evolutionary to facilitate changing and better understood user needs, and more emphasis on training of system users and in-house Preliminary conclusions from the study included better usage measurement. integration of programmer these strategies but, consulting, and on such organizational factors as project learning and system courses, All documentation, improved through indeed, are not only have been with initiatives productivity consistent with incorporated tools. software factory model a software factories actual in improvement such as Toshiba. 28 general, In Boehm software engineers and seek combination a rising of development efforts. 1983 a in demand software cost-productivity strongly support Toshiba, Hitachi, estimating (2) and NEC: (1) with proper management, planning a long, and conlcusions efforts such their personal for that as at require an including tools, methods, incentives, and reflects five years and factors of four in ten in investment. (3) Improving sustained effort and commitment. Boehm has succeeded GTE's experience three to in An integrated software productivity program can produce productivity involves Whereas shortage of Boehm developed productivity gains several areas, in the adaptability model came Significant education, a and factory-type integrated long-term, productivity gains of factors of two years, also that programs necessitated that firms using studies integrated program of initiatives reusability. for concluded affordability, reliability, Several work environments, article in the problems 45 implementing a diversified these software "^^ ideas organization in TRW, faces in attempting development.-^^ several Its GTE the ideas met little several of embodied According divisions. Computer Science Laboratory consisted and general-use standards tools general at GTE existing in G. William to Laboratories, objectives that software to Corporate Software Developwient lltethodoloqv, incorporated 1980, in corporate apply to published methodologies director Griffin, Inc., used of in the the methodology represented good practice and opposition: A specified software architecture 1. for all systems, represented as a hierarchy of logical components, each level of the hierarchy being a decomposition of the preceding higher level 2. A 3. A description of the configuration management 4. A detailed description of the development process based on the software life-cycle model list phase A 5. necessary aspects of the necessary documentation of the development process glossary terms and prescribed manual was one of for of each structure chart symbols Development following of this formation the of a Software of Steering several steps Committee, GTE took whose tasks included studying software engineering and management issues, examining the and promoting the sharing diverse software activities within the corporation, of experiences and software engineering cited from this and managers to centralized approach was the communicate through the use But another attempt to standardize 46 The greatest tools. not ability of of benefit Griffin software engineers common terms. just terminology but practices the across firm, Projects), met with called much "STEP" Enforce a set of development 2. Provide an portable standards integrated tool throughout set Engineering program around a for built management data of STEP's objectives were much bolder: less success. 1. Techniques (Structured system configuration management 3. Ensure that documentation was current 4. Provide relatively easy transportation across operating systems Provide management reports on project status 5. Griffin GTE explained the as software result of STEP's failure several to factors: development activities gain widespread acceptance within the decentralized and groups; the performance problems nature of GTE's preference of software encountered with engineers for STEP, comparison to tools integrated with the data management services of a in familiar tools; users STEP's narrow interpretation of the software specific operating system; development methodology; the slow transfer of technology from the research phase GTE to its use in systems development; and the different perceptions among business units as to what their real economic needs were. GTE managers continued to debate whether they should centralized group to develop software tools and define methods, investment productivity. Griffin in R&D to expected a although, as Boehm would recommend, the company was apparently committed long-term have to heavy, improve software quality and development high-performance 47 personal workstations to provide bulk the although he greatly complicate not. although Hitachi, distributed or central also decentralization were fully Japanese firms leading in Hitachi: components, product strategies development of GTE in would at was efforts laboratories, on consistent with the type of objectives sought by model, the factory NEC, including integrated environments, accuracy, specification environments factory the to development, large-scale for The four dominant software engineering themes the other hand, software in management configuration Workbenches were and improvements future decentralized believed also development. Toshiba GTE's of and the application reusable software knowledge-based systems of and Toshiba, to the software development process. These to SDC and including the factory efforts at efforts, have provided firms with significant benefits even meet all their improving conceptual integration using tools to support this, groups, technical due was This goals. least at within the design personnel, achieved greater success than software factories Fujitsu, as Notable well and as at process, management. and SDC The terminology used today software engineering to an emphasis on developing and and improving communication among development improve software development productivity aided seem Japan, the programs did not if part in in efforts to have focused on automation and system design for automating Such tools development efforts software among design-automation recent did. (CASE). other More tools 48 at were integral parts NEC, producers sold by computer- is Toshiba, in U.S. Japan of Hitachi, and vendors the the and U.S. were those by developed Index Technology, KnowledgeWare, Nastec, Instruments, Cortex, and Tarkenton Software. was one of the first to A Texas Instruments's product systems the entire tackle Texas Cadre, development cycle, including business objective analysis and data base generation. life Other tools which automate the coding process, called application or program generators, were also central among U.S. tool to Japanese as facilities developers and users. well as growing popularity in Cortex, for example, has developed a system called the Application Factory for the Digital Equipment Corporation VAX market that resembled miniature, a flexible and automated factory. ^^ This product, which closely resembled systems used internally and marketed by Hitachi and NEC, automatically generated software from specifications set by computer professionals, and at Du Pont Company, 70% of the code for a particular project, actually contributing to wrote about cost savings of a about 82%. 32 In addition to CASE products available for sale are those U.S. TRW have made primarily for in-house use. as designed ARGUS, for example, an advanced software engineering workbench and integrated approach to improve quality while reducing the cost of software development.^"^ is Automated the used at the Interactive Design The next step IBM.'^'' CASE tool Cortex's product. ^^ to and Hughes Aircraft Company, manual procedures accompanying at firms in a designed to automate many of the automation many firms are taking designed Texas Instruments System developed and structured design methodology developed an application generator. CorVision, Evaluation to is AIDES be said 49 U.S. a to is to link a products of this type include well -integrated have developed version a of the product which "thoroughly automates every process even development," Other U.S. although this is vendors, as well vaguely associated with software also described as Japanese as exceedingly firms, were incorporating expert systems technology into their products. Inc. make and Tarkenton a workbench Software, for for example, systems analysts that focusing will on KnowledgeWare have combined their efforts to automate everything from the early design work to the generation of computer code.^' 50 unwieldy. ° CONCLUSIONS The SDC experiment was clearly part of a large and ongoing effort in the U.S., Japan, and elsewhere since the 1960s, to develop methods, tools, and entire enviroments to improve software-engineering productivity, product quality, well and management control. was the variety "decentralize" to lines suit and the management factory ideal. failure or need to This facility. development efforts can also be seen not perform did GTE and numerous in and runs counter to the centralization tendency other firms, developing SDC's product in manage the work flow to inability One reason the factory implicit in the This suggests that factory models may be appropriate only for certain types software of firms in willing accept to a certain amount of centralization, discipline, and product/market focus. On the other hand, the primary goal factory aspects of hardware production, disciplined, capturing and repeatable approach to of but the SDC was not to mimic rather to apply Hence, SDC did completely not in "fail" in automate and standardize the software development process. many developments that followed and criteria its consistent, performance in a manufacturing its attempt It some important objectives and more strategically and SDC may have possibilities for efficiently. 51 to anticipated the overall was above average and among the leaders for U.S. firms. not pursuing the factory model further, the software development process, some of the efficiencies of production found environment. a all survey Yet, by needlessly abandoned managing software engineering Sustaining Committment to an Innova tion SDC, At introduction the Software the of Factory established methodology for developing software systems. SDC would procedures were totally adequate, problem areas and attempted such and disruption the difficult unsuitabiity the sustain to innovation encourage acceptance and and planning. except for problem, into While the 1980s, reluctance to supervision careful investment activity; in variety and it change the of to new procedures and as skill, control company's the of product of work as well time a development seemed engineering advanced has hinder to dooming the experiment. deemphasis on a Tool development needs to be process technology. managers' and flow experiment was apparently followed by of the software of made Factory the of Management attempt. effective implementation of the concept, The end aspects reluctance to use the program library that persisted up give On the other hand, programmer resistance may or may not have been a the have identified so many not ensure rapid absorption to requires always technologies certain of an the established If grand experiement. a disrupted sufficiently continous a that new tools become available frequently and render many existing ones obsolete quickly. SDC, it fact, in has has replaced the tools of the Software Factory far faster than replaced Factory supposed as to the originally designed accommodate new one key manager admitted that contrast, the development continually evolving, both But procedures. Factory to systems in become obsolete; as tools tool SDC they terms Toshiba, of 52 the fell but of and the was also at least behind other firms. Hitachi, policies much Factory became available, development at allowed In and NEC have been technology, following long-term plans and sustained Investment. ° Th work flow problem was symptomatic business at Santa Monica, as well of the as of SDC's varied nature of the products The product technology was not particularly developing. NEC, Toshiba, and TRW, to discipline their and technologies stable and also with varied product portfolios, development efforts much more successfully. thus policies were not it was thus But other companies such as "mass-production" atmosphere. suitable for a contract necessarily have managed The Factory inappropriate to the product/market requirements of SDC, although SDC's customer base seems to have made successful process innovation more difficult. Managing People as well as Technolociv The lack of a consistent, flow similar of work through the Factory meant SDC managers could not justify the Factory's continued existence and development. commitment to But failure. asked Better maintaining the planning Factory along intact with might more management have prevented the basic problems seems to be that SDC's implementation effort organizational for sufficient a production socializing of and process innovation Making the people involved. but did "the not provide factory workers go to the work" rather than having the work flow through the factory was an organizational adaptation to an operational situation that appears to have worked, but it also undermined much of the Numerous Japanese firms and two U.S. firms or survey, are significantly ahead of SDC 53 in initial innovation's facilities, implementing potential. as indicated in the factory-type tools and policies. Whereas management-policy infrastructure organizations, also is it standardized, formal, or constructs to do not way SDC's themselves lend 1969, impose in a so building of well took nearly technology infrastructure and (1) computerized to with was factory NEC, Toshiba, and first regard quite Hitachi. software factory collect data and quality (defects) before investing automated and With decade to institute standards and technological once, at a productivity, sophisticated software a which launched the world's Hitachi, on project management, heavily There are further. a development but require personal interaction and consideration. For example, in and and automatable management practices different from the approaches followed at effort technological software scale differentiate to a the management-policy infrastructure; and (2) those areas of in distinction, this possible large in proceduralized, managing people which automation, between appropriate to distinguish is it tools. In contrast, infrastructure and inadequate planning SDC tried disciplined a or analysis to policy of its product portfolio and production operations. In examining software firms, this articles and practices several of type of contrast becomes even more explicit. additional case studies are needed, key elements in methods quality practices, and tools, and a standardization concentration on 54 of Japanese Although the success of Toshiba's Software Factory appear to be compulsory education for factory different all software employees in development the and "how to control software people so as and follow the plans without losing their morale observe, to expects Fujitsu programmers and customers its [sic]."^^ understand to fully its "Software Development Engineering Methodology" standards, and the company and leaders continuous. administrators number the regard With Support System," in campaigns and seminars for project continuously conducted educational has a to of Development 1977. another the tool, Fujitsu engineer states that, and problems "... which needs various is there is seen also "Software SDSS and we are planning of projects applying light since as Development an increasing to improve may arise further it during its present application."^^ The founder in "...human factors another article, increasingly important; being applied to software formerly Engineering at its in software management are becoming (HSE), the company's success, assert is now and as HSE makes a at that well "Realizing employees--an investment that pays off same vein Tajima reliability."^^ Hitachi depends largely upon individuals: play in therefore human-oriented reviews and inspections are increase software managers Software Matsumoto Yoshihiro, writes of Toshiba's Software Factory, and Matsubara, a subsidiary, the software the critical role Hitachi industry that people major educational investment in an observation by Mizuno Yukio, employee loyalty."^ a In ...the only difference is the human element" [referring to software quality differences between Japanese and U. S. companies] ... Teamwork is the key the human factor must receive adequate consideration ... People are at the heart of software work. Here, teamwork will be the key. members working together are, Team in their collective wisdom, more effective individuals far than . . 55 this vice-president and head of NEC's software effort: . in group activity motivates the individual and the working alone. team ... There are three psychological keys to motivation. First the worker should know the significance of what he works on; he must by himself, recognize his responsibility in his environment. Second, he needs to be exposed to the actual results of his work. .. [third] he knows the team goal.'^ . . . , each In these of -- interaction encouragement, expression of common vision, described aspects in of in software human factors of personal instillment of purpose and The management-policy infrastructure goals. In SDC's Software Factory as well, have had difficulty understanding the goals and benefits, to programmers was trying the team-building, management function. the of engaged paper may not separate and capture these non-automatable this managers seem while seem acutely aware development process managers Japanese examples, were to accomplish. not told the of significance of what management This approach ignored the need to manage people as well as technology. Not only did program central SDC programmers never became accustomed library for resistance from managers was left trying rather than which to who enforce not accept the management factory using a The Software Factory met with reusability. did to new system. using Thus, computerized SDC tools adequately applying the non-automatable aspects of management address such issues as personality and "turfdom." The lack of acceptance and enthusiasm about the Software Factory by both workers and the disruption of what could managers contributed to evolution--and revolution not a managing the process of software -- to a more strategic and development. 56 have been an orderly efficient way of APPENDIX SURVEY RESULTS: DATA SUMMARY TABLE = Technological Infrastructure Policy/Methodology Infrastructure III = Total Factory Model @ Indicates two responses and averaged or I II = COMPANY/FACI LITY *NEC@ (32=100%) (60=100%) (92=100%) joint responses. 1 89% *Toshiba Software Factory *NEC Information Service *NT&T Comm. & Info. Proc. Lab.@ Hitachi Omori Works Fujitsu Info. Proc. Sys. Lab.@ Nippon Systemware Nippon Business Consultant Hitachi Software Engineering^ Nippon Electronics Development TRW Unisys/Sperry@ Unisys/SDC Control Data© Martin Marietta/Maryland Hughes Aircraft Boeing Aerospace© Bell Labs AT&T Cullinet Martin Marietta/Denver Electronic Data Systems© Honeywell/Defense Systems© Draper Laboratories© Computervision© Applications Means Japanese () U.S. NEC/Switching Systems 98% *NEC/Operating Systems Toshiba Software Factory *NEC Software Hitachi Software Works(a Fujitsu Numazu Factoryta *NT&T Comm. C Info. Proc. Lab.@ Control Data@ IBM Endicott Data General Westboro & N.C. Boeing Aerospace^ Unisys/Sperry@ IBM Raleigh DEC (VMS) Systems Means Japanese (*) U.S. OVERALL MEANS JAPANESE U.S. (*) RANKINGS: TECHNOLOGY/FACILITY INFRASTRUCTURE 8 Questions; 32=100% Key: A.J. = Applications Japan A.U. = Applications U.S. S.J. = Systems Japan S.U. = Systems U.S. = Japanese firms * COMPANY/FACILITY RANKINGS: POLICY/METHODOLOGY INFRASTRUCTURE 15 Questions, 60=100% COMPANY/FACILITY % S.J. S.J. *NEC/Switching Systems *NEC/Operating Systems A.J. A.J. A.J. *NEC *NEC Information Service Toshiba Software Factory Toshiba Software Factory *NEC Software S.J. S.J. A.U. A.U. A.J. A.U. A.J. A.J. A.U. S.J. A.J. S.J. A.J. A.U. S.U. S.U. A.U. S.U. S.U. A.U. A.U. S.U. A.U. TRW Unisys/SDC *NT&T Comm. & Info. Proc. Lab. Martin Marietta/Maryland Fujitsu Info. Proc. Sys. Lab. Hitachi Omori Works Unisys/Sperry Hitachi Software Works Nippon Systemware Fujitsu Numazu Factory Nippon Business Consultant Control Data Control Data Data General Westboro & N.C. Hughes Aircraft IBM Endicott Unisys/Sperry Cullinet AT&T A.J. Bell Labs Boeing Aerospace Boeing Aerospace Hitachi Software Engineering S.J. NT&T S.U. A.J S.U. A.U. DEC (VMS) Nippon Electronics Development A.U. A.U. A.U. A.U. Comm. & Info. Proc. IBM Raleigh Martin Marietta/Denver Electronic Data Systems Honeywell/Defense Systems Computervision Draper Laboratories Lab. RANKINGS: TOTAL FACTORY MODEL 23 Questions, 92=100% REFERENCES paper from this research project is Michael A. Cusumano, 1. The main An Approach to the Strategic "The Software Factory' Reconsidered: Management of Engineering." Sloan School of Ntenaaiiont 1987 Working , Paper «1885-87. Another completed case is "Hitachi; Pioneering the Factory Model for Large-Scale Software Development." Sloan School of WanaganiBnt 1987 Working Paper #1886-87. , One of the key documents in this literature, which also contains a wealth of references to other articles written during the late 1960s and early 1970s, is of course Frederick P. Brooks, Jr., The Mythical Man-Wonth: Eiiays on Software Engineering (Reading, MA, Addison-Wesley, 1975). Two other collections on key articles dating back to the early 1960s are Edward Yourdon, ed., daisies in Software Engineering (New York, Yourdon Press, 1979) and Writings of the Revolution (New York, Yourdon Press, 1982). 2. Burroughs Corporation, Annual Report, 1984, p. 15. Much of the basic description of SDC's business found in this section of the chapter is taken from this report, and will not be further cited. 3. Telephone interviews with Ronald L. Atchley, Director of Software Engineering, Systems Group, System Development Corporation (SDC), Santa Monica, California; March 27, 1987 and April 23, 1987. 4. Harvey Bratman and Terry Court (System Development Corporation), "The Software Factory," Computer May 1975, pp. 28-37. A more detailed discussion of this can be found in H. Bratman and T. Court, "Elements of the Software Factory: Standards, Procedures, and Tools," in Infotech International Ltd., Infotech International Software Engineering Techniques (Berkshire, England: Bratman, who had a BA in mathematics from UCLA, Ltd., 1977), pp. 117-143. was head of the Software Engineering Branch of SDC's R&D Division. Court, who also had a BA in mathematics from UCLA as well as an MS in systems management from USC, was Deputy Manager of SDC's Software Development 5. , Department. Bratman, H. and Court, T., "The Software Factory" (op. cit), p. 36, and Standards, procedures, and tools", in of the Software Factory: Software Engineering Techniques: Invit e d papers (Nicholson House, England: 6. "Elements 117-118. "Software Infotech International Ltd., 1977) p. registered trademark of System Development Corporation. Factory" In addition to their own experiences, they cited a 1974 study which had attempted, without success, to find such a correlation. See R.W. Wolverton, "The Cost of Developing Large Scale Software, IEEE Transactions on Computers Vol. C-23, No. 6, June 1974, pp. 7. " , 615-635. 62 is a ", . 8. Bratman and Court (1975), pp. 29-31. Bratman and Court (1975), pp. 28-29. There were truly commonly cited problems. See, for example. Brooks; Barry W. Boehm, "Software Engineering, IEEE Transactions on Computers , December 1976; Tarek Abdel-Hamid, "The An Integrative Dynamics of Software Development Project Management: Systems Dynamics Perspective" (Unpublished M.I.T Sloan School of Management Ph.D. Thesis, January 1984, literature survey on pp. 48-93; R. H. Thayer et al. "Major Issues in Software Engineering Project Management," IEEE Traiwactions on Software Engineering , Vol. SE-7, No. 4 (July 1981); C.V. Ramamoorthy et al. "Software Engineering: Problems and Perspectives," Computer , October 1984. Thayer's thesis for the University of California at Santa Barbara) surveyed 294 software professionals as well as 60 development projects in the aerospace industry, and identified seven major issues that repeatedly occurred: (1) requirement specifications that are frequently incomplete, ambiguous, inconsistent, and/or unreasonable (SDC #3 above); (2) poor project planning (SDC #1,2); (3) poor ability to estimate accurately project costs (SDC #1,2); (4) inability to estimate accurately delivery times for software products (SDC #1,2); (5) unavailability of decision rules to use in selecting the correct software design techniques and tools (SDC #4); (6) unavailability of decision rules to use in selecting the correct procedures, strategies, and tools for testing (SDC #4); (7) lack of standards and techniques for measuring the quality of programmer performance and the quantity of production that should be expected (SDC #1). This is cited in Abdel-Hamid, pp. 55-57. 9. SDC experiment 10. A 11 Telephone interviews with David Deaverand Clarence Starkey, SDC, 10/3/86. 12. Interview detailed discussion of the 4/1/87. will be forthcoming. with and SDC/Unisys director of software engineering, Name withheld by request of the interview subject. My thanks to David Finnell for conducting this interview under my direction, as part of a thesis project. For descriptions of sample U.S. experimental systems, see R.R. Willis (Hughes Aircraft), "AIDES: Computer Aided Design of Software Systems II," pp. 27-48; and Leon G. Stucki and Harry D. Walker (Boeing Computer Services, Inc.), "Concepts and Prototypes of Argus," pp. 61-79, in Horst Hunke, ed.. Software Engineering Environments (Amsterdam: North-Holland, 1981); and the 13. previously cited TRW articles. For reports on the Japanese systems, see Cusumano, "The Software Factory' Reconsidered," and literature references in the notes. Particularly well documented is productivity data at Toshiba. See Yoshihiro Matsumoto 14. (Toshiba), "A Software Factory: An Overall Approach to Software Production" (2 December 1986), forthcoming in Peter Freeman, ed.. Software Reusability (IEEE Tutorial, 1987); and K.H. Kim, "A Look at Japan's Development of Software Engineering Technology," Computer May 1983, pp. 31-33. , 63 15. Bratman and Court, "Elements of the Software Factory" pp. such references come from the two articles by Bratman and Other information in chapter, and will not be further cited. derived from personal telephone interviews between SDC Cusumano or Finnell. , 119-121. Many Court in this the chapter is personnel and The project planning and control area is referred to as scheduling, 16. monitoring and control processors, and is included as a part of the data base generation and ma in ten a nee function in "Elements of the Software Factory" In "Elements of the Software Factory", 17. Analysis and Test Certification Processor. 18. David Deaver, 19. In in this tool is called Program telephone interview with Cusumano, October 1986. See the survey, only a few facilities reported reuse rates of over 50%. 'The Software Factory Reconsidered," Section 2. 20. Clarence Starkey, SDC, telephone interview with Cusumano, Oct. 1986. in Frederick P. Brooks, Jr., The Myhtical Man-Month: Essays on Software Engineering Reading, MA, Addison-Wesley Publishing Company, 1975. 21. , See R. Goldberg, "Software Engineering: An Emerging Discipline," IBM Systems Journal Vol. 25, Nos 3/4, 1986, pp. 334-353. A discussion of this shift in focus to enviroments can also be found in Horst Hunke, ed North-Holland, 1981). Software Engineering Environments (Amsterdam: 22. , . . , 23. An excellent summary of this field and literature bibliography can be found in R. Goldberg, "Software Engineering: An Emerging Discipline," IBM Systems Journal Vol. 25, Nos. 3/4, 1986, pp. 334-335. See also the references in The Software Factory' Reconsidered. , ' B.W. Boehm, "Software Engineering", in E. N. Yourdon, ed.. Classics Yourdon Press, 1979) p. 349. Software Engineering (New York: 24. in Boehm, B. W., 'Seven Basic Principles of Software Engineering", in Software Engineering Technigues — Invited Papers (Nicholson House: 25. Infotech International Ltd., 1977) p. 79. and "Hitachi: See Cusumano, "The Software Factory' Reconsidered, Pioneering the Factory Model for Large-Scale Software Development." 26. 27. " Boehm, et Productivity", "A Software Development Environment IEEE Computer June 1984, pp. 30-42. al, in for Improving , 28 See Matsumoto, "A Software Factory.'" 29. Barry W. Boehm and Thomas A. Standish, "Software Technology in the Using an Evolutionary Paradigm," lEE Computer November 1983, pp. 1990's: , 30-37. 64 30. William G. Griffin, "Software Engineering GTE", in IEEE Computer , November 1984, pp. 66-72. 31. David H. p. 12. Freedman, "In Search of Productivity", Infcuystams , Nov. 1986, David Wessel, "Software Writing is Becoming Automated: New Products Speed Programmers' Tedious Task", The Wall Street Journal Sept. 24, 1986, 32. , p. 6. Leon G. Stucki, et al., "Concepts and Prototypes of ed., pp. 61-79. 33. R.R Willis, "AIDES: Computer Aided Design Hunke (ed.), pp. 27-48. Freedman, Infosystems 36. Freedman, p. 37. Wessel, p. 6. in Hunke, of Software Systems-ll" in 34. 35. ARGUS", Nov. 1986, p. 12. , 14. 38. Case studies of these firms are presented in other working papers articles, as cited earlier and "The 'Software Factory' Reconsidered." See Cusumano, "Hitachi: Software Development." Pioneering the 'Factory' Model for Large-Scale 39. Matsumoto, Y., et (ed.), pp. 305-318. 40. and al, "SWB System: A Software Factory", in Hunke Noritoshi Murakami, Isao Miyanari, and Kazuo Yabuta, "SDEM and SDSS: Overall Approach to Improvement of the Software Development Environment," in H. Hunke, ed.. Software Engineering Environments (North-Holland, 1981), pp. 281-293. 41. Matsumoto, Yoshihiro, 42. Production", in IEEE Computer "Management , Feb, 1984, p. of Industrial Software 70. Tajima, Denji and Matsubara, Tomoo, "The Computer Industry in Japan", in IEEE Computer May 1981, p. 96. 43. Software , 44. Mizuno, Yukio, March 1983, pp. 68, "Software Quality 70. 65 Improvement", IEEE Computer , Is 5 3!; 031 , Date Due FEB 2.^ db:i NOV 1 6 Q£ 1990 U '90 f Lib-26-67 NirT 3 LIBRARIES TDflD DD4 flSl SD4