1 1 ^?! V fu. / ) \i I- S.I< '^\^ <'0S«' I v/ :r:'^ f ^& 4 ZSMf< \^s '^ y " 1* ^ '^^M^ aD2G .i'A14 NOV 12 1987 ALFRED P. WORKING PAPER SLOAN SCHOOL OF MANAGEMENT Toshiba's Fuchu Software Factory: Strategy, Technology, and Organization Michael October 6, 1987 A. Cusumano WP //1939-87 MASSACHUSETTS INSTITUTE OF TECHNOLOGY 50 MEMORIAL DRIVE CAMBRIDGE, MASSACHUSETTS 02139 Toshiba's Fuchu Software Factory: Strategy, Technology, and Organization Michael A. Cusumano October 6, 1987 WP //1939-87 "^OV ] 2 ,987 Michael A. Cusumano MIT Sloan School of Management 10/6/87 Software Project Paper #4 TOSHIBA'S FUCHU SOFTWARE FACTORY: STRATEGY. TECHNOLOGY. AND ORGANIZATION INTRODUCTION This paper or not such part of is companies are considerations and choosing manage to a complex development with software large-scale as larger study examining the question of whether a organizational as well as of job shops, flexibility in technological of in the U.S. technology these criteria; implementation and Japan to strategic approaches that "hard" manufacturing, The research project technologies. and policy factory environment for software might look like; facilities of activity and factories exhibiting various degrees and product mixes proposal the includes batch organizations, range a corresponds to the spectrum usually associated with i.e. engineering a criteria survey what defining a of major software determine where firms stand in relation to and detailed case studies examining the technology and policy process followed at firms identified as being close to the factory model There are several interrelated conclusions: "factory" facilities in software as and approaches, is the U.S. and Japan. a structures more effectively, even with (3) (2) in There appears This spectrum, including the sample of software to be nothing Inherent in technology that prevents some firms from creating strategies organizational software. observable clearly (1) a to manage product and process development relatively new and complex technology such The basic technological infrastructures as to aid software process management are not significantly different between Japanese and U.S. (4) -- But, Japanese firms by Hitachi and Fujitsu by the NEC group and Toshiba, and followed led are significantly ahead of most U.S. -- implementing "flexible standardized components firms. type factory" (modules and code) of focused strategies of competitors then in reusing on end customizing products. This paper extends the survey approach to analyze what -- most difficult aspect of the software factory and the benefits or disadvantages The Toshiba case One, personnel like and NEC, Hitachi software its in his operation, Factory within a factory the operation. in was who originally own focused The center established the In Matsumoto directed the founding Fuchu Works, which reusing on developing for computer division, A senior engineer. Dr. factory, while the 1977, software rationalize Factory experiment and cited efforts.'^ company's to Toshiba's not shortage of skilled a organization programs. technology SDC Software influenced by the still of attempt to heavy industrial equipment division. Matsumoto Yoshihiro, article to justify lines market demands and semi-customized engineering however, but process implementation the environment might offer managers Toshiba influenced produce probably the significant for several reasons. is development alone the code to this is of was especially SDC in a 1981 SDC experiment was a Software Toshiba manufactured hardware and software systems for nuclear power plants, electric power plants, factory automation, as well as elevators and transportation equipment. Second, occurred at paradigm and rather than end the effort midway when difficulties arose, SDC, or display reusability, as at a reluctance Hitachi or to overemphasize Fujitsu, the as factory Matsumoto continued to develop the facility's technological and management systems to support the objective producing of The Toshiba factory standardized 1987, in largest dedicated software facility and remarkably rationalized with components standardized a in programmers, 2300 was format. probably the the world, with highly focused products in procedures, factory especially in the areas of testing and the generation and reuse of standardized software components. A third the factory significant tool aspect of this case is that Toshiba and development approach set the broad applicability of the strategy, product software to Success outside of industrial control applications. has transferred this in areas transfer reflect technology, and management systems Toshiba has devised for large-scale software engineering. I. ORIGINS AND ORGANIZATION OF THE FUCHU SOFTWARE FACTORY Corporate Setting Toshiba's founding dates back to 1875 and the establishment of firm that manufactured communications equipment. affiliated of U.S. the Toshiba had equipment Both grown and subsidiaries). mainly the Mitsui group with among relationships to in Japan and continued become Japan's appliance manufacturer, in into second with 1910 with electronics largest 70,000 by which time general employees in and household appliances (31%); heavy electrical electrical (excluding 1986, and electronic components, computers and office automation (33%); consumer products, video, General Electric 1980s, Total worldwide sales were about $20 billion industrial small 1904 the firm became In the a divided including including audio, apparatus, including power plant systems, behind fourth, Japanese 1978, in programmers and minicomputers be to a major were designers microcomputer and in various throughout the corporation. the corporate R&D level in software, MIS in Software the at six tool and the Fuchu the producer leading of office of but withdrew from software engineers and Fuchu, which alone had 2300 plus another 1000 software factories (see Factory smaller (management-information Most was development partner, NEC. 11,000 These were located Toshiba. and approximately it comprehensive manufacturer a selling this business to its there in programmers 1), although Hitachi, ranging from small machines to mainframes, 1987, developing of and The company used computers, mainframes NEC, Fujitsu, producer equipment. Table and factory automation systems equipment, Among Japan's domestic computer manufacturers, Toshiba ranked (26%). In industrial systems) activities and method development was done Plant."* at Table 1: TOSHIBA SOFTWARE FACTORIES Facility Software Product Area Fuchu Real-Time industrial Applications Ome Office Automation Hino Telecommunications Komukai Defense Systems (radar, satellites) Yanagimachi Automatic Dispensing Machines (banks, railway tickets) Nasu Medical Systems Isogo Home Appliances Source: Matsumoto interview. The Factory Strategy The establishment connected the with Fuchu the of characteristics Toshiba's of Factory Software industrial was directly systems control business, which dates back to the use of electro-magnetic relays prior to the use transistors of for became development microprocessor 4004 using large a area in of and 1971 in microprocessor a application this from Fuchu Works's Major 1974. the after activity the mid-1960s. the introduction first functions Software control system control industrial of the of systems that involve extensive software writing are processing the relevant data to the control production equipment; serving an as human operators and the machinery; and providing interface between sufficient information on production levels, inventories, plant conditions, etc., to serve as an interface for management. According programmers to c to was it primarily prompted the idea of "off-the-shelf" of establishing a Orders rapidly from 1977. for process-control by the Corporation's mid-1970s on shortage software computers these Regarding ways 1975 article to AT&T, which used Programmers' Toshiba to rationalize software in that Work increasing development using Matsumoto was also very much as Bench the Unix operating system. system Matsumoto patterned after the began Computer on the System Development Software Factory experiment, the minicomputers software factory focused on productivity factory approaches and work bench systems, influenced a meet the demand to Toshiba for customized programs caused by the popularity improvement. Matsumoto, AT&T Quality control was secondary but still as by an system (PWB) well The name article the in developed of Toshiba's at SWB system.' important motivation behind the Customers were mainly sensitive establishment of the factory. and did not directly see the impact according to Matsumoto, improvements decided along hardware and the with The cost development. software in not On the other hand, Toshiba projects. because of the productivity impact this had on its was software separated specifically internally was productivity of the of quality, to most by affected directly capacity for handling for software orders." A example typical problem the of Toshiba faced was order to an develop the hardware and software for what would be the world's first fully power generating automated thermal software into requirements reliability were extremely Hirano the Electric, several To achieve safe and untended operation, code. of lines Tokyo for require software running Not only did this Plant. station millions of hardware and placing stringent, tremendous demand's on Toshiba software capabilities. Hirano presented problems became typical As Matsumoto in Toshiba projects as of noted a in 1981 utilities rolling steel an build product Fuchu Tokyo mills, entire at a networks, price that Software Software the processing factories, still to maximizing guaranteed Toshiba opened in 1977, Factory's main such as nuclear power plants, would be "disastrous." dedicated Factory facilities chemical failures facility since minicomputers increased. of sales its article, products are real-time systems for electric and quality assurance that productivity prior air terminals, and Thus, they decided assurance of the quality "a to moderate profit."^ the to completion of The the Electric Hirano project. ^^ As a strategy to improve productivity, quality, and cost control for the Fuchu Work's entire software needs, management used the set of tools and procedures standardized developed under the development areas Fuchu served: that the factory environment heavy industrial control systems. concept Software electrical Factory the for rubric three provide to primary applications equipment, measuring instruments, and Within a few years, Toshiba managers recognized should provide useful to produce other types software relatively inexpensively and with high quality. the factory's design activities were extended to control systems, factory automation, a Computer IEEE software . can be seen broad range of process- and measuring equipment software.'' The notion "development" lay Matsumoto's comments in of in a strategic to as aspect good its article different and management" as well in from supporting to achieve this was as technology eclectic, Quality, on the was seen as linked directly to human performance, and "people tools producing software by reusing as using any type of concepts or tools that furthered this goal. other hand, 1984 a commitment, The way existing components as possible. in production" "factory technological and policy infrastructures, many of By the early 1980s, The philosophy underlying the factory organization, including and procedures, a in this management were considered essential to effective operation of the factory: Software production is distinct from software development in that production management is directed toward the use of existing software and enforces the idea that designers should build new software from existing codes. The software life-cycle model and various software engineering techniques based on the model are therefore worthwhile However, other from the viewpoint of production management. development systems deviate from the life-cycle approach, such as prototyping and program generating, that are equally important and vital to the development of new software. The concept of 'levels of abstraction' is applied to both early design and manufacturing phases in order to incorporate these techniques. In order to manage traces between different abstract levels, modularity or encapsulation in the requirements and design levels is considered. Modularity in the early stages of software development aids in the reuse of existing modules and prototyping. However, human factors in 8 software management are becoming increasingly important; therefore human-oriented reviews and inspections are being applied to increase software reliability. '^ Another central notion not be dependent on factory approaches factory approach technological tools and production, to of the factory was that product quality performance. individual quality to at to support however, all was standard was aspects commitment the software using to development software of most in What distinguished the control. Toshiba, This should and improve quality through compensating for differences the ability of individual engineers, as Matsumoto noted 1986 paper: a in in The path from requirements definition to conceptual design primarily requires the intellectual ability of the engineer. Supporting this part is believed to produce the greatest achievements In quality improvement by leveling off the engineers' ability [my italics] Support for this part, however, was considered technically difficult. Fortunately, the recent progress in work stations and knowledge engineering helped to support elements are added to the solve this problem. As a result, SWB system. ^^ . . . . For example, one of the tools Toshiba developed was simple command, which, with a "do for while" different parameters, editor," "lexical automatically displayed constructions such as Programmers then languages. different a without having to study simply grammar the of filled in different languages and risk making coding errors. ^^ According to Kado Tadao, in 1982 the manager of the engineering administration department at the Fuchu Plant, due to improvements and rationalization of "asset has been able to handle important to Kado in in this management," the volume of in quality work the factory 1986 was triple that of the original plan. long-term productivity improvement were Most (1) of selection good quality software engineers; and methods; system. and (3) creation of a development (2) of good tools good working environment and training 1 'S The Factory Structure Matsumoto defined allows install, attain a "software factory" "an software manufacturing organizations to design, and maintain commercial software products specified departmental quality divisions, and productivity tool/facility will inf rastructural be elaborated on elements in and in a environment which program, test, ship, unified Apart levels." management implemented combination of 14 elements or systems. " which as manner ... [and] from the formal through the These can be broken down into its strategy management-personnel systems, the subsequent sections of this paper (Table 2): 10 Table 2: ELEMENTS OF THE TOSHIBA SOFTWARE FACTORY Tool/Facility Infrastructure Specially designed work spaces. Software tools, user interfaces and tool maintenance facilities. Existing software library and maintenance support for this. Technical data library. Standardized technical methodologies and disciplines. Documentation support. Manaqeinent/Personnel Systems Project progress management system. Cost management system. Productivity management system. Quality assurance system with standardized quality metrics. A standardized, baseline management system for design review, inspection and configuration management. Education programs. Quality circle activities. Career development system. Matsumoto An Overall Approach Source: Yoshihiro (Toshiba Corporation), "A Software Factory: Freeman, ed.. to Software Production," in Peter Reusability (IEEE Tutorial, 1987), p. 1 (2 Software manuscript) December 1986 The Software Factory employees performed some system engineering but focused on detailed design, programming, testing, quality assurance, project management, installation, plant-site alignment 11 and maintenance. Volume, by measured shipments software lines systems, of source excluding code), EASL (about 700,000 software project was 4 million and the range was customers hardware, utility included, usually the in software application million as operating size of an application source code), of lines Projects generally consisted of 150 to 300 and took more than three years real-time tasks to EASL. to 21 1 such software basic 7.2 1986-1987 (about 1.3 in and language processors. The average utilities, about totaled (EASL) per month equivalent assembler source lines million customers, to addition and to Systems sold complete. to computer and subsidiary application peripherals packages, a subsystem (database management systems, user interfaces, input-output interfaces), and an operating system.'' The (Figure 1) consisted of combined floor space of facilities with a 1987 in three 17,000 square meters. two contained the terminals or work stations, Work Bench (SWB) individual facilities, documentation service center, third building (in the a rear) file interconnected referred to as storage stack room, and contained facilities work area had an SWB terminal and CRT display, at U.S. erect another building add lap-top computers a Space and money constraints approximately one terminal per four programmers, programmers firms for a serve as terminals. " lounge. a The completed Each individual key board, and a small the factory to limited compared such as Hughes Aircraft. 12 first the Software testing to one each for Toshiba had plans to and increase the number of terminals, to The work areas, an SWB service center, software with hardware manufactured by other departments. hard-copy printer. ^° buildings as well as to Individual area I har I So . 3 Buildint (lest Are 7; /I 'o/kuav T-V ^ No.l Buildini: I U.» L. _ — . NO.; B: f /' /' ! _> L Front side An overhead view c: the software factorv A view of the software factory from front side f; Y ' ' ^ / The development initial beginning 1977. in infrastructure (the Fuchu Works, the actually first called provide single a six technological The SWB system was ^ SPS (Software Production System), and was designed uniform by km apart), people software the of the at from the Hirano project or even funds. corporate and interface programmers Toshiba factories different area (30 to 40 from not members 15 to development for SWB system) came but 10 of general located were hardware development all not (including support centralized distributed at Introduction of the system beginning single location). at Funding ^ development software consisted staff Fuchu) in in sites to for (not a October 1977 was the Tokyo- Kawasaki making minicomputers and microcomputers. The brought together the one in since location were not centralized and company managers activities By wanted programmers located in each factory. supporting 600 programmers at these different sites, 50 on-line workbenches (150 planned by 1979). 1978, the SPS system was although handling only ^'^ Since the volume requirements for software were so high at the Fuchu Plant, and use 1986, of the the terminals, software. to "target" test SWB system occurred most of the development of the system was primarily system was connected to a to this By centralized layout (Figure 2). accommodate 750 workbenches central facility, computer which or processed on-line all SWB The data highway transmitted newly assembled or compiled code computers being shipped to customers and made the machines dispersed able a in at with plant SWB system, around one minicomputer, with or process clusters and the clusters network. ^^ 14 Toshiba also used simulators. consisting all possible to it of several connected to a workstations a local area PLANT SIMULATORS COMMUNICATION CONCENTRATOR (CONNECTS BETWEEN DATA-WAY AND TARGET COMPUTERS) i CONTROL DESIGNERS' WORKBENCHES PROGRAMiMERS' WORKBENCHES SVfE CENTRAL COMPUTER Hardware Configuration of the Centiaiized SWB System PLWa SIMULATORS COMMUNICATION CONCEWTRATOR(CONN£CTS BETWEEN DATA-WAY AND TARGET COMPUTERS) ^ CONTROL WORKSTATIONS SWB CENTRAL WORKSTATIONS Hardware Configuration ^V<n^^'^ 3^ of the Dispersed SWB COMPUTER Svsteiii is It not. important to While "factory" note was really structure of the Fuchu matrix a Plant, support environment to construction), and testing. but accompanied product what the Toshiba Software Factory well about 2,300 workers contained it as organization providing software a set design, in fixed a imposed over of and tools systems the a implementation The software was generally hardware location, not a produced also is the existing development (program stand-alone at Fuchu. Toshiba's conceptualization of the product development cycle was also similar for both the hardware and software developed (Figure 3). 16 components of the systems Fuchu v^ I. C n s g ul C 71 c 0) E = c^ c a; > IT o o d T3 O I- o. 21 E ^^ O) >> C c cr c ^ 5 Moi ZT 1. Vt :^> "TV 1. If Given Software matrix the although Factory, The tools; the was fifth was there Four were five large sections. responsible no formal a organization major five tasks: SWB service promoting center, software storage room, assurance plans file quality the of consisting of SWB and for SWB maintaining the system; managing (1) developing new tools to be added to the (2) manager single charge of commercial software production. in for was there structure, SWB all the (3) facilities; (4) factory and entire providing necessary assistance to keep this plans on track; and (5) measuring and accumulating (quality) reliability data metrical responsible for overall about 20 engineers; the for productivity evaluate to software factory. entire and 1987, In software the maintenance of the factory environment consisted tool development involved about 15 to were formally part of the Fuchu Work's R&D The Fuchu Works contained staff. several staff customer-site installation and customer claims, as The 20. departments, well as such for overall line assurance, however, as well were located physically System engineers manufacturing, the in tool set Software not remained move in to the different line quality including testing, Factory programmers from departments to the Software Factory with each project. did for quality building, where and other systems. -^^ moved with part of the Software Factory, as The software designers and programmers, and product control. they made use of the factory's for as latter departments for each product area; these departments included sections for design, software, of '^'^ But the key organizations were assurance and control. hardware and group the product-line They then became although they were considered specialists and line departments, departments outside 18 and their direct supervisors the software facility. Each belonged to departments outside of the factory, formally project project. . same the .follows software factory once it disciplines management procedures and becomes part of the factory."-^' the in first software U.S. factory at much with System the of required This cooperative "matrix" management system that was attempted, success, but "each a less Development Corporation (SDC).28 To effective facilitate software the of utilization the facility, Fuchu Works's engineering administration department provided staff-level guidance to groups the from manufacturing, software electric factory, and preparation, different on departments applications power generation, methods sewage treatment) development, program technique. (such Toshiba steel using the environment equipment, managers as referred to the vertically-linked staff activities as the "product engineering system," and the horizontally-linked industrial-sector activities as the "production engineering system," both management being in "hard" produced products example, from "implemented" the or pursued in groups as well as at wrote a what Toshiba industries designed engineering "manufacturing" In of "engineering matrix designs. They received blueprints, elsewhere. organizations, This implementation were places that mass- traditionally separation was also and of one then constructed design from for or program a software Hitachi, and NEC model varying degrees within the Fujitsu, for Toshiba. Toshiba's case, system engineers, the an calls system.''^ Factories factory, part requirements specification who interacted with customers and and high-level designs, remained formally attached to departments outside the software factory and sometimes 19 outside the Fuchu Works. Toshiba accomplished this by breaking down the requirement process customer's specifications specific objectives as into well two parts: constraints as Part to was done by system engineers outside the Software Factory. requirements, its operation document done after analysis structured precisely outlining to arrive at They relation with the customer different programming move in while initial the projects Factory systems development (i.e., all so of a separate resource and moved around needed; as was possible this methods and in do easily Toshiba was even able tools. other divisions such as nuclear power in 1987 to operated at in 100% sales. For example, capacity for power- the designers and programmers from this area, all the other areas such as railway systems and factory automation were not busy, sometimes "handed code. to the designs were being which accounted for about 60% of the factory's revenues, were busy time), I the system was completed. "^^ until programmers from plants Software Part a responsibility for the projects and for manufacturing that were experiencing drops station the of was This was done by members of week when the a also retained formal because of the standardization to II The system engineers, however, usually came Programmers were considered as to Part some performance parameters that Toshiba would Software Factory several times completed. This follow. the overall functions of the program and simulating then use for negotiating with the customer. the Software Factory. the such as cost and time, and particular methodologies the customer wanted Toshiba more included i and provided manpower did off" their the addition, customers own high-level and even functional design, and then to other areas. documentation to Toshiba, How much work the customers did 20 In which turned the designs into depended on how skilled they were in software, to hide well as from as Toshiba. how much example, For thirds of their programs themselves, of factory automation systems knowledge they wanted of their propriety steel where companies wrote generally two- auto manufacturers and users as asked Toshiba to do even high-level usually design. ^^ II. THE TOOL SET The Software Workbench System Before the SWB system went operation into development was largely done on punched cards, The SWB system evolved each project. (requirements and definition (detailed design and coding), testing, set of linked system "^ . support tools for design programming program design), and program maintenance, databases reusable for To assure consistent operation called also for development "paradigms" and and software as well as a parts registration, recording program changes, cost accounting, and other functions inspection, (Figure 4) subsystems 1976, and methods differed for into a set of high-level in disciplines management in to a general (defined facilitate conceptualizing, of the factory tools, development approach by Matsumoto rationalization analyzing, as of "a the designing, set of and the SWB specific methodologies activities implementing, and the testing and maintaining software products") optimized for different applications, such as steel processing software, or nuclear power plants software.''"' 21 ti<» «XCriptlon •Dtiign tptciflcition description - Specif *c*tlon vtrlflC<tion, p«rfon«nci Project control iupoort (SU8-P) ev«lu«Cion flC t»»n tit (xi support (Sy8-t I I i *00' iCi - t ) ion 9»ritr*tor Mign-levf) Unquiet Screen poci^vnt dati generit ion K4n-nogr infl pe** IQO cstinttion Cost ind schedule control support (swe-ii) Test Source oeou99cr Ouil U)r control support (SW8-0) Execution aoni tor Plant siaulator Test cover«gt •u9 estiaecion •U»nt*n*nce support (SW8-IV) ' Figure Source C3(M mtljrsis TrcuOle ma )yS)S 'tooile struccure report Software Configuration of the f. ir^ SWB System User inter^*ce iuoport The historical Matsumoto and other priorities factory structure SWB system evolution of the gives some indication of the engineers Toshiba set in implementing the The system was being continually developed, (Table 3). increasingly incorporating computer-aided engineering, design, manufacturing, and testing The first major tools then only capabilities did support to aspects all supported simpler tasks Toshiba introduce design, project management, and for tools software of like development. ^ requirements consists and of quality assurance. cross control debugging facility, facilities for types all file under the supervision library processing operates (a high-level 1977), Fortran, and PL/7 assemblers (a the command remote batch mode. control real-time language for Toshiba's in of of minicomputer series, to access a structured control. libraries Language and Cross compilers for TPL developed in high-level system description similar to PL/360), produce object codes for the target computers. manages the object codes computers. target language for minicomputers machine-oriented, this language processors, text editor, a Programmers use their on-line terminals (workbenches) project of the To support coding, code generation, and debugging, command a and specification SWB-I was developed during 1976-1978 and formed the backbone factory system. ^ and coding and testing, and cross The librarian and adds, deletes, and replaces members within the object libraries. "^^ 23 Table 3: EVOLUTION OF THE SOFTWARE WORKBENCH SYSTEM Development Support Tool 1976-1977 SWB-I Improvement/Automation Focus Programming Environment (programming, compiling, debugging in the source level, project files, program generation, program reusing and link edit) assembly, 1978-1980 SWB-II Test Environment 1980-1985 SWB-P Project 1980-1985 SWB-Q Quality Assurance 1981-1983 SWB-III Management Design Support (requirements specification, software design description, and documentation) 1981-1984* SWB-IV Program Maintenance 1986-1988 Various Document Preparation Expert System [for Design] Reusable Software Integrated Database Sources: Note: p. 12; "Development of SWB for Toshiba Fuchu Software Factory," received from Y. Matsumoto, 9/4/87. Matsumoto 1987, *Author's estimate. 24 Also as part of SWB-I, called tool a PROMISS (Program Information Management and Service System), based on the software engineering database (SDB), maintained related a program library storing registered program materials and such information as changes programs were either "standard" information the in database and release program covered target computer name, status, modification notes, SYSGEN (System Generator) subsystem by serving specifications to a program and select modules database (Figure registration documents data standardized language described, 5)."^' 25 facilitated generator, module locations, list, and released job or customer names. the as Management programs or "job-oriented." system/program module names and configurations, codes to be performed, Registered histories. In function version addition, the reuse of software using packages requirements from a reusable Test specification Require- Syster. ^ specification SADT DRl Software specif cation -* *3 PrograiT^ specifi- CASAD dr; cation Coding Design language Top down rules ao HIPO SP rules SWB-I r uReuse proven J~ Sof tware genera tion 1 SYSCEN Register proven programs prograr. T PROmSS PROMT SS *5 *1 »- *') , 3 •i » -» *- Test report Module test —r~ XMAS Object code Translate ~~f SWB-1 Load intc target computer System ? Tes , report test DLL Plant site SHB-E DR4 test — r Test report -^ release t DR5 *5 *Fig- Software production life cycle, mile-stones and tools/methodologies f Y7-r • Automated program generation was possible for well-defined applications like power-plant software. requirements system) described definitions CASAD the Factory, This involved the direct generation of code from in a (computer-aided system At format. specific and analysis the Software documentation produced applications programs for thermal power plant control tool by selecting modules from reusable parts database and then automatically a linking them."^^ SWB-II provided test simulate data, Software for connected this resided tool in being test execution, and conditions, real computers to to control facilities the tested generate computer, customers and analyze record test test-support for collect through formats. which was high-speed on dataways.*^^ SWB-III supported various approaches (contextual, functional, dynamic) to analyzing user requirements, relying primarily on three tools: CASAD (Computer-Aided Specification Analysis and Documentation) analyzed different views the of requirements, requested defined relationships, specifications. generated documents matched FCL/FCD (Functional Connection Language/Functional Connection Diagram) described functional dependencies, data structures, and external interfaces. PDL (Program Description .^'^ PDL were tools Language) described module structures and internal interdependencies was not used to generate code available that did this. more widely was real-time that applications even though there Matsumoto's reason for not using program generators memory the allocation software were critical, such code more efficiently SWB-P supported directly, in and response times for most and programmers could design terms of machine performance.^^ project management through 27 a set of carefully defined procedures in combination progress. Project management activities met a computerized management followed planned particular baseline, test inspection, with this around called a monitoring standard specific for a "baselines." design milestones lifecycle review, or control of configuration (Figure 6).^^^ 28 of model, When a and with project code inspection, START CONT'D .^ PLAN DR 2 REQ. A. SYS. D. —FU NCTIONAL ^rn BA^ V LINf EXT. DESG. drH" PRODUCT BASELINE ALLOCATED BASE LINE PROG. DESG. T D INSP. OPERATIONAL BASELINE 6 DELIVERY DES2GN_BASE_UN_E The target computers consisted Due or more types of microcomputers. decided to through a is of ^"^ done 700 computers a in a batch mode. host disc, data the testing is linking single processes interface to software centralized Program design, editing, and debugging The source programs are allowing designers to programs build The object program being constructed files. into provide these a debug Large-scale data processing, using various compilers or assemblers, on-line from remote terminals. by and compile, general-purpose mainframes with Three ACOS users. tools. group Toshiba managers diversity, to this assemble, text-edit, centralize minicomputers and five of four types of also in a sent subsystem by instructions to the Fuchu Plant's of layers of working in testing system, loaded is the test computer. general done centrally controlled the host computer in is Various thus fully hardware continuous flow software development activities with development. ''^ Matsumoto conceptualized the operation of the system layers. ^^ centralized The first served as a in terms of three centralized program library, the second as production-management database, and the second and a third together as standardized project-development databases: The SWB system consists of three general purpose computer (ACOS layers. In the top layer: a large 1000) serves as a storage of all completed software products which are already in operation at each customer site. The software products include all documents such as specifications, manuals, notes, program source lists and operational instructions. In the second layer: several clusters are connected to the ACOS 1000 A cluster consists of a mentioned above through a local area network. large minicomputer (GX) with 32-64 MB main memory, a second level local area network and plural work-stations connected to the second The GX mentioned above has a storage of level local area network. documents/data/program and others which are needed to execute project management, configuration management and quality management. The above mentioned second layer 30 file connected to the mini-computer (GX) also stores standardized templates for the specifications, formats, and illustrations. Reusable specifications, reusable program modules and reusable documents are stored in the same file and can be retrieved through personal work-stations. texts A file server is connected to the second level local Designers can personally store under-developed network. documents, programs and data in the memory of each work-station If personally. they want to store any information or software resources which are commonly usable among project members, they can store them in the file server. the third layer: In area Each work station was viewed as also provided an the bases, automated centralized a "interface" production SWB system factory work space; the support tools, linking program base and data project the metaphor that the space CRT of work space where the individual Users can through access CRT all facilities patterns." through the SWB are tools network due to the Toshiba's operating to like is it possible to develop then transfer it to the is based on space of factory the accomplish workload. his/her needed to accomplish their work were also integrated and accessible UNIX, use of system for industrial computers which makes software in the developed has a UNIX by ATE-T. interface, UNIX environment and Toshiba operating system. " SWB systems were Similar visits which Many display "The libraries: personal work-station mentioned above has the interface which data in use at other Toshiba software facilities. Most notable was Toshiba's main factory for developing and manufacturing office automation (OA) equipment, the Ome Plant. this facility actually predates the back to 1968. computers, as as in founding of the Software Factory and goes Ome produces hardware such well Software development software systems. Toshiba's information systems division. 31 as personal computers Organizationally, Ome and office is The 400 software personnel part of at Ome in were divided 1986 into departments five software, minicomputer software, and system administration. is responsible administration for done 1000 software engineers) of the at at the Ome Ome numbered approximately 400 computers office systems general applications The system administration department and production overall projects of software, applications covering process or 12 so Plant. control, subsidiaries 1986, In well as as another (with software developers at this facility.''" The Ome plant established the system administration department and adopted centralized approach to production management, a development, tool process control, subcontractor administration, and quality assurance, in direct imitation imported facility serve as a Workbench factory (SWB) system developed infrastructure technological OA needs and meet ASTRO 1984 in introduced users include all workstation (DP9080). ASTRO-M -- evaluation; project (2) management, ASTRO-V -- test evaluation, at the cost and all (4) Plant, process ASTRO-D based on the software engineers. ^^ 32 development to five support subsystems: control, documentation and project support; maintainability improvement. Ome systems Three designers are assigned The system had quality control and maintenance; facilities support own factory-type system, its computer- related groups, including gate arrays designers. -- to Fuchu (Automated System Technology and Revolutionary Organization).^^ ASTRO ASTRO the at also Ome then customized SWB aspects of program development and management. to Ome the success of the Fuchu Software Factory. Software the to of 1980, in -- (1) productivity (3) ASTRO-Q requirements definition, Toshiba was also expanding ASTRO one system, to its support 1800 III. MANAGEMENT SYSTEMS: PROCESS. QUALITY. PERSONNEL The SWB set tool would incomplete be without additional sets of procedures, techniques, or practices to integrate the support technology with Three the factory workers. Factory will be discussed productivity, cost, management, in and process analysis historical and personnel management, development; project section: this reusability, especially key management systems of the the Software management, (project of in faults including progress); each at quality phases of career development and especially training. Process Flow and Management A project typical code and 3 years in at the duration. factory 10 to 15 engineers programmers would be involved these people, Toshiba nearly a million There would only be about doing high-level design, who work Another was full would in lines of source 4 or 5 engineers time on one project until completion. do detailed coding. ^^ design, and To coordinate the 70 to 80 activities of managers broke down the development process into several distinct phases, each with prescribed procedures to be followed: Requirements Specifications and Design Phase: 1. Use SWB-III to define user requirements and prepare functional diagrams and documentation describing module and data structures. Define requirements for computer hardware and peripherals. 33 Software Manufacturing Phase: 2. Apply to the SWB service center for an SWB file assignment, which will be used to build the actual program. 3. Input data or program components through SWB-I terminals. 4. Assemble or compile using SWB-I, correct errors using the workbench editor. Software Testing Phase: 5. Down-load the object codes the target computer through the into SWB terminal. 6. Using the simulation language, set up a and pseudo test scenario real- world conditions. 7. Using SWB-II, start test execution. Deliver system to user. System 9. SWB-Q. Quality assurance procedures executed using step 3. 8. Correct errors by moving back to At Installation and Alignment Phase: customer the site, programs, modify if necessary, using portable workbenches accessing the central SWB system through telephone lines. Maintenance Phase: 10. Maintain customer software, Toshiba Matsumoto followed referred to the as using SWB-IV. levels software coding), as well as testing (Fig X; abstraction of used "manufacturing" cf. 34 Fig y) in (i.e. design in what programming or In this figure, binary object codes generated as the result of Trans 4 are linked together with existing codes in step A4. Product 4 is assembled with existing software fragments, utility subsystems, and an operating system in step A3. Product 3 is the software system that will be loaded into the final computer system. Product 2, the final computer system in which Product 3 has been loaded, is installed at the customer's site. Product 1 represents the large system in which Product 2 has been embedded. ^^^ management involved the following steps: Project cost was confirmed at the beginning of into "unit accomplish software configuration were not determined The project (2) activities workloads," with each unit defined as "an activity to were divided a project. a Target project (1) at all item by one person." once but were defined Unit workloads the beginning of each at development phase; target costs for each unit workload were also defined this time, derived from the total estimate. definition of each workload. unit for each unit workload, personnel on (4) who would be responsible included specification sheets or source lines should Also figured into these items were the characteristics of should be reused. deadline. how many Specific planning followed the what would the cost or hours needed be, how much software be completed, the This (3) at as well as of the software being developed, the project The computer analyzed progress status and expenditures, based information entered daily or weekly through the workbench terminals by each person deviations in charge between each of current and Workload Order Sheet or UWOS) assignment."^ management." unit workload. target was delivered Matsumoto characterized Previously, A status. this to then displayed printed output It each approach individual as the (Unit with an "look-forward managers attempted corrective actions regarding 35 the project schedule or expenditures only after made or weekly Daily items. it familiar Toshiba that so programming and testing phases Brooks that This was late. developing in adding consumed people adding manpower New types and products on a enough, then work flow. has demand If will the found, also in due to time however, that later, it Frederick who maintained system, made projects for the new department can be created software development in ""^ the factory, such as are not put through the normal factory Separate job-shop basis. a people the experience of software done for the first time of line to project Matsumoto manufacturing automation programs, process add to the design level does not reduce lateness. at progress. ^ speed up progress on projects that were software late a able System 360 operating communication. in to was somewhat contrary IBM's to contrast, in and procedures were sufficiently standardized and tools employees to in still on specific in through the current system, reports possible to act while portions of the project were The factory running reports came in organized are for new new product becomes large the Fuchu Works and the take place through the normal process.^' Cost and Productivity Management In 20% in about 60% of the 1986, intermediate languages. and converted to and 20% languages, Data declaration numbers in lines to productivity Matsumoto, as lines of as well as in Fortran, real-time problem-oriented user-specified executable lines were counted and "capability-based" measures.'^" despite code in written Productivity measurements were then EASL. classified according to cost-based According software was numerous arguments produced over time, 36 against the Fuchu measuring Software Factory has used equivalent assembler source lines (EASL) primarily because of its simplicity, and his desire to focus on productivity improvement over time: Our aim in measuring productivity is improvement. What we need are understandable indices with which we can compare current and past productivity data in some consistent manner. .Measurements must be extended to every detail of all software products. The amount to be measured is so large that the measuring must be as simple as possible. Expending significant overhead cost for the measurement should be avoided.^" easily . Overall, the "gross production rate" (GPR) of the software factory was measured by instructions generated per programmer per hour and per month, although there were more specific indices followed (see Figure 7). program consisted of efforts for requirements analysis, An entire specification, coding, test, and maintenance up to commercial availability. design, Toshiba counted the number of source lines and object bytes produced from these activities and divided by the total number of employees in the factory, with separate measures kept for newly produced code (GPR-0), new code plus reused code (GPR-1), imprecise code and total delivered code GPR-0 was considered (GPR-2). an number because programmers did not accurately distinguish new production GPR-1 was taken from reused code, according as the actual production 37 to Matsumoto. rate of the factory. As a result, Source lines ;Mj.-Ders 9-iCtganization of enployees per month Reuse syscem or system generator Source lines per nionth Proven programs ~H -^H GP GPR, r^ Fig. G?R, C??. G?R„ ^ GPR in Fig. 3 3 Diagram to explain GPR are defined as: (average No. of logical part source lines newly written for delivery per 3 inor.th in the whole factory )_ (Numbers of total factory employees) (average No. of logical part source lines generated for delivery from reuse part of Fig. 3 per a aionth in the whole factory )_ (Nunbers of total factory employees) GPR, CP^ , h ^ -,.,.. (avtraec object codes in KB delivered I'er a rior tn in the vnole factory Cumoers oi total factory er.plovees; . ^ Object codes KB Translator per month ^ The profit production of reach was factory Toshiba rate. generate to the certain estimated considered and attempted to gross the of how much code they would goals, profit function a need deliver this to code without exceeding the budget they simultaneously established for hiring new programmers. According factory to hiring limit of to Matsumoto the previous 4 years. profit 1981, new software employees requiring them to improve GPR-1 year, in to a forced goals maximum of the 4% per productivity about 14% yearly over The basic strategy developed at the factory to meet profit and productivity goals consisted of four elements: Promote registration of proven programs and reuse Develop an efficient system generator Develop tools and promote better utilization software Control quality before strictly shipment, and define requirements as precisely as possible. °^ Cost-based development cost. project's profit margin, Measurements of centered productivity This determined the financial factory "target cost," price cost/person-month, were made for 6-month on estimates charged each a customer. and cost/EASL, profit/person-month, periods, for the factory's desired plus Toshiba of for the entire factory and for each fil project. ° Capability-based productivity was more individualistic or subjective, and was used for progress management, work assignments, and career whole, for development. The measures were done each and project, for each 39 individual. education planning, for the They factory also took as a into account the type of function or purpose of the software being developed; correctness versus speed characteristics of the worker, including the number and type identified of faults type of product, in design review, testing, or by the customer; terms of EASL as well as specifications and test items; in whether the person was an analyst, designer, programmer, or test engineer. What Matsumoto called measured every months, 6 Toshiba customers. lines per month U.S. programmers code produced In beginning in gross productivity" based on 1977, EASL accepted by .""^ per several times At Toshiba, commonly cited levels studies in however, over 48% of the 3100 programmer month 1985 in was reused lines from productivity gains were erratic, 1976 was even dropping 12% improved output 13% between 1972 no higher than the 1973 level. still of of other 4). the five years prior to the opening of the Fuchu facility, engineers was Toshiba workers were nominally "producing" about 3100 by 1985, programs (see Table "factory-scoped -^ in 1975; and 1973, In software Fuchu software but productivity in contrast, output per worker rose 22% during the first year of factory operations, and productivity was up 70% within gains 5 between annually. Improvements were much slower after 1981, years. 1981 and Improvement the order of 2% a 1985 totalled in merely 8%, reuse rates between thus 1977 averaging however; about 2% and 1985 were also on year. These annual figures do not correspond precisely to annual software production because they reflect delivery of code to customers, although they provide a general estimate of output performance. indicated black box and white box modules; included reworked code. The reused code figures some of the new code, however, Toshiba studies of reuse rates, number of 40 lines in changed when modules and overall reused, productivity was significantly improved without changes. productivity was If negative. impact on productivity. Table 4: only 20% was 1000 Pre-Factory: used about 80% of unchanged, Between 20% and 80%, a the indicated that module was reused impact on there was overall no noticeable '' GROSS PRODUCTIVITY Year if productivity, £ REUSE AT FUCHU SOFTWARE FACTORY EASL Instructions/Proqrammer/Month and more to productivity such labor" reuse of actual appeared as design to (Table be a car transport, proven code. ^ according to Matsumoto, The seems 5). reduction Other factors or of "trivial through the development of new leveling to off of productivity Table 5: ° SOFTWARE FACTORY MAN-POWER ALLOCATIONS Man- Power Index = 100 higher routine tools; and improvements, have come from the ceiling Toshiba practical levels of reusability of about 50%. Stage to elimination hit in TOTAL leading has components was considered the most important long-term strategy. survey asking employees individual productivity reusability cited as and in the software quality the major factor, targets followed factory reflected how they met their this strategy, CO IN MEETING PRODUCTIVITY AND QUALITY TARGETS % Impact Factor 52. Reusability Improvement of work steps, procedures, environment Application of new software tools Application of new software engineering methods Improvement Use of of functional decomposition higher level languages with by process and environment improvement. ° FACTORS A 1985 assembly and construction of new programs, usually for specific applications, based on reused modules. ^ Central constructed of construction determined, the to different of to reusability a these large layers extent, the prototyping, and careful and interfaces machines or applications reusability, strategy was interfaces and the the notion (Figures programs 8 and 9). they how reusable or transferable code was. The factory's program generating definition of these interfaces all as The connected to different implementation relied and layers, and the software of heavily utilization of on of a what E.W. Dijkstra called "layers of abstraction" (requirements level, data/function level, program/coding level). Toshiba developed prototype systems either by building them from scratch using simple languages such as Prolog, APL, or Basic, or by constructing them from existing modules and then modifying the software to fit user requirements.'' 44 TOlf f*?^''^'* i \ .1 APPLICATION SOFTWARE SUBSIDIARY APPLICATION INTERFACE PACKAGES UTILITY INTERFACES OPERATING SYSTEM k' INTERFACE 4 HARDWARE f \ . Figura I :.,?*, A F.^j ? t SUBSYSTEM INTERFACE: j ,..J 1 • >! .) ' i- aoftware configuration iUSERS' NEEDS, SgV.^BHS ntVEr Of* ' ' cnou/ «E0«llrt1»IENTS :i.(« r ri: JCCONO I LEVELOF ;< WIROLEVEL-OF ^ ABSTRACTION FORM 2 FORM 3 PROGRAM .j3^iitv.-, XEROGRAM. 1 FIgura The four levels of abatraclion in the software design process. In Trans 1, the user's needs (Form 0) are transformed Into requirements specifications from which the requirements model (Form 1, the first level of abstraction) is produced. In Trans 2, the requirements model is transformed Into the system design from which the data/lunctlonal model (Form 2, second level of abstraction) is produced, in Trans 3, the data/functional model Is transformed Into the program design from which the program model (Form 3, third level of abstraction) Is producea. In Trans 4, the program model Is transformed Into software programming, producing the actual program codes (Form 4, fourth iaval of abstraction). To implement the reusability strategy, Steering Committee, a Reusing Parts Department, and a Toshiba on relied Software Reusing a Software Parts Manufacturing Software Reusing Parts Center (Figure 10). The Steering Committee determined which type of software parts needed to be created as well as updated or discarded already if Toshiba termed "authorized needs"; in the reuse system. The Manufacturing Department newly produced software parts to determine which met the all necessary criteria; these parts were then deposited part identification Software separately. keyword and Database, Item A central and issue phrase were the to software measures such parts as were fitness, quality, of the in the Reusable was part keywords, stored which Evaluation criteria to determine enough clarity The the Parts Center. reuse were the effective good in registered body actual represented the functionality of the part.'"^ which decided what these needs were then communicated to the Reusing Parts Manufacturing Department. next evaluated It for the focused database ("definiteness" of on descriptions, clearness), abstractness, simplicity, coupling level (with other modules), and completeness. module Specific concerns identification performance module (Table (such as and addressed the "human interface" (such as algorithm response time), 6) 46 descriptions), and interna! software interface, configuration of the PROJECT XXX PARTS MNFG. DEPT. SOFTWARE PARTS STEERING COMMITTEE REQUIREMENTS -m DESIGNER PARTS CENTER E L I V TEST, V 4 V SECTION PARTS iRETRIEVAL PROGRAMMER* E PROGRMR. ST ,_ 'RSI D.B. PARTS DESIGNER r S T E PARTS CERTIFI- CATION ALTERATION \MAINTAIN^ NOTICE UTILIZATION STATUS l_ SYSTEM CERTIFI- CATION •REUSABLE SOFTWARE ITEM DATABASE Figure T^'VWaJ Organizations to Promot? Reusabilitv i^ Characteristics Huaan interface: identification (najning) environment descriptions algorithm descriptions requirements description instruction manual Software interface: calling convention communications f ittness quality level def initeness quality level quality level consistency simplicity declaration of public entities procedures and data degree of hiding dependency descriptions: dependency to CPU, OS, language, devices, utilities, subsystems size of global conLiion, cross references tasl? Criteria auid synchronization presentation of trace up and do'-Ti user aids (accessories such as test drivers) Performance: response time presentation efficiency presentation reliability accuracy, robustness, default, exception hemdling, fault tolerance def initeness abstractness quality level coupling level complexity structuredness frequency simplicity def initeness completeness def initeness def initeness def initeness Internal view: Internal configuration: presentation dependencies betseen configuration items functions number, size unde r 8 t andab 1 1 i t interactions between internal functions clearness coupling level appropriateness complexity strength data: appropriateness simplicity number, size structure level Characieristics and Criteria for Evaluating Reusable Parts T^^'^ (^ While some firms (like Hitachi) merely evaluated completed programs for modules that might be reusable Steering Committee packages applications and management, in other development the directed actually systems" programs which worked specific other projects, the Software Reusing Parts in "semi- between operating systems and industry- communications, control to These types subroutines. utility generic of database standardized of programs cost considerable manpower and expenditures which no individual manager could authorize; therefore, according committee was the development of such to critical committee did not have reuse for reusable The software. permanent membership but members alternated and a would vary depending on the types Objects Matsumoto, the role of the to (called of programs being discussed.'^ "parts") included documents modularized (contracts and manuals), specifications, programs (code), as well as test cases and software that served as design-aide tools Every authorized reusable "part" was registered and application in attached checklist explaining their characteristics were kept on the factory, phase, and project the average factory reuse rate a central database with an (see Table 6). levels. EASL was 48% for generators. As noted in Statistics the table, in For 1985. design documents, the reuse rate was 32.5%.''* Registered job-oriented programs were divided programs. were registered on disc oriented programs generation or The former's file mill source codes and function as control; specific their systems, source of the such codes magnetic tape since they were not accessed frequently. (55%) abstracts within the Software Development Database. were treated rolling standard program modules and into "* as were for Job- power stored More than on half reused parts during 1984-1985 were of 1000 to 10,000 EASL and 49 consisted mainly of "black box modules" -- common functions or subroutines, recalled from the -- reusability parts database by parameter or function and application-oriented modules contained white box About 36% 10,000 to 100,000 EASL; The parts." "skeletal the content of which "slots," change for different applications." sized modules or box" "white names designers could the reused parts were of these were mainly common utility subsystems, support systems, or tools.'' Project design meeting review develop to after Reusable parts were examined and decided user requirements. defining the managers determined what parts they had or functional the at allocated in (see baselines Figure 6)."^^ Managers abstraction, recommended the working down interfaces program and parameters, as stressed well data careful as The languages used library."*^ parts of at high a defined lower levels.'^ to explicitly Toshiba technology, design reuse at abstraction, In clearly level of terms of defined cataloging of modules for the Toshiba (mainly Fortran, PL/1, intermediate and machine-level languages) were not specifically designed for data or procedural abstraction (which useful for reusability), although, is in Toshiba was using Ada to describe program structures, before building 1984, prototypes using languages such as Prolog, APL, and Basic, and then final PI programs .' The inventory policy of of "promot[ing] reusable parts registration of was continually proven expanded due programs and reuse." to a The system enforcing this had four major elements covering promotion, execution, and control: productivity (1) At the start of each targets from their project, superiors 50 that project could managers received not be met without reusing certain large Programmers were components per fiscal percentages required term ( a of register to code a and/or certain documents. number reusable practice Matsumoto thought would be difficult to institute in the United States). "^ (3) These personnel received awards for registering particularly valuable or frequently reused modules. in of (2) (4) Deviations the performance of each individual from the objectives were monitored by computer and reported to all concerned. Matsumoto explained: Factory members are enforced [sic] to register a designated number of The registration is received by reusable modules in every fiscal term. the reusability promotion group which is a permanent organization in A standardized formalism is enforced for describing the factory. specification, logic representation and semantics of each module to be registered. The reusability evaluation committee examines the quality of each registration, and decides if it is acceptable or not. The accepted registration is taken by the reusability promotion group and transformed to the form which is included in the second layer (GX) Persons who registered valuable reusable database mentioned above. modules or frequently reused modules are awarded. How to promote reusing? At the beginning of each project, each project manager is given several objective parameters with which to steer his/her project. Project productivity is one of the given objectives. Without reusable modules, given objective productivity is Reusing is autonomously promoted by each project not attainable. member to attain the given objective. How is it done autonomously within each project? At the end of the requirements definition phase, the semantics of implementation model is created. Then existing reusable modules which seem to fit the model are selected at the design review meeting. (1) the (2) that Objective parameters which are given to the project are refined so each quatum parameter represents an objective for implementing each workload unit. (3) An accumulation of personal accomplishment is entered to the SWB system by each designer or programmer daily or weekly. The SWB system is capable to display deviation between accumulated effort and corresponding objective Quantum. Each individual corrects activities by checking the deviation .""^ 51 Managers imposed classifying them as contents of to a several on criteria modules software reusable and registering them One, the the library. in before module (objects, relationships between objects, algorithms) had be easily understandable to users who did not develop the code. and requirements the interfaces to Two, execute the software (other code needed, language being used, operating system, automatic interrupts, memory needed, I/O devices, etc.) had to be clearly specified. (executable on portable Three, the software had to be types of computers). various transferable (modifiable to run on different computers, portable). Five, Four, if not designed to be the software had to be retrievable or locatable library by people who were not familiar with reuse was facilitated by the fact that, it.°^ It had to be it program a in should be noted that except for microprocessors, all the software the factory produced was for Toshiba minicomputers, which we^-e all compatible on the source-code level. °^ Matsumoto also found reusing that modules encapsulated from the higher levels of abstraction (requirements level and design level) "increases extraordinarily the number of reused modules and the reuse frequency of reused module.""" Also to facility reusability, Toshiba supported a a methodology called "50SM": number code one module to than 50. 1. Limit the 2. Construct programs by combining three types of modules: of lines of in less processing, data, and package. 3. Use Technical Description steps/module design Formula description) for (a visual describing external module specifications and inter-module relationships."' 52 language and for 50 internal Quality Measurement and Control Toshiba level reliability produce defect-free to of sure the software met frequency run" in The objective specifications the but, in product desired remaining after testing) of testing was make to under conditions agreed upon the in Software quality was then evaluated by error the customer. the tests done at the software factory, and then by "endurance customer the at all software The price included Toshiba's system. delivered the estimated total cost plus profit. ° contract with determined customers, individual (estimated number of residual faults price the attempt not with negotiations given did Formal site. Quality Assurance Test plans and procedures were written and negotiated with each customer for both types of Customer representatives also witnessed each test.°^ tests. Software reliability was thus viewed (2) the following requirement: "any fault of Product deviate from the specified performance of method in software products by Matsumoto's of Technology. is 2 which causes Product the number before shipment to customers, group Counting faults 1 to not allowed within 8000 continuous The factory estimated . developed Institute in cooperation started with with using the integrated of a Tokyo test and The cumulative number of and the calendar time elapsed during the test period were used to continued through faults operation "^^ real-time faults residual terms of (1) fault avoidance and Most of the software the factory developed had to meet fault tolerance. hours in estimate the detected in the number the of end of the plant residual faults testing period at test. the end of the tests. were corrected subsequent tests. 53 before All defects proceeding to During 1977-1986, the average program produced had a improvement during this time; seven-fold program had final the Depending test. customer's plant and 15% of completed averaged exceeded a between to 25% was 0.20 quality 20% programming faults. finished, faults The and 0.05. factors or residual final their baseline; by copies consisted of perspectives reliability, these the in By the time testing -^ per source 1000 stage alone 23 of elements the criteria maintainability, interoperability, efficiency, usually were defined for each baseline as they review meetings. concerned producer lines "^ checklists design faults 20% to 30% (Toshiba) testability, integrity, with finished and The 11 the flexibility, their list of factors, work filled each out criteria combining reusability, 7): at quality customer: and usability (Table 54 of Designers made entries responses were then compared with the checklists their reviewers of typical discovered errors; testing the lifecycle model and monitored using checklists. on the the factory or at in the of hardware interface year for large systems. Specific and 45% 35% 10% and between systems between whether the tests were done sites, were design errors; data faults; of mid-1970s, the in per 1000 lines of source code discovered during to 20 faults 7 the software factory There was, however, about per 1000 source lines of code. 2 to 3 faults in the correctness, portability, Table 7: TOSHIBA SOFTWARE QUALITY EVALUATION Criteria Traceability Related Factors Correctness Completeness It Consistency Correctness, Reliability, Maintainability Accuracy Reliability Error Tolerance II Simplicity Correctness, Maintainability, Testability Modularity Maintainability, Reusability, Execution Efficiency Storage Efficiency Access Control Access Audit M Integrity ft Usability Communicativeness II Communications Commonality Data Commonality Flexibility, Interoperability Efficiency Operability Training Software System Independence Machine Independence Testability, Portability, Portability, Reusability II II Interoperability II Conciseness Maintainability Generality Flexibility, Expandability Flexibility Instrumentation Testability Self- Descriptiven ess Maintainability, Reusability, Source: "Software Quality," Toshiba Y. Matsumoto, 9/4/87. Reusability Testability, Fuchu Software Factory, 55 Flexibility, Portability received from The system test inspections insure to reliability reviews and Promoters (engineering section, design section, (Table 8). other groups to these sessions as they deemed necessary, but etc.) invited in the responsible for section consisted of eight design carrying out the the different phase The independent review. was quality also responsible for assurance section was responsible only for the design review session at the end of factory test.^ The software factory circles smaller. subjects in 1986; a common size approximately 700 was 10 members each, voluntary quality many were although The most common theme discussed was quality improvement (45% discussed), improvement (15%), presentations also by productivity problems followed and the conferences were held twice awards had also a participated were given out for education year, in system (20%), methodology Factory-wide (10%). of QC and groups with particularly excellent company-wide QC conventions. excellence activities. ^^ 56 in a variety of Various quality-related Table 8: PR TOSHIBA SOFTWARE FACTORY DESIGN REVIEW fPR) SYSTEM Purpose Review of Specifications A Promoter Engineering B Design Section Review of Overall C " Review of Detailed Design D Manufacturing Section Review at Start of Manufacturing E " Review at End of F Quality Assurance Section Review at End of Factory G Plant Engineering Section Review at End of Site H Engineering Section Review of Performance Section Source: "Design Review System," Toshiba from v. Matsumoto, 9/4/87. 57 Design Manufacturing Test Test Fuchu Software Factory, received Career Development and Training One problem skilled and less that U.S. firms have had with division of labor into highly skilled jobs within software organization was that talented a software staff did not want to work at mundane tasks such as coding; and people hired only as "technicians" to do coding or simple support tasks had no career path of advancement. The solution arrived at by firms such as IBM and Data General has been to hire the capable of doing both design and coding, more operations with less but to skilled less and ask these workers and career development system for personnel all At the end of 1986, software factory. to people perform support help.^" Toshiba has dealt with this potential problem through the recruit hired formal training a work to full-time in the 2300 factory personnel, of 20% had doctorates or master or science degrees; 30% had bachelor degrees, and the years, rest were high-school however, about 60% graduates." are The trend away from hiring the number small college. of To increase manpower, Toshiba had new employees entire first year. of full-time system to separate rather draw on had attend to a training full-time have masters than go on to larger supply, classes for the High school graduates were also advised to take two years in the in factory the as company part of subjects (Table 9). This 58 was The educational college. the career training program consisted of three course sequences, 22 recent no advanced courses provided 20% in directly from high schools was due to graduates who wanted to work which was college graduates. All and graduates college degrees. new employees Of development and containing a total of administered jointly by the management department, personnel engineering administration department, and the Heavy Industrial Engineering Laboratory. Along with investment this in career system that familiarized each Everyone specialize. -- the individual. factory best that had a and planning, them. All with fit their specific which of time this The next step on the assignment to do design work. paths personnel factory was a the basic operations of PhDs and high-school graduates The length out doing programming. on individual the regardless of their educational background, before allowing them the facility, to training After this, interests section assisted and devoted employees details of the promotion in had to start assignment lasted depended latter was a minimum 3-year individuals chose specific career skills to -- (Figure career 11). The software development consultation making the choices available system were publicly available."^ 59 to Table 9: FUCHU SOFTWARE FACTORY EDUCATION PROGRAM Basic Course (1 to 2 months) (Required Course of Study for 1. 2. All New Employees) Introduction to Computer Control Systems Computer System Architecture 3. Programming Languages 4. 6. Test and Debugging Techniques Structured Design Data Structure/Data Bases 7. Programming Styles 5. Application Course (2 to 4 weeks) (For Employees Entering Design) 1. 2. 3. 4. 5. 6. Requirements Definition Documentation Techniques Test and Inspection Techniques Control Theory Simulation Techniques Evaluation Techniques Advanced Course (3 months) (For Employees Entering System Analysis) 1 Contracts/Negotiation . 2. System Theory 3. Quality Control Project Control Cost Estimation 4. 5. 6. Software Engineering 7. Management Techniques 8. Human 9. Relations Decision Making Optional Courses: 1. 2. Industrial Engineering Operations Research 3. Patents 4. Value Analysis 5. Integrated Circuits Source: Matsumoto 1982, "Software Education 60 in an Industry," pp. 93-94. system engineering manager V specialist \C test engineer \ prog, 7- V D E system analysis specialist support statf B C design Dr. graduates A master graauates univ. graduates high school graduates Fig. programming -^ -S* year Career pattern for software engineers ]'\y.J The letters new graduates a through d the into Figure in indicate 11 points of entrance for The average high school graduate, factory. for example, did programming for 6 years, then moved into software design for 3 years and system analysis for before years, 5 reaching manager or software engineering software engineering patterns, however, were determined through a the position of Career specialist. series of steps involving both the worker and his immediate superiors: (1) Managers interviewed new employees and suggested a career path for each person that seems most appropriate. (2) Employees decided what path to follow, based on the recommendation of the manager and discussion (3) Managers drew employee given (4) An his a the interviews. schedule accomplishments" for the is planned to help the employee reach accomplishments. During the individual's career, and "target of chosen career path. individual education schedule his target (5) up in progress evaluated each through target accomplishment interviews. If is checked necessary, new recommendations for modifying the career path or changing targets are made. 100 CONCLUSIONS Like other Japanese software factories, Toshiba represents a development through the Fuchu Software Factory at long-term strategy to improve the process of software a comprehensive procedures, and management systems, collection and linking of tools, ranging from computer-aided design to 62 Also similar to other Japanese firms, career development. Toshiba managers appeared to conceptualize and with even more emphasis, then manage software development believe that the process could to procedural and of labor, outside factory. similar hardware, to terms in their of be broken down into distinct steps amenable standardization as well as division and specialization principally into categories for designers, programmers, and testers. Successful required tool although perhaps specialization delicate a has also "matrix" management of systems engineering departments programming departments organized within the and factory the and production operations design of Based on this separation customer of interaction and high-level to have truly product design from the work of the factory, Toshiba appears "rationalized" program development through standardization of tools, methods, and core components, actually, -- semi-customized customer and quality while maintaining the goal at data improvements a cost indicate in products at level a possible as low as that the factory to producing customized-- of of quality acceptable to the Toshiba. structure has Productivity brought and significant performance, even though output per programmer leveled off once Toshiba reached reusability levels approaching 50%. Toshiba factories in division of appears several Toshiba, to respects. led computer-manufacturing management and tool by other from differ One, Dr. division, development. it Japanese firms has and at Hitachi software and Fujitsu, manufacturing than rather led in commercial the software engineering The factory system perfected has gradually been transferred and experimented with contrast, factories divisions 63 software been the industrial equipment has Matsumoto, that with within have in their served at Fuchu other divisions. In computer hardware as the center for developing software engineering technology. centralized, the cases of In company-wide committees and central NEC and NT&T, have headed laboratories the effort to develop as well as standardize tools and procedures. Two, more than the other Japanese firms, the Fuchu Software Factory has attempted to operate as a true "factory" the sense of separating high- in design and then focusing on the building of new programs primarily by level assembling components from an existing inventory of reusable modules. was done but to some extent appeared it be to exclusive the management (control) systems programmers required to other Japanese firms studied at the register And no where else did modules were for needed Toshiba. at month. the focus a a certain of most No where number of else, of this project, in the This and technical for example, were modules for reuse each committee decide on what type of generic reusable parts database and then allocate Other Japanese software factories resources to develop these components. simply screened new programs that were written for modules that might be potentially reusable No doubt reuse strategy diverse, Kamata it other programs. in major a so effectively appears, Software reason than Factory the or why Toshiba has been its has been able to Implement focused range of applications at Hitachi's Omori Matsumoto and other Toshiba managers clearly did not let reusability Software either Factory Third, in happen or not happen, enforced, and monitored reuse other Japanese or U.S. more like like Works. sit Fujitsu s back passively and in a less Nonetheless, managers at at -- at fact level of the SDC achieved). discipline facilities. hardware manufacturers, 64 lines products (where high levels of reuse were not Toshiba encouraged, not apparent product its Toshiba explicitly offered a tradeoff in program and price. quality reliability Customers could obtain but only at a particular a certain other While cost. level of software producers delivered systems on contracts calling for quality specifications, there seemed be more of to Japanese firms, compared For example, historical rather productivity, quality and reusability continuously to eliminate tested Fujitsu systems control all focused on at at other Toshiba. bugs predicted by quality control and Since the type of products being made at the Hitachi, NEC, and facilities than preoccupation with cost, to NEC and data. inspection. Fujitsu Hitachi a the were systems real-time emphasis observed at and general control business applications programs made by Fuchu, Toshiba may be specific to its this product area. software, different Still, this attempt to maximize worker productivity and minimize total costs was clearly a distinguishing objective of its feature of the technological and Toshiba Software management systems. 65 Factory and the main REFERENCES The current version of the main paper from this research project is titled Michael A. Cusumano, "A Comparison of U.S. and Japanese Software 1. Technology, and Structure," Sloan Working Paper #1885-87 Revised 9/25/87. Another completed case is "A U.S. Software Factory' Experiment: System Development Corporation." Sloan School of Management 1987 Working Paper Facilities: School of Implications for Strategy, Management 1987 , , #1887-87. Yoshihiro Matsumoto (Toshiba), "Management Production," Computer February 1984, p. 318 fn 9/4/87. 2. , 3. Toshiba, Annual Report 1986 4. See Datamation 5. Matsumoto interview. 6. Shimoda, pp. 100-101. 7. Interview with Matsumoto Yoshihiro, 9/4/87. 8. Interview with Matsumoto Yoshihiro, 9/4/87. , 1 . p. of 2; Software Industrial Matsumoto interview, 1. June 1985, pp. 58-120; and 15 June 1987, p. 31. Y. Matsumoto et al., "SWB System A Softwaie Factory," in H. Hunke, ed.. Software Engineering Environments (North-Holland, 1981), pp. 305, 307. 9. 10. Matsumoto 1987, 11. Shimoda, pp. 102-103; Matsumoto interview. 12. Matsumoto 1984a, 13. Yoshihiro p. 20. p. 70. Matsumoto and S. Yamamoto, "The SWB System Supports Industrial Software Production," Proceedings of the International Workshop on Software Engineering Environments, August 18-20, 1986, Beijing China, China Academic Publishers, 1986, p. 74. 14. Matsumoto interview. 15. Shimoda, pp. 107-108. 66 16. Yoshihiro Matsumoto (Toshiba Corporation), "A Software Factory: An Overall Approach to Software Production," in Peter Freeman, ed Sof twa re Reusability. ( E E E Tutorial, 1987), p. 1 (2 December 1986 manuscript). . , I 17. Matsumoto, "Management of Industrial Software Production," Computer February 1984, p. 59; Matsumoto 1987, p. 2. , IEEE, 18. Matsumoto 1981, pp. 305, 309. 19. Matsumoto interview. 20. Matsumoto 1987, p. 20. 21. Matsumoto 1987, p. 20. Y. Matsumoto et at., "SPS: A Software Production System for MiniComputers and Micro-Computers," Proceedings COMPSAC '78, IEEE, November 1978, p. 396. 22. 23. Matsumoto 1987, 24. Matsumoto interview. 25. Matsumoto interview. 26. Shimoda, p. 103; Matsumoto interview. 27. Matsumoto 1987, 12. p. p. 2. SDC project managers disliked giving up control to a centralized facility, and SDC managers also failed to level the work flow to provide a steady flow of projects into the factory, leading to SDC's abandoning its centralized See the SDC paper cited earlier. factory approach. 28. 29. Shimoda, pp. 103-104. 30. Matsumoto interview. 31 Matsumoto interview. . 32. Matsumoto 1981, 33. Matsumoto response to survey questions. 34. Matsumoto 1986a, p. p. 310 78. See Y. Matsumoto et a!., "SPS: A Software Production System for MiniComputers and Micro-Computers," Proceedings COMPSAC '78, IEEE, November 1978, pp. 396-401. 35. 36. Matsumoto 1981, pp. 311-313. 37. Matsumoto 1981, pp. 313-314. 67 38. Matsumoto 1986a, 39. Matsumoto 1981, pp. 314-315; Matsumoto 1987, 40. Matsumoto 1987, pp. 41. Matsumoto interview. 42. Matsumoto 1987, p. 2. 43. Matsumoto 1981, p. 309. 44. Shimoda, p. Matsumoto interview. 77; p. 12, p. 14. 14. 107. Dr. Yoshihiro Matsumoto, "Answers to Professor M, Cusumano's Questionnaire" ("Large-Scale Applications Software"), February 11, 1987. 45. 46. Matsumoto 1986/China, 47. Shimoda, pp. 109-110. 48. Shimoda Hirotsugu, Keizai Shimposha, 1986, p. 76. Sofutouea kojo (Software factories), p. 110. 49. Shimoda, pp. 110-111. 50. Shimoda, pp. 111-112. 51. Matsumoto interview. 52. Matsumoto 1981, 53. Matsumoto 1984a, 54. Matsumoto 1987, 55. Matsumoto 1987, pp. 9-10. 56. Matsumoto interview. 57. Matsumoto interview. 58. Matsumoto 1987, p. 10. 59. Matsumoto 1987, p. 2. 60. Matsumoto 1981, pp. 307-308. 61. Matsumoto 1987, 62. Matsumoto 1987, pp. 4-5. p. 315, and 1984a, 69. p. 10. p. p. 4. 68 p. 60. Tokyo, Toyo A Competitive Assessment of the U.S. Software Industry, p. 11. Other productivity data for a variety of U.S. projects can be found in Martin Shooman, Software Engineering: Design. Reliability, and Management (New York: McGraw-Hill, 1983), pp. 438-445; and Frederick P. Brooks, Jr., The Mythical Man-Month: Essays pm Software Engineering (Reading, MA, Addison-Wesley, 1975), pp. 88-94. 63. 64. Matsumoto interview. 65. Matsumoto 1981, 66. Matsumoto interview. 67. Matsumoto interview and transparency, "Programming Language." 68. Matsumoto 1987, 69. Yoshihiro Matsumoto, "Management of Industrial Software Production," IEEE, February 1984, p. 59. Computer 316. p. 20. p. , 70. Matsumoto 1984a, pp. 60-65. 71. Matsumoto 1984a, 72. Matsumoto 1987, 73. Matsumoto interview. 74. Matsumoto 1987, 75. Matsumoto 1981, p. 314. 76. Matsumoto interview. 77. Matsumoto 1987, p. 17. 78. Matsumoto 1987, p. 18. 79. Matsumoto 1987, p. 18. 80. Matsumoto (1984), p. 68. 81. Matsumoto (1984), p. 65; 82. Matsumoto interview. 83. Matsumoto comments on survey questions. 84. Matsumoto 1984a, 85. Matsumoto response to survey question on planning for portability. 86. Matsumoto 1984a, 65-66. p. 17. p. 14, p. p. p. 17. Matsumoto (1981), p. 308. 68. 68. 69 87. Matsumoto 1986/China, 88. Matsumoto 1981, p. 307. 89. Matsumoto 1981, p. 315. 90. Matsumoto 1984a, 91. Matsumoto interview. 92. Matsumoto 1987, pp. p. 76-77. 70. p. 6, 8. Matsumoto response to "Additional Information Questions" in Cusumano survey, 11 February 1987. Note: Clear the use of this data with Matsumoto. 93. 94. Matsumoto interview. 95. Matsumoto 1987, Interviews with 12/18/86; and John 96. 97. Matsumoto 1987, p. 8. Mark Harris, Pilat, p. 18. an Industry," Proceedings 98. Matsumoto interview. 99. Matsumoto 1987, p. 18. an Industry," Proceedings Manager. Staff Consultant, IBM Corporation, 12/16 and Data General, 12/18/86. Also see Y. Matsumoto, "Software Education '8 2, November 1982, pp. 167-174. in Also see Y. Matsumoto, "Software Education '82 November 1982, pp. 167-174. in COMPSAC COMPSAC . 100. Yoshihiro Matsumoto, "Software Education in an Industry," Proceedings IEEE Computer Software and Applications Conference, of COMPSAC 82 November 1982, pp. 93. , 70 k53k 073 Date Due llfP^K^^ 2 1*8 0EC97 w Lib-26-67 MtT LIBRARIES 3 TOflO D04 flSl SED