見出し画像

改良はゴミ掃除から

 新聞沙汰になった交換機を改良するプロジェクトに招集された。新人で開発に参加し、別れてから七年、プログラムはどうなっているだろう。まずは現状を見てみよう。(書を捨ててソースを見よう)
 直近の納入ソースを持ってくるようメーカに依頼したが、なかなか持ってこない。内製化にメーカが協力的なはずはない。ようやく届いたソースを試しにコンパイルしてみると、エラーになるではないか。
 武蔵野研究所では、年に一度、メーカがタクシーで乗り付けてくる日があった。納入日である。三年かかる開発でも予算は年度単位だったから、納入も年度だ。この日は全員背広で段ボールを抱えて正門から入ってくる。納入を待つ私は「特捜みたいですね」と見下ろして笑っていた。
 プログラムは磁気テープに収めて納入された。当時のテープは直径三十センチ以上あって、重い。正副二本を納入する。日付とメーカ名のラベルを確認して棚に並べた。中身を調べたことはなかった。
 今回は違う。これを基に内製を始めるのだ。コンパイルエラーの原因はセミコロンだった。ステートメントの終わりを示すセミコロンが一つ欠落していた。メーカは「素人に内製できるわけがない。試してやろう」と笑っている。そう考えるとカッカしてきた。
 もしも、そんな細工はしておらず、本当にこれを納入したのなら、それも問題だ。気づかないNTT側もだめじゃないか。ムカムカしてきた。
 武蔵野に常駐していたメーカは、各社のエースだったのだ。会議の膨大な資料をテキパキ処理していた。新人の私が出す資料は、チーフたちに撃破もされた。しかし、私は彼らからたくさん教わった。尊敬すらしていた。
 今回のセミコロンは、メーカの宣戦布告に思えてきた。維持管理は、メーカは同じでも、武蔵野常駐組とは全く別人なのだ。ソースを徹底的に調べてやろう。そして、あのトレーサを発見した。七年間、消されず眠っていたウルトラマンの残骸である。ゴミはもっとあるぞ。誰にも呼ばれていないサブルーチンを探すことにした。
 サブルーチンは数万個もある。それぞれ何回参照されるか、カウントする簡単なツールを作った。コンパイラの経験からだ。参照ゼロがゴミの可能性が高い。しかし、テーブルにアドレスを登録しておいて、呼び出しているケースもある。間違って削除しないよう、個別に精査が必要である。
 当時、コンパイルはメインフレームで行っていたが、検索機能はなかった。パソコンにフロッピーディスクでは百年かかる。全ソースはフロッピー十数枚になった。交換しながら検索しているうちに、何を検索していたのか忘れてしまう。ワークステーションを買ってもらい、ソース中のスペースや改行、コメントを削除して圧縮した。これで全ソースを数分で検索できるようになった。モジュールを限定すればもっと速い。やり方を教えて手分けした。ゴミが見つかると、歓声があがる。多国籍軍は生き生きしてきた。なんと三割がゴミというモジュールまで見つかった。
 この頃、全国から毎週のように新しい要員が着任していた。全社を挙げた「改良プロジェクト」である。みな目を輝かせてやってくる。しかし、どこからどう手をつけるか、まだ決まっておらず、私たち管理職は連日、会議室にこもって議論を重ねている。担当者たちはやることがない。ソースリストすら見ることができない。印刷したソースリストは古く、一式しかなかったから取り合いだ。とうとう歓迎会で不満が爆発した。「ぼくたちは改良のために東京に出てきました。何かやらせてください。」特攻隊に志願した若者たちは出撃したくてうずうずしていたが、練習機すらない。百の真剣な瞳が私を見つめていた。ゴミ掃除は、とりあえずの練習機だった。
 まだ内製の準備段階だった。大半のモジュールはメーカが維持管理している。ゴミを見つけても、修正はメーカだ。指摘はFAXを使った。武蔵野と違い、メーカは常駐していない。月何回か打合せにやってくる。秋葉原で部品を買い、ワークステーションから直接FAX送信できるようにした。無人で一晩中送信できる。メーカは「FAX用紙がなくなりました」と悲鳴をあげたが送り続けた。指示通り修正しろ。セミコロンの欠けたソースを納入するようなメーカに問答は無用だ。その代わり責任はとる。ソースに印を付けて具体的に指示した。開発会議の資料とはまるで違った。
 改良を進めるうえで、修正とコンパイルを繰り返すことになる。これを容易にしておくことが肝要だ。そこで、すべてのモジュールのデータ定義を一つのモジュールに集約することにした。データ定義にも重複やゴミがあった。一気に全モジュールを書き換えるので、抵抗は大きかったが、突破するとコンパイルは驚くほど楽になった。メーカ担当者まで喜んでくれた。データ定義のドキュメントを作らなくてよくなったのも大きかったらしい。構造体のデータ定義のドキュメントを作図するツールもあったが、誰も使っていなかった。集約を機にドキュメント作成も引き受けた。
 内製化を掲げた総裁が視察にやってくることになった。私は入社式で見た。研究所に配属されてすぐ、総裁が講演に来た。講堂から帰ってきた上司たちの様子がおかしいので「何があったんですか」と訊いたのを覚えている。メーカに丸投げしていないで研究者も開発を、という主旨の厳しい檄だったそうだ。
 「モジュールはいくつ」「何行あるの」ワークステーションの画面を覗き込みながらと矢継ぎ早に訊いてくる。ここまでは想定内だった。
 データ定義を一つのモジュールに集約してコンパイルが楽になった、と説明したところで、「データはいくつ」ときた。データとデータ定義は意味が違う。比較はできない。だが、そんな講釈は意味がなさそうだ。一体何を知りたいのだろう。
 コンパイル後にデータをリンケージするのだが、ざっと1万だったことを思い出した。とっさに「データ一万のうち三千を集約しました。私たちが管理しています」と答えた。「三割か、まあその位ならいいか」とつぶやいて通り過ぎていった。
 モジュール化しているのに、逆に集約したと聞いて心配になったらしい。帰りがけに「ああいう男が管理しているなら、大丈夫だろう」と漏らしたそうだ。
 実際には、集約したデータ定義は、データ一万のすべてに関連していた。モジュール単位での内製化率は、その時点では一割にも届いていなかったが、全モジュールのデータ定義を一気にメーカから移管してしまった。

いいなと思ったら応援しよう!