「ソフトウエア・エンジニアリングという言葉は知っているが,ソフトウエア・ファクトリーとは何だろう」と疑問を持つ読者もいるかもしれない。ソフトウエア・ファクトリーとは「ソフトウエア・エンジニアリングを,システム開発・運用・保守の現場でシステマチックに実践するための組織形態の一つ」である。要は,品質の高いソフトウエアを,効率よく,現場が疲弊することなく開発・保守するための仕組みである。

 この言葉が誕生したのは,今から40年ほど前にさかのぼる。実は,ソフトウエア・エンジニアリングという言葉とほぼ同じ時期に誕生しているのだ。1968年,ドイツ・ガルミッシュにおいて「第1回 ソフトウエア・エンジニアリング・ワークショップ」が開かれ,「ソフトウエア・エンジニアリング」という語が初めて誕生した。このとき,ソフトウエアの再利用によって開発生産性と品質を向上するための組織を指す「ソフトウエア・ファクトリー」という言葉も生まれている。

 1960年代から1980年代にかけて,ソフトウエア・ファクトリーは日本の経済成長を支える存在だった。電力を安定供給するための発電所の制御システム,高品質な圧延鋼板を供給する製鉄システム,製造業で導入されたファクトリ・オートメーション向けシステム,オンライン化をした金融システム,交通網を支えるシステムなど,社会基盤を構築する過程で大きな貢献を果たしたのである。

 今でもソフトウエア・ファクトリーの取り組みは続いている。ただ,その形は変わってきている。これまでソフトウエア開発・保守を支えてきたコンピュータ・サイエンスに代わって,サービス・サイエンス(注1)が注目されてきたからである。最近のソフトウエア・ファクトリーは,60~80年代の遺産を継承しながらも,サービス・サイエンスを反映する形で,全く新しい展開を試みようとしている。これから解説では,過去の遺産を振り返ってから,新しい動きを展望したい。

日本が米国に先行

 日本では,1960年代末から1970年代初めにかけて,表1に示す各社が,それぞれのソフトウエア事業所をソフトウエア・ファクトリー(またはソフトウエア工場)と位置付け,独自のマネジメント体制を確立してきた。ソフトウエア・ファクトリーに相当する取り組みが始められたのは,まだそのような言葉もなかった1940-50年代。官民一体で,日本の技術革新および社会基盤のレベルアップに必死だった。

表1●1960年代以降の日本におけるソフトウエア・ファクトリー
設立 企業名 対象となった施設/部署 対象ソフト 従業員数
1969年 日立製作所 日立ソフトウェア工場 BS 5000人
1976年 日本電気・ソフトウェア戦略プロジェクト 府中事業場 BS 2500人
三田事業場 RT 2500人
三田事業場 App 1500人
我孫子事業場 Tel 1500人
玉川事業場 Tel 1500人
1977年 東芝 府中ソフトウェア工場 RT 2300人
1979年 富士通 システム本部 App 4000人
蒲田ソフトウェアファクトリ App システム本部の
うち1500人
1983年 富士通 沼津ソフトウェアファクトリ BS 3000人
1985年 日立製作所 情報システム工場 App 6000人(SE:4000人,プログラマ:2000人)
BS:basic software。RT:real-time systems。App:application software。Tel:telecommunication software。Cusumano, M. A., Japan’s Software Factories, Oxford University Press (1991)

 そのころ,全国各地で稼働し始めたコンピュータは,数日ごとに異常停止を起こしていた。原因がソフトウエアにあるのか,ハードウエアにあるのか判別するのも難しく,エンジニアはその都度,現場に呼び出された。当時,国内航空便は無きに等しく,新幹線はない。夜行列車で東京から九州や北海道の現場に駆けつけるのが,日常茶飯事だった。

 バッチ処理に長時間かかっていたこともあり,システムを修正してコンパイルする作業は,夜間にしか許されなかった。昼間はプログラム・コードを多数のカードに穴あけして記録する。夜になると,カードの入ったリュックサックを背負って,都内でも数が少ない汎用コンピュータを求めて計算センターを訪ね歩き,徹夜でコンパイル作業をするといった生活を余儀なくされるエンジニアもいた。

 納期の順守や過酷な作業に耐え切れないで失踪したり,命を絶ったりするエンジニアも少なくなかった。そうした悲惨な状況がもたらす悲しみに,ソフトウエア事業責任者の多くは,精魂を使い果たしていた。ソフトウエア・ファクトリーへの直接の動機となったのは,このような劣悪な環境に置かれたエンジニアに対する支援体制の確立,作業環境の改善,ツールの整備などの必要性であった。

 1970-80年代の日本のソフトウエア・ファクトリーは,ユーザーとエンジニアが一体となって,欧米の後塵を拝することからの脱却を目標とし,互いの垣根を越えて協力する,いわゆる垂直統合型またはサイロ型と呼ばれる開発方式を取っていた。一つのサイロの中には,一組のユーザーとエンジニアがこもって,外部から隔離し,一つのアプリケーションのために最適化された品質の高いソフトウエアを,高効率で開発し,保守していた。サイロ間の競争は激しかった。

 1970年代に相次いで活動を始めた日本のソフトウエア・ファクトリーは,1980年代に入って開花した。米国ソフトウエア業界は,日本の動きに警戒を示し,様々な米国調査チームが日本の各ソフトウエア・ファクトリーを訪問した。当時,マサチューセッツ工科大学の助教授であったM.A.Cusumano氏は,複数の米国企業からの受託事業として,日本のソフトウエア・ファクトリーを訪問し,詳細な報告書を作成した。表1は報告書の一部を翻訳したものである。

 70年代の米国では,Software Development Corporation(SDC)が全社のソフトウエア・ファクトリー化を試みた。IBMはサンノゼに,Santa Teresa Laboratoryを発足させた。AT&Tは,Programmer’s Workbench System(PWB)を開発し,全事業所に適用しようとした。80年代になって,V.Basiliらは,「経験」の再利用によってソフトウエアの生産性,品質を向上するための手法Experiment Factory(EF)を開発し,90年代に入って,有力企業の事業所に適用しようとした。しかし,米国からソフトウエア・ファクトリーの成果が報告されることはほとんどなかった。これら20世紀後半のソフトウエア・ファクトリーは,旧世代ソフトウエア・ファクトリー(注2)と呼ばれている。