MIT LIBRARIES DUPL Basement 3 TOaO DD7EflflEM 1 J*h«&,;^^ ""-x omm I'^'S^-B'^H >!fe5>i HD28 . .M414 n ALFRED P. WORKING PAPER SLOAN SCHOOL OF MANAGEMENT System Development Corporation ; Defining The Factory Challenge 1 by Michael Cusumano WP 1887-87 Revised Dec, 1988 MASSACHUSETTS INSTITUTE OF TECHNOLOGY 50 MEMORIAL DRIVE CAMBRIDGE, MASSACHUSETTS 02139 . M?t:M*'-i>£',;^ 0^ OB itO CASE 1 SYSTEM DEVELOPMENT CORPORATION: DEFINING THE FACTORY CHALLENGE' ' Contents Introduction Origins of SDC and the "Software Factory" Factory Components: Methodology, Organization, Tools Initial Problems Revisited Factory Performance: New Problems the Factory Created Managers' Assessments and the Japanese Challenge Conclusions INTRODUCTION System Development Corporation (SDC), established of the became Rand Corporation, became part a facilities Burroughs in In 1987, Unisys/Sperry's had approximately $2.5 across the U.S. large-scale, SDC billion The company, in in 1986 Burroughs of operations, primarily in defense revenues and 6,000 employees since in inception, has specialized its in real-time applications systems, which often take years to develop management control problems involved a and then merger and run into hundreds of thousands and often millions of management 1956 as a subsidiary 1981 division of the Unisys Corporation after the 1986 and Sperry. systems, of in in in such lines of code. projects the mid-1970s to launch the first attempt in The persuaded SDC the U.S. to create factory-type organization for software production. SDC's Software Factory was part of the larger movement among software researchers and developers during the early programming experiences and programming methods, and identify useful 1970s to support management procedures. reflect on tools, design Analyses various of and IBM's development of the operating system for the 360 family of mainframes, as well as numerous other projects for the U.S. military, NASA, other government agencies, and private industry, contributed to a body of literature on practical 1 SDC Software Factory •5 software engineering that began emerging problems faced in reports on the SDC Software Factory published in Two at this time. 1975 and 1977 were part of a and presented convincing arguments promoting engineering or this literature, factory-type discipline, planning, and control as a model for managing large- scale software development. SDC allowed factory effort to lapse its in although the experiment 1978, has had considerable influence on industry practices The factory procedures became the U.S. and abroad. in model for SDC's corporate practices and for a the software standards later adopted by the U.S. Department of Defense. But perhaps the impact largest the of SDC experiment NEC particularly at Hitachi, Toshiba, and been has where managers -- Japan-- in iiave emphasized the factory approach even more than the U.S. pioneer. This case The organized into four parts. is Factory initiative in a company from the section analyzes the main the context of SDC's evolution mid-1950s through the early components of the Factory The second 1970s. at inception its discusses the Software first as 1976 -- in procedures, tools to support the development process, and dividing labor between software production factory. This is -- system design, detailed followed by design, an done a matrix organization customer at sites, and testing coding, account of the dissolution after less than three years of operation. standardized set of a -- factory's The next and actual done opening and section compares accounts of the performance of the factory with the five major problems staff the in SDC designed the factory to solve, and identifies three more serious problems the factory experiment created: matrix system, and resistance organizational changes the assessments from imbalances on the in the work flow, breakdown of the part of new system required. SDC managers of middle-level The final mangers section what the factory achieved and 2 SDC Software to the recounts failed to Factory achieve. The most results for significant positive identification of software development as a SDC appear to have been the major management issue deserving corporate attention and resources, and the standardization of better practices On the negative for design, quality assurance, and project management. the factory represented somewhat of company and with the SDC had a side, "mismatch" with SDC's strategy as state and type of software technology dealt with. it reputation for producing innovative software systems for built a a a variety of customers; this strategy required a very flexible, job-shop type of organization, rather than a factory structure. the forsee degree to which architectures would make tools controls Finally, lack of computer languages and portable difficult to achieve the factory goals of reusable Management and code. reorrenting it the Furthermore, management did not also failed to project managers to the so that the factory would manage other problems, such new system, and introducing have enough work to keep it as sufficient operating. rather than focus on the benefits of the factory organization and allow enough time and commitment resources to the effort for when its it succeed, to main advocate executives top in ended their management moved on to another division. ORIGINS OF SDC AND THE "SOFTWARE FACTORY" Companv Background System Development Corporation originated as a nonprofit, government- sponsored corporation on the model of MIT's Lincoln Laboratories and MITRE Corporation. In the mid-1950s, the U.S. Air Force gave a contract to the Rand Corporation to build what would become the world's first real-time command 3 SDC Software Factory and control system for air defense, Rand management then decided an independent entity, SAGE (Semi-Automatic Ground Environment) System Development Division to spin off its employees then 1956 to 3500 by 1959. in the late 1950s, Air SDC designed a program to build SAGE by command-control system for the U.S. Strategic which ran on an IBM mainframe, exceeded a programmers For example, after completing Command, SACCS (SAC Command and Control). length for of and expanded from about 450 variety of other projects, a as named System Development Corporation. The new company required increasing numbers SAGE and . a million lines of SDC at that time. The operating system alone, code, an astounding then went on during the 1960s to build other complex software systems for the U.S. government handle air to defense and communications, satellite control, various types of simulations, and the Apollo space missions. management systems for Projects for the private sector included information hospitals, the Science National Foundation, state governments, airports, libraries, and other customers. The reputation SDC gained from these "pioneering. . . projects was as a product innovator, timesharing technology, user- oriented data management and display systems, and tools and languages enabling programmers to interact readily with computing machines.' But the need to attract new business and hold talented employees with higher salaries led SDC's board of directors nonprofit status abandon the to 1969 and become more aggressive at competing for contracts in across the U.S. and abroad. The transition procurement for proved air to defense be difficult. systems, manufacturers such as Boeing and TRW Years of decline vertical integration into software into the software contracts business of about 2000 increased competition for the type of work 4 SDC in government by hardware programming, and entrance new firms after did. 1960, greatly Another change after SDC Software Factory SDC 1969 was that the U.S. government no longer guaranteed of contracts suppliers." one of the Department as To survive in a of Defense's a steady stream special "non-profit" more competitive setting, SDC now had to submit low-priced bids for a wider range of software and hardware systems and for different types of customers, not only the Department of Defense. The need to write software for a variety of mainframes, minicomputers, and smaller machines made by DEC, Gould, Burroughs, IBM, Amdahl, Univac, and other computer vendors complicated SDC's system design and programming tasks. Under these conditions, SDC management employees whenever contract orders 4300 in 1963 to 3200 selected Dr. 1969 and to merely 2000 by 1971. George Mueller, and reduced employees thus dropped from the board of directors launched financial losses, 1971 in fell; retrenched a a its peak of After continued nation-wide search and who had gained in NASA and TRW in a reputation for "cost reductions, technology development, and marketing," as the new Chief Executive Officer. Mueller had designer for Ramo-Wool ridge Corporation vice-president for administrator for R&D in a his career as the 1950s and then worked as senior vice-president method of operations management. in One issue General Dynamics.^ product/market strategy and for the company was how more orders from customers not dependent on U.S. defense spending. to learn Procurement more about integrating officials in a the Gemini and Apollo flights during 1963-1969, Mueller quickly set out to change SDC's was system a TRW's Space Technology Laboratory, an associate NASA during and most recently as in started hardware products with to get Another software. the government and private industry had gradually come to prefer "total systems suppliers" -- companies that could design computer hardware and communications devices as hardware vendors, such as Boeing, were developing 5 well as and install software. Many this capability SDC by setting up Software Factory in-house software software development and divisions to firms were like no longer contracting A third SDC. industry was "maturing" and it was issue As recounted by the company history, Mueller advantage. did not appear to him that out much as competitive the software felt SDC, plagued with unpredictable demand for costly, custom job orders, was offering significantly better product or process technology than other firms: The problem facing SDC in 1971 was that we were building custom software on a one-by-each' basis, in a fast-maturing industry where SDC's competitive edge had all but eroded, predominantly for a single customer -- the Department of Defense -- with unpredictable demand for our services and at a price that covered our labor plus a small government allowed markup. The answer to growth in revenues and profits was clearly not in doing more of the same. Taking advantage of the streamlining of all crisis atmosphere, Mueller launched review and a operations -- planning, finance, administration, personnel, reporting and control systems -- and created profit centers to make managers He brought directly responsible for their margins above costs. managers from Ford, and Corporation, Singer. personal charge of the hardware capability, software. RCA, Rockwell, Computer Sciences Dynamics, General Of equal or even greater significance, R&D program and focused [and] methodical a professional in it factory' on creating approach a to he "took "corporate developing " Along with these efforts in operations rationalization and R&D, Mueller successfully diversified into non-defense systems such as for air traffic control; command, control and intelligence for local governments and police departments; custom work stations; communications networks; systems. Meanwhile, By and management information 1974, defense contracts had fallen to just SO^b of SDC doubled revenues from 6 $45 million in 1971 SDC's business. to $90 million SDC Software in Factory 1974, and employees to 3900. Profits recovered, but Mueller SDC competitive advantage for was still seeking a that would rely on the technical skills within the company. ^ The Factorv Initiative This was the atmosphere which produced the first U.S. software factory: a CEO who too costly, factory, believed that the industry was maturing, job-shop production was and as all operations explained in in the company the company history, had to be rationalized. was an attempt to The "embody Mueller's concept of a streamlined approach to the manufacturing of software," and thereby make SDC "the scientifically, first company to economically, and reliably."'*^ develop custom software more While "state of the art" in terms of product technology, fixed-price contracts, which meant over-budget. SDC SDC projects tended to be they were also usually on money every time lost a project went This was usually the case: were pushing the state of the art in real-time command-control information systems. All had fixed prices or cost ceilings. All called for major software developments to be performed away from SDC's Santa Monica headquarters, near the customer. And all suffered from early schedule and, consequently, cost difficulties.'^ All Careful project control or reuse of code to reduce development time and costs were not practices SDC managers commonly followed. In fact, when Mueller joined the firm there was no "standard policy or engineering procedure for company-wide software development. to be so unique as to defy a common . . each programming project was thought policy. development was deemed more an art than a The entire domain of software science by its practitioners." Jim Skaggs, SDC president after the merger with Burroughs and the manager who 7 SDC Software Factory ' headed the Systems Group SDC usual state of a operations one-time miracle' seems Mueller at in the time of the Software Factory, described the three places at once.' have met to or little a study He put Terry Court, tools. senior project manager in B.A. a no resistance R&D in Division when engineering approach the in matiiematics from SDC trademark. with a master's degree in Mueller asked John B. "Jack" Munson, transfer organization the tools mathematics a divisional charge in in mathematics until Court, research in to when 1975, a task SDC's line ' Knox from in the 1950s, College. after graduating with Initially, into he worked as a a degree Texas, stemming from a was over Munson need to recalled management during the 1960s. motivation his in mathematical Unisys vice president running SDC's space shuttle software services Houston, of Court hand- vice-president, to form developed being programmer on SAGE and then moved up a 1972 . Munson had joined SDC Now of systems management from USC. Bratman, and others worked on the project for three years to fall a and called the effort "The software development," to picked his team, which included Harvey Bratman, another B.A. force up set UCLA who was SDC's Government Systems division, Software Factory," registering the name as an UCLA he Mueller gave him the goal of achieving "a methodical, standardized the project. from creating in "' Software Development Department within the to "We were engaged the early 1970s: in to work on the factory in as improve control over large-scale system development: the Defense Division at the time and we [had]... a were in trouble. Management wasn't was spending most of my time on an airplane and George Mueller, who was then the chief executive of the company, who had been working in the R&D Division with these guys on his concepts (I think he was really the one that coined the name Software Factory, and applied it to the work that they were doing in the R&D Division on primarily tools), had been investing maybe three years and several millions of dollars into this R&D project that Terry I in couple of big programs that getting visibility into them. I 8 SDC Software Factory " and Harvey were doing over there. And so we got a confluence at that point in time of, if you guys are doing so well in the R&D effort, we need to convert it over to something real. And so, he tapped me at that time and said, could you at least come in and look at the R&D effort and tell me how we could turn this into making money for the company. You know, convert it from being a sandbox And so got tapped with this in R&D into something productive. project. By that time it was already deemed the Software Factory. '° I Bratman and Court notified the world the journal Computer studies software of titled , of their efforts in a 1975 article in development had found a poor correlation programmer productivity and experience, and suggested of a and well methodological "-^^ development process. They discussed how "The Software Factory."'^ between this indicated "the lack founded body of knowledge on And, despite the continued refinement the software of tools and programming concepts, Bratman and Court complained these "are either not used at all in system development or, when they are used, they are not used integrated manner, programming project particular that the and hoped 1) a hoc each time but are put together ad is SDC begun. "^^ There were a in an system large five categories of problems in researchers had encountered in software development factory approach would ameliorate: Bratman and Court referred to the absence of "standardized approaches to the development process. Each Lack of Discipline and Repeatabilitv time a software system with the process, is : developed, the process consequence that we never is partially reinvented, become very proficient at this nor are we able to accurately predict the time and resources required. 2) Lack of Development Visibility : often used to indicate progress They complained that code production was in 9 completing a software project, but this SDC Software Factory did not measure "completeness of performance requirements, or how well the code implements the design. itself, testing did problems it at become clear how this stage phase phase, to and as Not until system " was progressing; and fixing exceedingly expensive and time consuming... "is Managers have difficulty well a project the design in a tracking the progression of the system from result have problems they in planning and controlling the developing system." 3) Changing Performance Requirements The problem here was : "Performance requirements are subjected to interpretation that and change as soon as the system design and implementation process begin the translation of requirements to computer programs." to specify completely coding, Not only was it nearly impossible performance requirements before detailed design and but there were often disagreements on the meaning of certain requirements, and changes demanded by the customer. 4) Lack of Design and Verification Tools level languages, debugging data-management systems, tools, facilitated subroutine coding and debugging. "There are few widely ijsed tools such as highlibraries, .and But Bratman and Court asserted that these activities accounted for only about costs. -- Several tools : 20*^ of development and techniques 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) Lack of Software Reusability required similar logic, : There were many application areas that but there was 10 little capability SDC to reuse software Software Factory "Extensive components, use of off-the-shelf software modules would significantly lessen the risk and shorten the time required for software development. "^^ To solve these problems, Factory," which supports the they defined concepts Bratman 1975 in "The Software Court offered integrated "an as structured of and programming, set of tools top-down that program development, and program production libraries, and incorporates hierarchically structured program modules as the basic unit of production." hoped to attack through "the careful system component structuring, the specific relationship with performance requirements, inherent in None software developed of the "revolutionary." procedures in and the improved documentation the factory. and tools "^"^ under development were "new or But Bratman and Court insisted that, when integrated and applied consistently, they should introduce significant improvements size, complexity, application, result in in process with the potential to a developing software systems "regardless of or programming language." offered "a disciplined, repeatable process terminating budgeted costs and on or Reusability they A predefined schedule." a reduce the need to re-tool for each in The factory thus specified results within specific goal was to eliminate new system, thereby allowing the organization to get projects underway quickly and improve, through capturing the benefits of experience, specific functions such as program design, code production, testing, and project management. "^^ Although Bratman and Court complained about the unsystematic use of best methods as well as tools, in the 1975 article, they proposed a software factory model consisting primarily of an integrated set of standardized design-support and project-management tools. This can be seen n in their early definition of the SDC Software Factory Software Factory quoted above. The 1975 article did not even mention what Bratman, Court, and Munson later considered the most important part of the factory, the Software Development Manual, But, while SDC had also known as the SDM handbook. tried to introduce a factory infrastructure before having a factory process, Munson explained that, by the end of 1975, they had decided this approach was a mistake: Court and Bratman both came to work for me over in the Defense And we spent about a year or so, prior to the time we set Division. up the factory, thinking through the implications of what they had, and what the real problems are. One of the major conclusions we came to at this point in time was that tools can't drive the Tools have to support the technology. And that what technology. the tools seemed like a great deal but, without a methodology that the people were using, and that the tools were supporting, it was the wrong way to go. So what we did was stop the tool development at that point for a bit and spend about a year working on the methodology, which was the Software Development Manual We got that produced, and then we essentially fitted the tools that they had to the methodology and then defined some new tools that we wanted. "^^ . By 1976, Munson's team was viewing the factory as around three discrete elements management; of a new organization -- standardized of the design had to in and production process; and tools. actual in well as the The organizational innovation they introduced consisted whereby project managers would be responsible and a set This was ultimately how they viewed these elements, support the standardized methodology as sites while structured procedures for design advanced design-support and project-management the order of importance a "facility," of that the tool set new organization. a matrix system for system design at customer other managers would take responsibility for building and testing the programs in the factory. Munson recalled the factory components and their priorities: 12 SDC Software Factory When think of the "Software Factory," think The policy infrastructure -- the procedures The tools manual -- is one piece of it. I I of three elements... development implement that engineering practice is a second element. But the third is organizational. We included an organizational approach as part of the factory and that included two pieces, an external and internal piece. The external piece was a matrix organization, i.e. the work would be system engineered outside the organization but the work would be And within the organization we performed within the organization. looked at breaking down the work into, if you will, (1) design, (2) production and (3) test as three independent spaces, with separate organizational and management responsibilities, although we thought But we thought of it some of the people would flow with the work. in the order that the most important piece was the procedures. The And then the third second most important was the organization. In a priority sense, the tools were most important was the tools. meant to support the first two. So the fact that we didn't have a tools available didn't really bother us that much. We thought lot of '^° there. we would eventually evolve . in . This broader view of the Software Factory can be seen Bratman and Court offered in the to in the new definition their 1977 article: The Software Factory Concept [is] a software development facility consisting of an integrated set of standards, procedures, and tools that supports a disciplined and repeatable approach to software development and replaces ad hoc conglomerations of developmental techniques and tools with standard engineering practices.-^' METHODOLOGY. ORGANIZATION, TOOLS FACTORY COMPONENTS: Element For a 1: Standards and Procedures year and a half during 1975-1976, Munson's team identified standards and procedures -- general rules and specific guidelines be applied to all software projects, based on a life a set of -- that could cycle model of software development and covering the major activities, events, and product components common to all projects. They wrote these down 13 in an engineering handbook, SDC Software Factory the Software Development Manual, methodology was consistent with, and standards, military " ^° 2ft libraries. The 1976. in instances borrowed from, existing "U.S. in and the better The required programming practices included top-down program development, and program structured design and coding, production SDM, as Air Force Manual 375 requirements, U.S. practices. commercial known also addition, In SDM outlined a management and control process, providing guidelines for planning, project control, review and evaluation procedures, and quality assurance. manual in 1976, Mueller directed that After Munson's group finished writing the all line organizations adopt it for current and future projects. ^^ Deciding on the standards and procedures for the factory was essentially SDC had done, matter of examining previous projects a reviewing records and interviewing personnel, determining what had worked well, and codifying what appeared to be "best practice." factory architects, to provide factory more than just working reasoning from a in 1977: similar a a This process was necessary, according to the common language and methodology building pile of housing tools. a large Bratman number and Court of to make the programmers explained this The procedures hold the disparate portions of the Factory together: the standards are the means of making the Factory efficient and easy to use and learn. Without the standards that establish the Software Factory methodology and the procedures that establish the precise way of doing a task, the Factory is little more than an agglomeration of software development tools. Standardization, initially established and faithfully maintained to reflect changing conditions and continual improvement, is essential to the success of the Factory. The ... standards. .establish a working environment where the creative design solutions of key technical personnel can be implemented in highquality products, on schedule, and within budget. More specifically they: . in the software development process; of transfer expertise from one project to another; rapid allow -- establish a consistent framework for cost estimating; -- promote repeatability -- 14 SDC Software Factory — — — — make it possible for people to common understanding of goals; new mode efficiently and with a provide the capability to measure project progress in a realistic manner; enforce technical and management techniques; establish a basis for assuring and measuring software quality. ^ Munson explained the compilation view: interact of the SDM handbook from his point of an exercise to avoid having to "reinvent the basic process" with every project, as well as to provide a transition vehicle to of production move into the factory by standardizing around good practices, with more detailed guidelines than the usual "high-level buzz word[s]" offered: The reason for it [SDM] was really one that said we need engineering handbooks for our people to use. We shouldn't reinvent the basic process. How do you build a building? You don't reinvent it every time. We know these things, and we know what good practices are, so lets put them in a handbook that we require our engineers to use. And that was really the reason for the detailed handbook... [I]t wasn't that it was any big original concept at that point in time. A lot of people recognized it and were trying to do something", and were doing good things. ,. [0]nce we got that handbook done, we worked on the organizational concepts. That was when we implemented the Software Factory by collecting up all the software projects that were being done in Santa Monica at that time. We had already picked some of the better people around and had them working with us on the handbook for a year. We had some of the best people out of the line engineering organization working with the R&D people in developing that handbook. We as a team became the . . transition vehicle."^' The first standards that SDM development life-cycle," composed of performance, development, design, maintenance (Figure 3.1) outputs, completion. functions. . .and .Each phase can, each of which yields a . ."^^ a set were for six phases: test and a "time-phased software planning, requirements and acceptance, operations and Each phase contained specific "objectives, inputs, criteria in for corporate review of successful turn, be broken down into smaller activities, product; each product requires a standard, each activity procedure." 15 SDC Software Factory 7*«^jt(«* 'igurt I: Softwarm ayatsma davalopmmnt lifa^cyala The Planning Phase required strategy for program development and a a schedule of measures to carry out the plan. things: It set up the specific tasks required to deliver the product. (1) It identified identified This activity accomplished three and allocated resources needed procedures for monitoring and And to complete the tasks. controlling Managers were responsible for drawing up a detailed project (2) (3) it performance. "master project plan," which included the following elements: Software Development Plan Project Work Plan Project Organization and Staffing Plan Project Budget Documentation Plan Configuration Management Plan Quality Assurance Plan Project Monitoring and Control Procedures. In the Requirements/Performance Phase, managers had to "delineate and describe the parameters, software and requirements." system's means the This included functional for verifying deciding on characteristics that and performance system meets the these computer languages and design standards, selecting production tools, and "investigat[ing] available software modules that could potentially perform the required functions." The Design Phase system structure in of the higher-level completion of also all a called for determination of the details of the software top-down fashion -- "continual functional decomposition modules into more and more detail the modules decided on had to decide how to in -- and continued the requirements phased. until Managers develop the product "by multiple teams without excessive coordination." result of the design phase is a system representation which consists of descriptions of all system components (modules, data elements, and control logic); their dependencies and relationships, both to each other and back to the performance specification; and The end 17 SDC Software Factory the accompanying schedules and resource allocatiohs. In the Development Phase, programmers completed detailed designs of the components identified in the computer program's design specifications, coded the modules, and verified their correctness. tracked tool A Program Production Library (PPL) version of the system as each The SDM provided evolved. it extensive examples and guidelines on how to complete and document top-down, hierarchical manner, culminating modular design in representation .consisting of operational code." .. a The Test and Acceptance Phase began "with delivery package to the PPL for testing The basic objective was by the customer." worked well as reliably and ends with acceptance of the determine to of in a detailed a system program the program system the coded modules if conjunction with each other and the system hardware, in performed according requirements. to the customer's and Maintenance Phase consisted of installing the system, as The Operations training support personnel, correcting errors or inefficiencies, and then adding improvements as necessary. SDC updated it, the manual every couple of years and in 1987 was still although the company was preparing to adopt new military standards. not clear to Munson, It was however, that the military handbooks could ever provide adequately detailed guidelines to manage the development process. "the Department of Defense military standard than using our Software Devetopment Manual and is at a you He believed level significantly will still need higher something equivalent to the Software Development Manual to implement the Department of Defense standards. Element 2: "^"^ Organization As noted, Mueller, Munson, and other SDC managers did not conceive 18 SDC of Software Factory the factory by SDC initially as being more than this set of tools and methods for use they did not around the country; facilities Software Factory as at think of the first A major reason was a physical, centralized "facility." that the Department of Defense frequently required software contractors to locate development teams hardware at the large centralized facility scope were the Other factors that argued against sites. able to take advantage of economies incompatibility of many computers programs, and the wide variety of applications involved As a hardware tools in SDC wrote which for programming jobs. result of Department of Defense preferences, as well as market and realities, SDC had and decided on its evolved a tradition own practices. where each team Yet this tradition tolerated expensive growing shortage of skilled programmers, it proper set systems, of experts telecommunications, frequently. It managers to get etc., operating on in Due group a programming jobs as was becoming harder different locations or seemed more of logical to specialists well as the Mueller, together methods and After studying these problems, in compilers, who were in tools to one facility all large number of economies of scale Atchley other tools and bring the them:^ in Santa Monica to and techniques, as of personnel and providing for cross-utilization a totally formalization of the type of organization 19 new way The well as remote-terminal of software projects concurrently, taking saw the factory not as SDC 1976 Munson's group recommended that and computer technologies that allowed "a single set a move the software SDC's System Division contracted for. would use standardized and control interfaces, and site to a to find the willing to Munson, create a centralized software development organization build or control own built its redundancies and was often impractical for the software vendors. SDC and scale of a to monitor advantage of scarce skills. to SDC had used organize for SDC ""^^ but as a SAGE and some Software Factory other major development projects: [the Factory] 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 wejust kind of moved that concept into place and made it more formal."^" We implemented As in the past, the f-actory structure still required the division to Program or established program offices at each customer site (Figure 3.2). project managers maintained responsibility throughout the life-cycle for program management and control, customer relations, requirements and performance specifications, system engineering, and quality control and assurance. the actual software and test hand off it, system specifications three groups within the factory: To build however, program managers were supposed to what was essentially an "assembly line" to of Computer Program Design; Computer Program Bratman and Court expected this division of labor to facilitate continuity and pooling of skilled personnel, the Development; System Test and Verification."^' use of a visibility at centralized program library, familiarity with a set of tools, and and control over product development through the review procedures the end of each development phase: The basic tenet of this philosophy is over time if essentially the same that increased benefits accrue people are responsible for Software activities in the Factory. production Familiarity and facility with tools is gained with repeated use; general purpose libraries are built up which simplify new production efforts and centers of technological expertise can be maintained which allow the best talent Within this production to be applied to multiple activities. 20 SDC Software Factory organization several further divisions seem to make practical sense in accomplishing the management objective of maximum visibility. This involves organizationaJly separating design, production, and test. Since the end result of each group's activities is a tangible product, the requirement for turnover forces top-level visibility and represents a natural point for review and quality control.^" 21 SDC Software Factory Software Factory Organizational Principles 01 >< r — 3 ^ — t/1 < 12 3 i o ;3 ^ • u Ci a i •» 3 1 ^ «* S 3 r 3 3 5 5 = i 3 3 wi i. r ^ :. ••* =: =!-» '^ o Q 3 r ^ ^^ • • • ;j • The SDC authors, at least in recognized that separating system 1977, design from program production offered both an advantage customer, and potential disadvantage a in — closeness to the remoteness from the factory. hoped that standards and communication interface procedure" in — normal, "a They well -understood could overcome any problems: One of the major advantages of this .allocation of responsibilities is that the program office is not tied to the computer location. In fact, it is highly desirable for the program office to be co-located with the customer/user to assure the rapid unambiguous coordination of program activities. On the other hand, remoteness of the program office from the development facilities does present a set of potential advantages and challenges. The problems of separation must be mitigated by a normal, well-understood interface procedure. Benefits include the formalized specificity required for communication between the project office and production activity which provide management visibility and prudent checks and balances. ^^ The Tool Set Element 3: "Factory Support System" was the name Bratman and Court gave to the "basic structural methodology.^^ and control components" designed This ran on a support the factory to host computer (an IBM 370, initially) and used the facilities of the host's operating system to automate or partially automate many procedures for keeping track of program development and collecting data (Figures 3.3 and 3.4). The system, which was written to facilitate transportability, higher-level language in a had several capabilities: support of top-down development automation of management support maintenance of requirements through implementation provision of library/history capability 23 SDC Software Factory complete symbolic system data control capability semi-automation of program checkout. The tool set included three main The Factory Access and sub-systems: Control Executive (FACE) performed control and status gathering services for all processors, supported the factory command language, system development data and processors with Production Library services. Control the milestones, tasks, provide schedule, components level Integrated Management, (IMPACT) Techniques base, resources, utilized production system components, resource computation, data the integrated provided Program Project Analysis, base and on information and their relationships and status reports at tlie to individual or summarized at any module or task hierarchy level. The Project Development Data Base established data bases for each project using the factory and kept track of test cases, all schedules, tasks, specification components, and along with the copies of each program module and the up-to-date status of the project. This tool actually consisted of two databases, one for software development and another for project control. 24 SDC Software Factory Software Factory Architecture IMPACT Capabilities J 3 Z2 E 3 5l2 e o I ft* « - • The Project Development Data Base facilitated the automation of development, management visibility, configuration control, and documentation. The Software Development Data Base extended the concept and kept copies of modules from their completion as object-language program of a program library first functional definition The programs. Project through their Control Data Base maintained the system and program descriptions and supporting management data, was oriented toward the software system structure and the which activities performed to develop the software system. IMPACT was manager of a the central software project factory management tool. in This assisted the planning and monitoring the production of various items, such as specification documents, program modules, user manuals, etc. for which his project was responsible. "It helps him plan, monitor, and control the work; define and control the software configuration; and ensure the observance of quality assurance measures. management reports. In potential and difficulties structured It assists him in the preparation of the evaluation of project progress, developmental trends." and IMPACT in also spotti-ng supported programming and modular design by fostering the creation and integration of a hierarchical structure of program components. input data, IMPACT also forced a planning discipline on project requiring them to know and define relationships among them. all In preparing managers by the elements of the project and the Elements included: requirements and deliverable items requirements and program functions 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 27 SDC Software Factory and the resources necessary activities impact's project management support them. tools fell into three functional areas -- data and maintenance, base generation to planning and control, project generation. Data bases were built by providing such information descriptions of program items and Data activities. and report IMPACT to and be inserted could as processed interactively during the development cycle. Project planning and control involved three major functional modules-- the Scheduler, which derived and optimized critical path schedules and resource Trender, the allocations; which tracked trends and anomalies in project performance; and the Threader, which interpreted the hierarchical structure of the software system and the organization of manager or system architect could direct the Threader is, call For example, project work. to "pull a thread, " a that for a trace on the development status of elements at various levels of The report generation function abstraction. information stored Configuration Modification included the Management Summary, Index and Status, a in access to the Reports which Resource Allocation, Configuration Summary, Modification Summary, and the Module Run Summary reports. not only assisted "constituted IMPACT provided the development and control data bases. in could be requested of These Index, capabilities project planning; according to Bratman and Court, they also powerful modeling capability designed to significantly increase the project manager's efficiency and effectiveness." Several additional tools provided for Automatic Documentation Processor documentation, programmer. using comments a variety of other support functions. (AUTODOC) produced program and system inserted into tlie program modules Program Analysis and Test Host (PATH) was analyzer that analyzed a source program and 28 inserted calls a to by tlie program flow a recording SDC Software Factory program at appropriate locations. Bratman and Court claimed ' provide information about the structure of the program, to aid Data Definition Processor of testing. defining data languages for system programs written assure that to well as several the of in thoroughness means of central a common programming system would have Test Case Generator (TCG) was an automatic technique for designing test data. tool that in program modules all compatible references to data. modeling (DATADEF) provided this helped to Top-Down System Developer (TOPS) was provided the capability to describe and verify describe much of the control and data interface logic a a design, as in the actual coding language. Bratman and Court claimed the Factory Support System was "flexible" the sense that This flexibility it allowed for was new necessary, completed their planned tool tools to Engineering R&D group had Systems in Group, 1977 and the staff in a good editor. Bratman and Court were yet 1987 was director of the successor to the Software "We Factory, admitted that some of the planned tools never materialized: don't have not development when the factory went into operation. Ronald Atchley, who joined the factory Software be added as they became available. because the too, in ... We had to still do the traceability by hand..."'*^ Yet totally confident they could build a fully automated software factory and concluded their 1975 and 1977 articles with identical words of optimism: Our long term plan is that the Software Factory will be augmented by the continued development of more sophisticated tools and techniques such as application-oriented process design languages, re-usability technology, correctness verifiers, and cross compilers and will therefore evolve into a truly automated software development facility. ^*^ 29 SDC Software Factory The Factory Opening and The Software Factory programmers located recalled the site: were in a in facility SDC an a building in December 1976 with about 200 the center. in stands, but we've moved out." As expected. Jack Munson Software Engineering Organization established within the in to the SDC Systems new Division. put approximately 10 major projects through the Software Factory between 1976 and 1978. came We Everyone had an outside window. served as the first manager of the factory, which formally belonged SDC Atchley Santa Monica, California. in block long, two stories high, three long corridors with cross corridors and patios still opened "That's the only large open office we had at that time. building about That building Dissolution All, according on time and within budget. SDC adopted to Munson and the company The company history history, also asserts that the factory practices as corporate standards, with Munson and his chief deputy moving upstairs into higher management 1978 to oversee this in transfer process: Mueller and Skaggs extended the discipline Munson was promoted to corporate vice president responsible for all software development in the corporation, while Hamer [deputy manager of the Software Factory] performed a similar function as a division vice president for the Systems Group. In the spring of 1978, throughout the company. In reality, the factory had been gradually dissolving as the number of new projects going through the facility declined, reaching zero shortly after left. Munson whimper." It recalls that the Software Factory ended "not with a Munson bang, but a simply "devolved" out of existence: New stuff didn't come in. They started just sort of disintegrated. Software Factory stayed and eventually it The letting stuff go out. then it became a functional staff became like a one project thing, And it just kind of disappeared by dissolution, organization. It became a resource for staffing other programs and got evolution. It . . 30 SDC Software Factory dissolved that way. Good people went here to this program, good people went there to that program. And, in fact Atchley's title is still Director of Software Engineering, back in that old division and so, essentially, he's currently the Software Factory. It devolved. But, for all intents and purposes it never was officially stopped. It just disappeared. .. Nobody ever really put a bullet in it's head. You couldn't point to the day it died. That was strange. ^^ . Atchley recalls that, after Munson facility to left, programmers gradually work with the "plans and programs people" represented a . left at customers' sites. the This return to SDC's pre-factory mode of project organization: [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 interface out of the program office with the factory. They are a part of the organization. They used to give us the specs and say 'Go produce this software.' The plans and programs person would be the interface, and he would be controlling the budget ... As it is now, we are a part of the program office; we work in their area, physically. We moved the people into that physical area; we no longer keep the people physically separated.^" According to another programmers to different types of applications.'^^ factory. Some of SDC manager, Clarence customer them to specialize sites allowed SDC had This was the strategy the factory discipline and Starkey, the assignment of in particular followed prior to the procedures remained but the notions of a standardized tool set, a centralized factory work flow, and a crew of permanent factory workers disappeared. was never complete and they expected Atchley explained that the this to evolve, dismantle this part of the factory; old tools Division abandoned the matrix organization, fell tool set so there was no need to into disuse. however, SDC so that 's System "the factory workers go to the work": 31 SDC Software Factory You would 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, They weren't really dismantled. They were but it wasn't all there. in disuse because new ones came along, and we just no longer used The only thing we re still using, and we won't use it much them. longer, is PDL [a Program Development Language SDC developed for We're still using it, but. .within the next six months, in-house use] we're going to be all converted over to BYRON [a commercial product] PDL was a Pascal-based system. That's the only thing left We're moving to ARGUS, we're using a new that we're still using. What we're trying to do now is establish a Times change editor. 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 The factory workers go to the does not flow through the factory. work.^0 Factory.' not ... . . . . . . . . . . . . A remnant tried to focus remained of the factory organization its facility, SDC management But facility. Paoli follow the same matrix organization Munson attempted: "they are They are kind hybrid, they ve got some functional and some matrix organizations. compromise. Maybe But not bad. that is what we form when the U.S. a set of Department of of the Department of Laboratories, Mitre Corporation. Defense and an offshoot of ''-' a broader in 1976 to in standards for military-use software procurement. in of a kind of tried. SDC Defense contracted with directed this effort and completed the first set of standards help It s have sliouid The methodology underlying the Software Factory continued develop not is as systematically as the smaller Software Factory used to be. not anywhere near as structured as our Software Factory. a does not it 'Software Factory" and, according to Munson, the facility managed nearly Nor did that which has about 500 programmers, adopted the practice of bringing work into one large use the term in larger facilities on specialized lines of business. As Atchley (Pennsylvania) the Paoli noted, . Munson 1979, with the MIT's Lincoln The government subsequently published these 32 SDC Software Factory as a 16-volume set of guidebooks. ^ INITIAL PROBLEMS REVISITED FACTORY PERFORMANCE: SDC has not published data from any of the projects which went through the Software Factory. It is possible, however, to get a sense of factory performed by comparing some accounts of its : Absence of development a standardized, process predictable stemming from a well the operations with the five problems that, according to Bratman and Court, motivated Problem #1 how inception. its approach "lack of to the discipline and repeatability." Did the Factory solution work On the "yes" the and practice? Yes, and no. side, division of the development process into distinct phases, standardization of the process as outlined in the Software Development , and the tracking capabilities of the Factory Support System data bases it possible to improve predictability and control dramatically for budgets Manual made in time According schedules. to Munson and the company history, approximately 10 large-scale projects went through the factory and missed a schedule or overran" a budget. One "never of the largest, for example, an air defense system for Morocco that took 30 months to build, which completed successfully Additional in the factory on a SDC fixed-price $3.5 million contract.^ evidence for the success of the factory as 33 was SDC a mechanism for Software Factory Department 2168) project or process control Defense modeled of in is, its SDM manual and after the Munson's view, the the that fact U.S. standards for military contractors (2167 and other SDC Munson was asked practices. to serve as chairman of the joint business and defense department panel that recommended creating the and he claims he based military standards in 1979, recommendations on "my experiences and our factory... I his think [the 2167-2168 standards] were actually results of our Software Factory."^ On the negative to side, however, too much of the factory discipline appeared come from Munson's enthusiasm and leadership, rather than from the new systems planning for statistics and management control. and used these for control purposes, after Munson 1978, other managers did not keep up these practices as even claims that, when he joined the factory accurate Although statistics completion, on reuse or program quality. improvements productivity rates, This made left if kept careful the facility in rigorously."'"' Atchley no one was keeping improvements, difficult to tell it efficiency or productivity, and in 1977, in he if schedule there were they were directly related to the factory or not.^° Munson describes what happened as being a matter of the losing "advocate," the "evangelist" for the process innovations the factory represented. Once he moved up SDC proved into higher levels of administration, be as strong or as successful to in no other manager promoting the factory idea. Furthermore, to learn from the data and make the factory work up to potential would have required more than the 3 years to the facility. For these reasons Munson represented "a great start and what happened keep it going. . .we had a is in SDC management concludes that we lacked the will the and its full allotted factory skill to bright beginning that was never fulfilled": 34 SDC Software Factory f We did keep statistics but unfortunately, after the organization ceased to exist, people didn't keep them very clearly, was the advocate, if you will, for the factory, and when moved out of that specific organization, which was what was intended -was going to spend a couple of years there setting it up and then the agreement could move on to something else -- the problems with the was that left. For the couple of years factory occurred after was there, everything was going well and it was on an upswing. And think when you take an advocate out of something that is as fragile as this was conceptually in our organization, then it kind of lost the heart. And the people just didn't have the will to make it succeed. [W]hen passed the baton the advocacy, the evangelism went out of it. It It needed a tried to become something routine, and lost something. And a lot of force, drive, and selling. lot of effort to make it work. Did the factory solution work think it lost some of that... And My attitude towards this is one that would summarize in practice? by saying that we made a great start and what happened is we lacked the will and skill to keep it going... One of my problems is that these kinds of experiments are not 2- to 3-year experiments. They are 5-, 6-, 7-year experiments, in order to get good data and so we just didn't go long enough. .We had a bright beginning that was never i I I I I I I . . I I I . fulfilled. 5' Problem #2: management Project difficulties stemming from a "lack of development visibility." Did the factory solution work The same The in practice? Yes. positive factors discussed under Problem #1 affected this issue. clear division of product development and other operations into distinct phases ending with System, all provided In particular, design a the reviews, and the means for managers IMPACT tool tools of the Factory Support to visualize better the process flow. served as a control mechanism for tracking costs and schedules, completion status, and monitoring lines of authority and responsibility for a project. managers used IMPACT data During the planning and system definition phases, to allocate 35 resources, check functional designs SDC Software Factory against performance requirements to assess their completeness and accuracy, and to IMPACT generate reports. design completeness, assessment of different and effectiveness is testing no TOPS provided as well as while PATH the that similar tools soon tools a more evolved some but versions, better provided These completeness. doubt tool visible assessments of became common quantitative over time indication in nearly all into their of software organizations faced with managing large, complex projects. Problem #3: Inability requirements accurately define to at a customer performance s the beginning of development or to deal easily with changes made during the development process. Did the factory solution work Rather than a simple "no," it in No. and yes. practice? might be said that the factory worked as best as could be expected given the type and variety of products one the hand, SDC accepted contracts for so many SDC made. On different applications systems running on so many kinds of computers that accurately defining and meeting customer needs was no doubt a a herculean challenge. is to large extent intrinsic to any design process, except perhaps for firms making products with the most stable and standardized features. help with this issue? Then there is process? But did the factory the second element of Question *3: much did the factory help manage changes in This problem in requirements made during the These resemble engineering change orders related to product designs hardware manufacturing, frequently cited by manufacturing managers bane of their existence, too. No design process could be expected 36 How SDC as the to eliminate Software Factory — these completely The answer is but did the factory process help? yes, The Software Development the factory did help. Manual tried to capture the experience of the better system designers on how to define customer requirements. then codified these "best practices" It writing and they became standard procedures, modifications over time. Division phases with design reviews made of it in subject to improvements and the development process easier to identify if into distinct detailed design and coding was actual implementing the customer's requirements, at least as they were written up in the design documents. Tools such as IMPACT also helped personnel keep track of the interrelationships among system components, and this should have architecture. more obvious facilitated analysis of the effects of changes on the product's Munson agrees that the factory helped, if especially in making it discrepancies were appearing between the design requirements and the actual product being built: by breaking it like we did between the requirements and the implementation, was to create a very, very visible interface as to what the status was of the requirements when they were turned over to implementation. In most One of the things that projects, we were trying requirements are just to do, a flow in the implementation. It is very easy for that to merge and never be seen by top management. We didn't do much better in making requirements more thoroughly determined ahead of time. But on the other hand, we were clearly able, because of the interface on the hand-over between the requirements people and the production people, to make it very, very And we were able to put into our visible as to what the status was. plans, then, the fact that we didn't have yet a good set of requirements. So, we didn't solve the basic problem. But we sure made the characteristics of the problem more visible. And we made the impacts of the problem more manageable in the production process, because we at least recognized \t.° . 37 SDC . Software Factory Lack of tools for design and verification. Problem #4: Did the factory solution work The Software Factory began team clearly did work a lot of as an effort development and Court's tool in TOPS and DATADEF improved in this area. and verification (tests for levels of automation No. and yes. practice? in logical correctness) the design in process and smoothed the transition between design and program coding. however, general, management; seems it tools that that the the in were for project most effective tools such as to test interacted directly with the product, design correctness, usually had to run on the same hardware and perhaps even be written in of projects it the same computer language to work. accepted, support and testing SDC never succeeded in As result of the variety a producing standardized design- tools. Another difficulty was that SDC management did not continue corporate money for Mueller development once the factory went tool wanted Munson to projects, which meant that charge R&D costs tool of Mueller at the time was its a shoe-string budget, and told to go make Yet the difficulties well-funded effort. that, in terms of "ahead of an its elusive of specific inherent in tool spending company money So, it. "Of course 1976: in was we basically were put real.""' it development required a continual, Another SDC manager, David Deaver, made the statement what the factory was trying time."^^ goal expenses opening to stop on this thing and get contract money to support on into operation. for general-purpose tools for the factory funded only during the 3 or 4 years preceding one of the motives the to to allocate even to do with tool portability, it was This seemed to be the case; truly portable tools remain in the late 1980s, 38 due to machine and SDC language Software Factory incompatibilities. Munson recalls his frustrations: We never did solve the problem of heterogeneous hardware, and the very portable. .They were able to run on one And many system [but] were not easily ported to other systems. times we were working on government supplied equipment, which meant we had to use their equipment, we couldn't afford to pay for Because the government was supplying, for an overhead facility. instance, PDP's, DEC equipment, and if our tools are running on IBM equipment, there was no way we could justify the cost of the overhead for the tools on that equipment. And the technology, in fact, isn't yet here today, where a common set of tools are really portable around a whole bunch of different environments. And that was what SDC was faced with -- a whole bunch of different fact that tools weren't . environments. Munson believed that the Japanese, in contrast, as well as some U.S. companies, can develop general-purpose tools because they work primarily on compatible hardware: Now you take a Hitachi or a NEC, or even the commercial part of the Unisys Corporation, where the bulk of the work that they're doing is done on their own set of equipment, that are constant and homogenous. They yield a better chance even today, and certainly in those days, of making a success of these available tools [A] lot of people, because they've had slightly different environments, have been able to be successful, where we weren't, because of things like the homogenous equipment and the different culture in the organization. But, in any event, think we pioneered and, if we failed, it was because we were ahead of our time...°^ . . . I Problem #5: Lack of reusability of code. Did the factory solution work SDC did not design its in practice? No. and ves. Software Factory tools and procedures specifically 39 SDC Software Factory to Bratman and Court believed that practices such as encourage reusability. careful structuring of programmers reuse code. improved and modules, would documentation, help Atchley recalled the beliefs of the factory's architects regarding reusability: technique (top-down program design) and if we used modules, that the reusability would fall out of it. .you would decompose your requirements into functions and come up with code that was modular and reusable by following the techniques in And then, as a fallout of that, you could go back [to the the SDM. program library] and find it and reuse it. ^ They felt that if we used this . But these practices in and successes SDC encountered regarding difficulties SDC achieved code reuse. when applications and the computers the code was written were the same. Reusability was primarily in function of similarity chance more than advantage projects people of similar to and deliberate similarities in strategy across different projects by submitting low bids for libraries the in In helped factory sense, this achieve there was surplus of work, and there was not Because reuse was hard programmers generally did iVIodules for which Managers could take and planning. But managers could not really plan for similarity library. the applications and hardware, and thus of reusability. a in the Software Factory, then, what they had done before. program tool portability applied to extensive reuse across different projects factory and after 1978, but only a The same themselves were not always sufficient. were also to do, not try and exploit projects, unless this division. and because managers did not require to reuse components difficult to find coding or indexing scheme, which in in centralizing in a SDC apparently from the it, program library without an effective failed to develop. Atchley explained: 40 SDC Software Factory [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-ll. And then we went to the Emergency 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 donis 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, 'I 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 good idea, but at that time we were unable to capture much. It was easier to do it than to go find it. If you did find it you had to re-code it. 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 classifying system. They were on four different machines, they had four different sets of requirements, and it was very hard to find any reusability or savings among the four of them. We did set up a library, where we collected all the software produced, filed it, and documented it. Usage of that library was very minimal. °^ difficult I Even 1987, in there was only one I programming project SDC in Atchley knew of which was reusing large amounts of existing code. admitted that, again, this was possible because, same application. just do it. aren't the same, it's not getting any static at hard." SDC is turning out to be more very high number. °^ reuse in When asked how he SDC systems. it's taken us so long ability to ... Munson confirmed that code is we it could Atchley says that which he like 50%, felt it; But when the applications all. still considers a about the low incidence of code the early days of the factory, Atchley commented, and we're now coming up with an fact that the same machine and the "It's actually bid on this project assuming reuse 80% of the program code from existing the real figure Atchley That's really simple... no fights, no arguments about And we're that do that . . . "it's the idea been ten years, is good but the kind of sad."^*^ portability across different types of computers was the major obstacle preventing wide reuse 41 of code, and that, when hardware SDC Software Factory , was the same, reuse levels were enormous. level detailed Sometimes they reused only higher- designs, rather than actual code. For example, Munson tracked reuse rates and costs for four functionally equivalent air defense systems built after SAGE. Central) The first was SAGE's successor, the BUIC (Back-up Interceptor the second an air defense system for Spain contracted to system, Hughes Aircraft, the third and the fourth levels of system for Morocco (contracted a similar system for Thailand. a SDC achieved to Westinghouse) increasingly high code reuse when the hardware was similar, and design reuse when the applications alone were Reuse similar. of any type also helped meet cost targets: In [the Moroccan air defense system] we ended up reusing a lot of design and not code. We had intended to reuse some code out of the BUIC Air Defense Systems. the second version after SAGE. .. it was too major a difference in computer systems, but we used a lot of design and the Morocco system has since been reused almost entirely in the Royal Thai Air Defense System [RTADS], which SDC bid and won competitively and is in the process of implementing today... with almost 100% use of the existing code. So the first time we didn't awful And use a lot of the code but we used an lot of the design. we came in on cost. And then the second time we were able to get a competitive advantage because we didn't have to create almost any new code for the Thailand system. Thailand, of course, isn't being done in the factory as such. But the results, the quality of results out of the factory gave them the opportunity to make another big, huge sale, a 100 million dollar sale. And RTADS is using the products that we developed in the factory without having to modify them. .because we had commonality of equipment. They were both on comnpatible Burroughs computers. . . . . . . SAGE cost in excess of TOO million dollars for the computer programs. BUIC cost about 30 million dollars for the computer programs. The Hughes system cost about 12 million dollars. Morocco And the new one we are building cost about 3 1/2 million dollars. today for Thailand is zero million dollars, because we are basically The reason Morocco was cheapest, for using all the existing code. is because we used a lot of design and our line to BUIC, in instance, have spend all the time working out what didn't to We knowledge. interceptors and what the equations of motions for the dynamics were were and all the data base functions and structures. We knew all [D]esign is about 40% of the cost of a system those kinds of things. and the test is about 40% of the cost of the system. So if you reuse the design you can reuse a lot of your test so it cuts a lot of that [I]t talks to the fact that. .when 80% of the cost of the system out. the programmers really do understand the problem they have a much . . . . . . 42 . SDC Software Factory better chance of doing it right and cheaper, as opposed to bringing new pro to do it. [A]ir defense systems are air defense systems. There has not been any new They were -the"/ they are today. In a . . technology."" This type of reuse involved redeploying an entire software and hardware system in another location, rather than utilizing modules of code as building blocks for different types of programs. Some Japanese software reuse of large and small chunks of code and designs. Japanese, as he did with tool portability, In factories stress comparing -- what they would have to the Munson attributed the greater apparent emphasis of the Japanese on reuse to more commonality and applications SDC liked to in have had more machines of in the Software Factory: At the macro level we are talking about with air defense systems we really didn't do anything specific other than use the good programming practices that we had built up for the factory anyway. And when we reused the total system, we aren't talking about modular reuse. Where Japan is getting a lot of their productivity out of reusability are in things that are multiple uses of common products And a lot of it is able to move across homogeneous product lines. not in the applications software it's in the overhead software. A Fujitsu, NEC, or Utilities, operating systems, macro libraries. Hitachi can do that because they're not programming for IBM, DEC, or Burroughs. And their architectures tend to be instruction . compatible. . ."' . On the other hand, Munson stressed that reusability can also be viewed in terms of "reuse of people" -- allowing designers and programmers to apply the learning they acquired on one project to new projects. the factory — while it In this existed -- was far more successful than where new groups were always formed, with little sense of reuse, a project system or no repeated experience among the members: 43 SDC Software Factory [W]e had some results that held some pretty high hopes for this kind because we were seeing reusability in the people working on multiple solutions, if not the code itself. We had people working on defense second implementation of an air system that had worked the first not whole new of people that had to learn the on the one, a set If look whole applications thing again. you at what the academic world, or the professional scientific world, thinks of reusability, it really comes in a bunch of different flavors. Whereas code reusability, you know library modules, is only one application. of thing [W]e are not there yet in the coding phase, even in the Ada world, which was going to be the solution to reusability. But, again, the learning curve aspects of building a system -- which is the one involved in SAGE being 100 million dollars and Thailand being free And we were able to for the software -- it does apply to these. produce a high tech system called Morocco on a fixed-price, timeAnd we limited contract -- a 3.5 milion dollar system in 30 months. sure couldn't have done that for SAGE or BUIC. . . [P]eople reusability is almost as important think as code reusability. clearly true in our business that the second time the same guy That goes back to solves the same problem, he does it better. Wolverton's studies in the early 1970s that talk about delivering the second version of your system, and throw away the first version. You clearly learn something the first time through it so you can apply productivity and quality on the second time through. .assuming you use the same people... [W]hat the factory did was keep the people together in one organ-ization The same people were there the second time it came through, as opposed to doing it here one time, then reconstructing a team somewhere else another time -- which is what normally happens with projects. So, in that sense [the factory] creates a focus where all the software resources were in place and therefore the managers managing at that point in time had the ability to reapply the people. They weren't dispersed, off working on somebody else's contract in some other location."" I It's . . NEW PROBLEMS THE FACTORY CREATED In addition to mixed improvements on the five problems, original the Software Factory created several new ones that management lacked adequate commitment or in part These were interrelated among themselves but ability to solve. reflected difficulties that responses prevented The new concerns became by managers and full (1) programmers to solution of Bratman and Court's imbalances 44 in some list of the of issues. the work flowing into the factory, SDC Software Factory which made its sustenance difficult for management to justify; (2) difficulties, both political and technical in nature, introduced by the matrix management which greatly exacerbated the work-flow problem; system, and (3) cultural resistance on the part of managers as well as workers to the changes inherent in the factory which organization, commitment, as well as in contributed control and cooperation; than any others, appear to have resulted Factory to lapses in management These three problems, more the dissolution of the Software in 1978. in Work-Flow Imbalances SDC employed the name "Software Factory" in much the same way that producers of hard goods separate product development and production activities into distinct steps scope. and divide labor to take advantage of economies of scale and There was supposed more or less distinct to be groups on a a managed flow of programming jobs through To Bratman and sort of "assembly line." Court, the development data base resembled a conveyor and control system that carried the work and materials (documents, code modules) through each phase, as workers used various tools and techniques to build the product: "In the Factory, the development data base serves as the assembly line -- carrying the evolving system through the production phases techniques are used to steadily adcJ in which Factory tools and more and more detail to the system framework. "^9 But a serious work-flow sustain a key part of the factory: and testing specialists. imbalance occurred that made it difficult to the permanent group of design, programming, Part of the reason was the nature of the factory's business -- customized programs, mainly for the government. Another factor was SDC's planning and management practices. 45 SDC Software Factory came about on Because projects guaranteed flow of work company, the into programmers for individual projects contract a as it needed them. tried to be, in Munson generally hired words, "just lean and A project would build up and when you got finished you answered mean. people and fired them. And that towards us [the Software Factory] ... to the same attitude they took essentially is a the programmers go. let s not the company did not If need them immediately for another project, managers The organization had always SDC and was there basis, [W]e did not have the work to sustain it, and work wasn't coming through and we had our ups and downs. "'^ Clearly, the Systems Division's business was sufficiently cyclical to make large factory -- such as the 2300 personnel at Toshiba's Software Factory 1987 -- impractical. of SDC employees This can be seen (table). the huge fluctuations in According to the in a in number Munson, the division specialized in large-scale projects requiring 2 or 3 years to complete, and there were not that many and these were not possible contracts, backlog of completed by to expand levels Those that existed were primarily Department these. of them, a to "inventory," that because the government generally certain date. The is, wanted of to the Defense create a projects result was that military contractors tended as necessary to meet specific deadlines, and dropped, unless top management provided funds to to contract when work keep programmers on the payroll. 46 SDC Software Factory Table 3.1: SYSTEM DEVELOPMENT CORPORATION EMPLOYEES. Year 1956 Number of Employees 1956-1974 ways. First, we needed a capital investment from the company. The second was to "charge" more for any given job and have the excess go into, if you will, a pad, or a cushion. But we could never get the company to step up and do either. But that is what you have to do. You have to recognize that, like any factory, there will be times of But the problem is our factory was 65% capacity and 85% capacity. basically people and people are very expensive and nobody wanted to consider people as important tools in the factory as if they were machine tools. But they are very similar if you think about it in an analogy sense. When you are not usina them you still need to keep them there. You don't go sell them. '^ On the other hand, applications, there were many more customers and backlog of work to keep according to Munson, chaos." to the commercial software area, in Munson permanent group a of it such as business was easier to programmers employed. SDC's commercial software area was so busy it create a In fact, "was in claims he left the Software Factory and the Systems Division add some discipline to this other group: [Tjhe reason left this organization was to really concentrate on our commercial area, which was in chaos, a disaster at that point in time, and try to bring more discipline to that. And they had big backlogs. It worked fine. But those are generally not the job shop kinds of jobs you get with the military. DoD [Department of Defense] wants a weapon system and they want it delivered in 48 months. It is hard to put a competitive procurement into backlog. Whereas an MIS [Management Information Systems] department that has a whole bunch of changes they want in their MIS system might be willing to put that kind of stuff in a backlog. So, there are really apples and oranges in this kind of situation. What we were talkina about with the factory was really high technology weapon systems.'^ I "Matrix" Management Despite the cyclicality of the Systems Division's business, have been enough work in the division, and surely enough approximately 4000 programmers, to sustain end of the a Software Factory does not appear 48 facility with to in there should a company 200 employees. of The be due simply to the "ups and SDC Software Factory clowns" in the flow of work. program managers out in The real the field essence of the problem seems to be that responsible for system design were not required to use the factory to code and test their programs. SDC this writer to believe that was hard for It did not insure the success of a facility that took nearly 4 years to put Into place by requiring managers to use it. In response to an inquiry on this, however, Munson confirmed they did not. He blamed the situation on superiors a lack of commitment to the idea, (except perhaps Mueller), and a especially from his strong tradition of "projectized" management, rather than matrix management. that's back to the management. In my opinion, they were hedging their bets, if you will. They weren't willing to make a commitment and so it was the 'oiling the squeaky wheel' syndrome. All these guys out here would just say a factory can't do this, I've got to do it out here for some reason. My customer wants me to be It didn't in his facility. And management never fought very hard. say, 'No, there is one way we are going to do it and this is the way.' That might be overstating it a little bit. But, in essence, that is really true. And that goes back to the cultural, the projectized versus the functional kind of organizational aspects. SDC historically has built into its genes, even built into the software business genes, this projectize mentality. .^.The only way you can build a software Well, project is to projectize it.''* The Software Factory depended upon a type of matrix whereby there were program or project managers located in responsible for dealing directly with customers; and managers organization the field and in the factory responsible for producing the actual software -- detailed design, coding, and testing. In principle, this division of responsibilities and labor was no different from non-software firms that had separate product development organizations and then manufacturing operations divided practice, software firms like labor SDC into functional departments. In usually manage by projects rather than divide among so many different groups. 49 Sometimes division of labor SDC is not Software Factory desirable for technical reasons. go smoothly requires In ail substantial efforts communication, and cooperation among On the not all standardization in Because of implementation the customer's and "application-specific" practices, this, expertise as the program managers some managers did not want testing phases as site, had been SDC's practice program managers to use the factory. of the matrix to give up control and organization the central to problem for Munson and other factory breakdown work the relevant groups. sending work into the Software Factory, preferring political of off of technical side of this issue, sometimes the factory programmers did have as much wanted. make the handing cases, to to build their the past. in staff, who resisted own teams on This became a did not want to force A serious dilemma resulted system occurred once Munson of the left as the the and program managers realized they could continue with previous practices unencumbered. This breakdown, managers such Munson it seems, was the major source of the work flow problem that as Atchley complained about. recalled the combination of political, and technological hurdles SDC faced in organizational, managerial, trying to make the matrix system run smoothly. Of equal importance to any of the other dimensions, he thought, were the political and organizational issues, because some people were "dedicated to seeing that [the factory] control, didn't work." and programmers wanted Program managers wanted complete to "flow with the job": of the basic problems was, from my point of view, a political problem. Why it didn't really become as successful as it could have In our was a lack of management commitment to make it work. always been a defined has right there of kings organization, syndrome where people want to own the resources that are doing their work. We have a very strong heritage and management orientation and obviously management support of projectized versus matrix kinds of So there was a fair share of the population that was organizations. dedicated to seeing that it didn't work, because they wanted to have control of their own resources, as opposed to having a matrix One 50 SDC Software Factory organization that did the work for them. .Also, we were fighting There were just a lot of professional people, the social history. engineers, that didn't like the concept because they wanted to flow with the job, rather than work on pieces of the job. . The point that programmers probably found particular types of applications was as problem. The accumulation programmers more efficient of much experience it useful to specialize in a technological issue as a political in seems to make areas specific when designing and coding familiar types of systems. This reality of software engineering encouraged both programmers and program managers initial to want people rather than hand off to "flow with the job" designs, as Munson points out: [The factory] really failed to take into [account] the fact that experience in understanding the application you are working on is almost as important as understanding the technology you're applying to it... For instance, if you're working with a banking system, understanding intuitively how a bank works is almost as important as Or, say, with understanding how to program computer systems. programming a radar system, you just don't take any programmer and say program a radar system; .there is no management or technical substitute for your people understanding the problem. .This really turns out to be at the lowest level... the guys that are making the implicit and derived functional requirements implementation. The intuitive understanding of the problem helps you in the production process. . . The preference for "projectizing" forming separate projects as needed, force in a in rather than matrix contrast to having a management-- permanent work factory to do implementation and testing -- led to organizational and cultural conflicts. Neither program managers nor programmers ended up liking the Software Factory. programmers Munson to stay with their felt this difficulty also reflected the desire of programs "from womb to tomb": Another aspect of the problem was that. 51 . .of matrix SDC versus Software Factory . There really was a very strong feeling on the part of projectizing. the technical people that they liked to work software problems womb to tomb,' that they didn't like to just be responsible for the design and pass it on, and so we were faced with two kinds of cultural problems in that area. One was that the [managers] didn't like the organizational concept anymore than the [programmers] did. But. It's People will start liking it if it's looking back to the will again. successful. And they get bennies and stroking as a result of being part of a successful organization. And so you begin to change their Suppose it was still in practice attitudes about that kind of thing. today, ten years later, and it had been successful, the people would love it, because people like being involved with successful things. And this whole attitude about the womb to tomb would have changed and they would have seen that different benefits come in the fact that they could have grown with the organization into different roles and responsibilities. But in the short term it was a very big start up The fact that we had on one hand managers who were problem. fighting the matrix functional problem and we had people, technical people in the organization that were fighting that problem. So we were kind of getting it from both sides. . Atchley admitted the matrix program managers activities. burden of realized . system created considerable discord when they were no longer control in development of He added that people complained about the additional overhead having to pay for two sets of management For other managers, and one outside. however, -- one inside the factory was more it a 'turfdom" struggle: We what happens is didn't have the management tools in place 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 have any control over you. And if you overspend, what's he going to He has to have the job done. So there was not enough do? incentive on the part of the factory to produce at an economical cost [These] were the complaints of the other managers. It was costing there were some complaints about the fact that now them money they had two managers, that they had doubled the overhead since you had the management of the Software Factory but you still had So there were some complaints the management of the program. . . . . . . . . . . about that. . . . managers felt they were losing their "turfdom" ... we took a lot of people who'd been program managers and we consolidated into three areas. That left some men and women at that same level who no longer had a direct influence, and they became Some of the 52 SDC Software Factory 'plans and programs' people. .they were in the situation of getting their projects done by the Software Factory. That left some of They wanted their hands on that. They wanted those people uneasy. So there was a lot of to be able to touch their programmer. resistance from program management to the idea. There still is.'° . . SDC had . earlier tried and failed maximize scarce personnel resources. all a to introduce SAGE began a matrix organization to with a project system, where the necessary personnel, from different functions, were brought together made responsible single group and however, SDC management engineering, to a single program manager. In in 1958, created functional offices for personnel, production, and programming, while still maintaining program management offices responsible for specific projects but sharing responsibility for functional activities such as engineering and programming. work out. After conflicts erupted between the program managers and line managers over budgets, management decided managers. It to schedules, and worker performance, reorganize and return full in 1959 top authority to the program '' may be no more than problem had surfaced of this But the matrix format did not in historical irony or coincidence that this type of SDC once history or remembered before. it But had factory planners been aware more clearly, they might have anticipated resistance and better prepared employees -- programmers and program managers -- for the changes and cooperation required to make the matrix organization work. Cultural and Organizational Change Whatever technological hurdles they faced, Deaver believed that only "drastic change in a culture and philosophy" would have made certain aspects of the factory organization work as intended. 53 This was no doubt true with regard SDC Software Factory to matrix versus project management. Another example related to reusability. Programmers required some retraining or rethinking about module design write reusable code and to reuse it consistently; the additional effort required meant that managers should probably encourage programmers reuse code they want this to happen more than if to it in some way would by chance to There is the additional issue of integrating someone else's previously-written and perhaps more lengthy code into a new program, rather than write new, probably shorter and more "elegant" code for the specific application Deaver was "more recalls resistance to borrowing other people's code, and claims problem of aesthetics than performance. a to write their built with reused was no noticeable tradeoff habits and managers this Programmers preferred " own, because this usually made the program "tighter" (performed the desired function with fewer lines of code). programs question. in sense in the of terms of operation, however, In code usually ran fine, according to Deaver, so there in product performance. aesthetics Software tended Factory to took Nonetheless, programmers' discourage no reusability, measures to and overcome the this reluctance. ° Another seemingly cultural issue was use of the word seemed to like it, and after 1978 SDC stopped using word became an "anathema" to had started their Atchley claims the managers and programmers explains this was because software programmers generally it. "factory." No one careers as alike. ^ Munson (and project managers, who programmers) preferred to think of themselves as professionals, not as factory workers: Again, it has to do with the culture, the image. These people that are computer programmers think they are professionals and the concept that they'd be associated with a factory kind of grated them You know, they tended to instead of seeing it as a great sales tool. take it as being a slur on their professionalism and that's why it always thought the factory was a good really became an anathema... I 54 SDC Software Factory metaphor for what we were trying to do. It. They made a lot of fun out of A lot of people didn't like it. Munson's comment that he viewed the Software Factory as suggests "sales tool" a he may have had some ambivalence about the concept. referred to the term "factory" as a "gimmick," as quoted below. hand, "Software Factory" was not the notion of a disciplined, a hollow phrase to He also On the other Munson, but represented engineering-like approach to software development: [It was] a gimmick, because it has a connotation to the general population of organized, methodical, chunk it out, make schedules, do on time. have always thought, and we of course have a it copyright on the expression Software Factory, that was a very valuable concept to the world that is afraid of software. That it would tend to give it a more engineering concept. °^ I Yet recollections of the management commitment to the concept himself have the authority to factory consistently in critical point areas. to of Munson did not make program managers use the facility or to insure continued development of the factory tools and methods. difficult to lack a But it is understand why Mueller, the head of the company and originator of the factory concept, did not give it more of a chance — such as by requiring that program managers use rather than ignore the facility, providing corporate funds to keep the staff on the payroll, or even getting work for the from other divisions or other customers Nor did staff if change aspects offices factory, even though the matrix system, to necessary. managers require programmers or program of their line behavior that managers in the undermined the or the strategy of represented significant departures from previous practices. that managers facility reusing code, Atchley admitted never required programmers to reuse code from the program 55 SDC Software Factory And both he and Munson admitted library or to write reusable modules. did not only staff management fail require program managers to to that, use the they failed to require the line managers to keep consistent track of factory, performance data. managers to Because their superiors did not really require program change, the factory strategy and structure could be avoided. managers did not really require programmers because line factory system never had the impact or continuity it to And change, the new might have enjoyed. Atchley even suggests that many programmers were not fully aware of what the factory was or was supposed to do: They didn't even know it happened. It was a term used and a way doing work, but as far as most of the programmers were concerned, life went on as usual. don't think there was any great culture shock or resistance to it. They knew the term, they knew they had been gathered from the various four corners of the company and put together, but they didn't consider themselves in a factory. There were lots of cartoons on the wall about the factory and all don't think the programmers these kinds of things, but truthfully, considered themselves factory workers."' of I I MANAGERS' ASSESSMENTS AND THE JAPANESE CHALLENGE Atchley's assessment of the factory experiment was generally positive. doubted that the factory reduced costs but could not lack of detailed experienced data) if were due to the improvements the factory in tell (probably due productivity and quality system or to other factors, hand, he believed engineers of the product life the factory increased awareness among to a SDC such accumulated experience or just better techniques introduced over time. other He as On the software cycle, and greatly improved quality through a more structured approach to design and more formalized testing procedures: 56 SDC Software Factory think that, while we may not be organized the way we were, our people are more aware of the software life cycle now. seriously doubt that it [the factory] reduced cost. Were the people more efficient? It's hard to say they were more efficient because of the factory or that they became more efficient because we became more presume there was a fallout there on efficiency and efficient. think the structured approach helped quality productivity. think the fact that we became very formal with the immensely. independent test organization improved the quality of the product we Whether that was the Software Factory or not, delivered. don't I I I I I I know. Atchley also felt the factory concept should have worked and had real potential for improving reusability SDC and productivity. He regrets, however, that has not done much with the idea beyond the standardization of procedures and some centralization of development at Paoli. Atchley concluded they were now "dragging" behind the most advanced ideas coming out of universities, rather than being as the Software- in the "forefront" of implementing them, Factory once was: good concept. think discipline can be applied to the 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 If we'd kept ideas came out of the schools and papers were written. think we would have been able the factory concept more prominent, As it is now, there's a lag. to put more of those ideas in sooner. Instead of being at the forefront, we're kind of dragging."^ I think it's software a I development process. I I Munson offered another thoughtful assessment of the Software Factory. While acknowledging that the set of tools was incomplete and those developed for the factory were nearly -- a all replaced over time, he insisted this was positive type of change that represented "growth" and "evolution": 57 SDC Software Factory [I]f you thought about it in the context of the factory, that's called growth -- the evolution, the fact that we are not using same the PDL today as we did ten years ago. We never expected to. We We were building weren t building something to last 100 years. something to grow and the fact that we are moving to a new ARGUS system, that was the way the factory was going to grow. .it shouldn t be an indictment of the factory, that was what we were trying to do. We just wished we could have done it in the context of the factory. . A major achievement, in Munson's view, was the increased attention the factory brought to problems and needs of the software development business. While they were not completely successful not successful, he insisted. in the effort, "pioneers Instead, they are often "impatient" to achieve, and while sometimes receiving "arrows groundwork for future development. Factory did -- "frontier" in it This, he feels, may not have done as well as it in what they try the back," they lay the is what the SDC Software could liave, but was it at the identifying and tackling key problems: The factory identified software as a major visibility for software, got it up high in generally are " management would see We got it. a management issue. got It to the top level where lot of synergy out of the and emphasis... but we were the pioneers in this, and you know what happens to pioneers. They get arrows in the back, and eventually some settlers come along later and build on those ideas that the pioneers had. .We are always impatient. And was impatient because knew it was the right thing to do and People are moving people still think it's the right thing to do. It was too soon... We think it was just a little early. towards it. may have suffered the fate of General Custer but we were out there factory, getting people together, . I I I in the frontier. Nor did Munson see himself manage delicate tradeoffs between, to raising to "noble experiment, first, uncontrolled process." ' trying to say, maximizing cost reduction as product functionality or customer satisfaction. make "better" products; of an as involved in a Munson claims, he felt opposed There was no attempt he had "to get control Better would come later: 58 SDC Software Factory My first goal was to get control of an uncontrolled process. In my mind software development, in general, was out of control. It was At that point and time, the not predictable, it was not manageable. two terms, software engineering and computer science, were There was no engineering in software and contradictions in terms. considered it survival and more than a no science in computers. We were just really, really trying to get some noble experiment. terrible problems under control. And we thought this would be a way to approach it... Some of those other things were second order. We If we could just were just trying to do it good. Better was later. get it controlled and bring in a project on time with some relationship to the cost we had bid for the job, we would have been satisfied for that. At that point, really, it wasn't a productivity Once we had Issue, as such, although we saw it as leading to that. it under control, then we could get to the issue of how can we make garbage for whatever price But once it's out of control. it cheaper. And that was the situation. is still garbage. . . I . . With regard to Japanese efforts at developing software factories, Munson asserts he became aware of these attempts during the 1980s through Japanese participation engineering. others. On Munson a visit to Japan in in late 1970s and early international conferences on software 1981, he saw the Toshiba facility, also had to contend with frequent visitors from wanted to learn about SDC's Software Factory, although Japanese were more interested in superficial Japan who at the time questions like among he the felt size the of programmers' work spaces, than the issues underlying the factory organization: Hitachi came over to visit us in Santa It must have been 1980-81. Monica to find out about the Software Factory. They were more interested in measuring the size of our programmers' offices and looking at whether they had terminals or not, than they were in what we were trying to accomplish. And they did, they had tape measures, they went into offices and measured all the offices. It was strange. .. [W]e had a delegation in from one of the Japan companies about every 3 months, it seemed like, wanting to hear what we had to say on the subject. After reviewing more detailed accounts of Japanese efforts Munson concluded that these have been very much along the same 59 SDC in software, lines as what Software Factory he wanted to do at SDC, and resistance. cultural less with the advantage of more homogeneous hardware He believed that U.S. companies maintained present lead over the Japanese counterparts the Japanese felt were sure to in up, catch software as they skills, a although he also have done with other technologies, particularly because their software factories were not dependent on projects to exist. They were permanent organizations: think [the Japanese] are doing very much what we tried to do. think they have a little advantage, and that's the homogenous could make homogenous equipment a spectacular equipment. think think we were trying to fight too many problems all at success. the same time -- personnel problems, social problems, cultural problems, customer problems, work-flow problems. With the Japanese They are not on contracts. factories, most of them are on budgets. And that makes a huge difference, because they have continuity, year More power to them. [But] we are still sufficiently to year to year. ahead of the Japanese in software and that is because of exactly the reasons Why a software factory is more possible in Japan than here. really think We allow more creativity, make more of the advances. that it is going to take the Japanese a while yet to catch up to us. But they will. They will, but they culturally think differently towards problems than we do. And think for software, in this time, our culture is better than theirs, but they can overcome that... I I I I I . . I I Withal, there was no question factory effort had failed. well as also feels it To him, in it Munson's mind whether or not SDC's did not fail; it simply did not perform as might have with more sustained management commitment. the effort was "needlessly abandoned," though Munson he admits that he probably did not do what he should have to convince managers and programmers to accept the to make it new system. Instead, he relied too heavily on strong-arm tactics work: We didn't do as well as we could. But, we did anticipate many of the developments that followed and which people .SDC may have needlessly abandoned were able to use successfully. [P]eople like belonging to a successful organization. it. We were [W]e didn't fail. . . . . 60 SDC Software Factory being successful and we could have carried that momentum, and it would have solved a lot of these other problems...! tend to be a typical impatient American as opposed to the Japanese that can look get a little impatient with some of those at 20-year plans. concepts that say you have to change culture. Wasn't it Nixon who's quoted as saying, "When you got them by the balls, their hearts and minds will follow?" Maybe that was more my philosophy .°^ I SUMMARY SDC clearly attempted to move beyond a craft-type approach to a factory organization that produced semi-customized or fully customized products more systematic manner, using standardized procedures and or designs if possible, as well as design and program construction. tools, reusable in a code more division of labor between high-level SDC failed to solve the five major problems which initiated the effort, especially managing performance requirements, tools support, and reusability better, as well as sustaining the factory discipline. A comparison of SDC's Software Factory to the ten elements earlier introduced as fundamental to successful software factory efforts reinforces the conclusion that SDC managers did factory approach fully. of themselves not allow what constituted a They also factory Perhaps for these reasons, think through the much more limited vision enough time seem to have had a to approach than their counterparts SDC managers in Japan. did not allocate the time or resources, including preparation of employees, that would have been needed to make the factory work, given the technological and organizational obstacles major issues involved in the factory effort are summarized 61 in SDC it faced. The Table 3.2. Software Factory Table 3.2: SDC SOFTWARE FACTORY SUMMARY FACTORY CONCEPT IMPLEMENTATION Strategic Integration Some planning in stage; almost implementation, particularly management, or education none work in flow Product- Process Focus Division focused on real-time programming applications, mainly defense-related, but wide variety in types and object computers Scale and Scope Factory of 200 programmers was small; other programming operations dispersed, at SDc locations and customer sites Improvement, Not Innovation SDC emphasized product innovations and customized systems; not traditionally process and cost oriented, thus some factory goals were incongruent with competitive strategy and corporate culture Process Analysis/Control No systematic analysis, though factory methodology imposed some standardized controls while Quality Analysis/Control in use No systematic analysis, though factory methodology imposed some standardized controls while in use Central Tool Support The factory began Training No as tool R&D; Factory Support System provided numerous tools, though portability was a major problem and the development effort was not sustained formal managers, training, though of the programmers or standardized methodology was apparently followed. Lack understanding or appreciation for the factory concept contributed to matrix management problems, as project managers disliked giving up control of program of contruction to the factory Reusability No systematic effort; reuse achieved was accidental Automated Customization Capability not achieved, except that some mechanized or automated project-management and testing tools aided development 62 SDC Software Factory REFERENCES would like to thank David Finnell for his contributions to ideas expressed chapter through research done under my direction for a structured master's thesis at the M.I.T. Sloan School of Management, titled "Application of the Factory Model to Large-Scale Software Engineering," May 1987. The thesis work included the Interview with Ronald Atchley cited in the text. 1. I this in 2. Burroughs Corporation, Annual Report , 1984, p. 15. 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 3. course Frederick P. Brooks, Jr., The Mythical Man-Month: Essays on Software Engineering (Reading, MA, Addison-Wesley, 1975). Two other collections on key articles dating back to the early 1960s are Edward Yourdon, ed.. Classics in Software Engineering (New York, Yourdon Press, 1979) and Writings of the Revolution (New York, Yourdon Press, 1982). SDC's official company history, written by an SDC employee, details the development of the firm from 1956 through 1981. See Claude Baum, The System The Story of SDC Santa Monica, Cal., System Development Builders: 4. . Corporation, 1981. 5. Baum, pp. 6. Baum, pp. 53-54. 7. Baum, 8. Baum, pp. 158-159, 163. 9. Baum, p. p. 26, 61. 6. 161. 10. Baum, 11. Baum, pp. 166-167, 170. 12. Baum, pp. 190-194, 285. 13. Baum, 14. Baum, pp. 219-220. 15. Baum, p. p. p. 168. 246. 220. and Harvey Bratman and Terry Court (System Development Software Factory," Computer May 1975, pp. 28-37. "The Corporation), 16. Baum, p. 246; . 17. Baum, 18. Interview with John B. Munson, 4 and 5 October 1987. p. 221. 63 SDC Software Factory Harvey Bratman and Terry Court (System Development Corporation), "The Computer May 1975, pp 28-37. This article describes the factory tool set. A second article repeats the tool discussion but also describes the development of standards and procedures, as well as the division of labor between program offices and the central factory facility. See H. Bratman and 19. Software Factory, " . Standards, Piocedures, and T. Court, "Elements of the Software Factory: Tools," in Infotech International Ltd Software Engineering Techniques (Berkshire, England: Infotech International Ltd., 1977), pp. 117-143. , own experiences, Bratman and Court cited a 1974 study success, to find such a correlation. The citation attempted, without which had of Developing Large Scale Software," IEEE "The Cost Wolverton, is to R.W. Vol. C-23, No. 6, June 1974, pp. 615-635. Transactions on Computers 20. In addition to their , 21. Bratman and Court (1975), 22. Bratman and Court (1975), pp. 28-29. 23. Bratman and Court (1975), p. 36. 24. Bratman and Court (1977), p. 119. 25. Munson interview. 26. Munson interview. 27. Bratman and Court (1977), p. 117. 28. Bratman and Court (1977), p. 120. 29. Baum, 30. Bratman and Court (1977), p. 121. 31 Munson interview. . 32. p. p. 29. 222. This discussion of the SDM procedures and quotations are from Bratman and Court (1977), pp. 121-126. 33. Munson interview. 34. Baum, pp. 220-221. 35. Baum, 36. Interview with Ronald Atchley, 3/27/87 and 4/23/87. 37. Bratman and Court (1977), p. 127. 38. Bratman and Court (1977), p. 127. 39. Bratman and Court (1977), p. 128. p. 223. 64 SDC Software Factory 3-//'> This section is based on nearly identical descriptions of the tool set in Bratman and Court (1975), pp. 30-36; and Bratman and Court (1977), pp. 128- 40. 137. 41. In "Elements of the Software Factory", this tool is called Program Analysis and Test Certification Processor. 42. Atchley interview. 43. Bratman and Court (1975), 44. Atchley interview. 45. Munson interview; Baum, 46. Baum, 47. Munson interview. 48. Atchley interview. 49. p. p. 36; p. and Bratman and Court (1977), p. 143. 224. 224. Interview with Clarence Starkey, 10/3/86. 50. Atchley interview. 51. Interviews with Atchley and Munson. 52. Baum, 53. Munson interview and Baum, 54. Munson interview. 55. Munson interview. 56. Atchley interview. 57. Munson interview. 58. Munson interview. 59. Munson interview. 60. Interview with David Deaver, 10/3/1986. 61. Munson interview. 62. Atchley interview. 63. Atchley interview. 64. Atchley interview. p. 222. p. 224. See also data on reuse rates reported in Chapters One and Two. 65 SDC Software Factory 65. Atchley interview. 66. Munson interview. 67. Munson interview 68. Munson interview. 69 Bratman and Court (1977), 70. Munson interview. 71. Atchley interview. 72. Munson interview. 73. Munson interview 74. Munson interview 75. Munson interview. 76. Atchley interview. 77. Baum, 78. Deaver interview. 79. Atchley interview. 80. Munson interview. 81 Atchley interview. . p. p. 137. 43. 82. Atchley interview. 83 Munson interview. :-07; 66 SDC Software Factory Date Due =\0B0 0072& &24 1