« 立山黒部アルペンルート | トップページ | 英語圏に行きたい »

2005.09.20

思い込み連鎖

 とんでもないプログラムの障害(バグ)を出してしまった。ちょっと、自分でも納得が行かないので、皆さんにも聞いていただきたい。

 ご存知のように、私は、派遣社員としてプログラムの開発業務を行っている。現在の職場に勤務しておよそ三年半。多くの企業が派遣社員を使い捨てて行く中で、長く仕事をさせてもらっていると思う。業務内容は、特定のアプリケーション開発だ。アプリケーションというのは、売れてなんぼの世界であり、ソフトウェアの単価としては数千円から数十万円程度と安い。ソフトウェア業界では、アプリケーション開発以外には、受注開発がある。こちらは、特定の対象向けに開発されるソフトウェアで、時には億単位のお金が動くこともある。

 前者の場合、過去にリリースした製品のメンテナンスも同時に行って行くため、同じ人が開発業務を担当し続けることが望ましい。そのため、派遣採用期間も長くなるのだと思う。

 ところで、私が開発している製品も、ずっと古くから開発が行われ、メンテナンスされ続けている製品である。Y氏という人がプログラムの設計を手がけ、I氏という人がその仕様を引き継いだ。そのプロジェクトに私が加わり、I氏と一緒に開発を始めたわけである。

 私たちが開発しているアプリケーションには、設定ファイルというものがある。アプリケーション間で複数のプログラムが動くとき、その動作内容をファイルに書き出すことがある。例えば、ユーザが画面で操作した内容をファイルに保存しておき、別のプログラムがその内容を参照するといった作りになることがある。今回、私は、画面のプログラムを担当した。I氏は、画面以外のプログラムを担当した。そして、私は、自分の作ったプログラムの中で、ユーザが画面で操作した内容を設定ファイルに書き出した。I氏の作ったプログラムは、私が設定ファイルに書き出した内容を読み出して動作するというものだった。

 もともと、このプログラムを設計したのはY氏だったのだが、Y氏が設計した段階から、設定ファイルに書き出す内容の英単語の綴りが間違っていた。その英単語は、コンピュータ用語であるが、普段の生活でも良く使われているものである。わかりやすくするために、その英単語を仮にTelevisionとしておこう。Y氏がこの仕様を決めたとき、このTelevisionの綴りが間違っていた。そして、間違った綴りのままI氏に作業が引き継がれ、I氏は間違った綴りのTelevisionを読み出すためのプログラムを作った。

 ところが、私は、Televisionという単語の綴りを良く知っていたので、仕様書に目を通して、自分の知っている正しい綴りでプログラムを作成した。仕様書に書かれているTelevisionの綴りが間違っているとは、よもや思っていなかったので、自分の知っているTelevisionの正しい綴りで設定ファイルに書き出したのだ。しかし、設定ファイルを読み出す側のI氏のプログラムは、間違った綴りのTelevisionを読み出そうとして、私が書き出した内容を拾い出せなかった。そのために、プログラムが正しく動作しないという現象が発生し、ユーザから問い合わせがあったのだ。

 調査の結果、Televisionの綴り間違いに原因があったことがわかったのだが、I氏を始めとする社員の方たちが言うには、仕様書に間違った綴りが記載されているのなら、その仕様書通り、すなわち、間違った綴り通りにプログラムを作るべきだと言う。私は、Televisionが自分の知っている単語だったので、仕様書に書かれている間違った綴りのTelevisionではなく、正しい綴りのTelevisionで設定ファイルに書き出してしまった。要するに、仕様書に記載されている間違った綴りのTelevisionをコピー&ペーストしなかった。これが、障害(バグ)の原因だということになってしまったのだ。

 ちなみに、I氏は、Televisionの綴り間違いに気づかずに、Y氏の作成した仕様書通りにプログラムを作って来たという。今回のような障害(バグ)が発生して初めて、Televisionの綴り間違いに気づいたということらしい。

 この障害(バグ)で私自身が責められているわけではないのだが、Y氏にも、I氏にも、そして私にも、それぞれの思い込みがあった。そして、それぞれの思い込みが連鎖して、正常に動作するはずのプログラムが動かなくなってしまったのだ。大問題に発展しているわけではないが、こんなこと、納得が行かないと、私はオフィスで叫んでいた。社員の人たちも、事情が事情なので苦笑いしていた。

 設定ファイルは、そのアプリケーションが独自に書き出すものなので、単語の綴りが間違っていることが問題になるわけではない。例えば、ユーザがその設定ファイルに目を通したとしても、綴りが間違っていることの指摘は受けないが、アプリケーションが正しく動作しないことに関しての問い合わせは来る。そんなわけで、何だかなあの障害(バグ)なのである。

 この件について、同じコンピュータ業界のガンモに相談してみると、
「仕様書通りに作れと言われたら、何も言い返せないよね。でも、英語圏なら認められたかもね」
と言った。私は思わず、
「英語圏に行きたい!」
と叫んだ。

|

« 立山黒部アルペンルート | トップページ | 英語圏に行きたい »