伝説のデバッガー『眠りのケン』〜Undelivered message〜

鎌田勝浩 作
2005/10/16 初稿


[目次へ]


I. 伝説の仕事人

プロローグ

 薄暗い小部屋に、カチャカチャという音だけが聞こえてくる。どこかの会議室のようだ。10人も入れば窮屈になりそうな狭い会議室に、会議机が並び、そこに何台かのパソコンとおぼしきコンピュータ、モニタ類が所狭しと並んでいた。
 そのマシン群の前で、若い男が一人、黙々と作業していた。
「おいおい、マジかよ。今時、こんなプログラム書く奴なんているのか?」
 男の名は山田健治。働き盛りの28歳。よれよれのスーツの上着をそばの椅子に掛け、腕まくりをした腕を組みながら、目の前のモニタ画面を凝視していた。
「これがプロの仕事って言うんだからな。信じられないぜ。……これじゃ、下手に手を入れるより、書き直した方が早いか」
 頭を掻きながら考えていた健治だったが、決心してキーボードを猛然と叩き始めた。

 翌日。同社中会議室。健治は、担当者達と相対して打ち合わせをしていた。打ち合わせが終わり、立ち上がる健治。
「では、これで失礼します。また、よろしくお願いします」
 一礼して退出していく。

 夕日を背に、ビルから出て立ち去っていく健治を見送りながら、話をする担当者の二人。
「たった一晩で見事にバグを取っちゃうなんて。部長、あの人、一体何者なんですか?」
「フリーの仕事人さ。聞いたこと無いか?伝説のデバッガーの話を」
「伝説の?あ、聞いたことあります。確か、あちこちの火を噴いたプロジェクトを渡り歩いて、見事に解決してしまうと言う」
「そうそれだ」
「そして、噂では、寝ている間に仕事を済ませてしまうとか」
「そうそう。そこで、ついたあだ名が」
「眠りのケン」

 * * *

 現在より少しだけ未来のお話。

 年々巨大化、複雑化していくコンピュータプログラム。それに伴って、どうしてもそこにはバグと呼ばれる欠陥、ミスが入り込みやすくなる。バグを除去し、問題を解決する事をデバッグと呼び、それをする人や道具のことをデバッガーと呼ぶ。
 世の中には数多くのプログラムを開発するプロジェクトが存在するが、その数の何十、何百倍ものバグが生まれ、デバッグされて除去される。しかし、そのうちのいくつかは、除去、解決しきれず、その開発プロジェクト自体が火を噴き、頓挫していることだろう。
 そんな危機的なプロジェクトを渡り歩き、見事にバグを除去して問題を解決する、フリーのデバッガー。それが主人公、山田健治である。

依頼あり

 築20年ほどであろうか、おんぼろアパートの一室の事務所で、若い女が机に座って事務を執っていた。机の上の電話のベルが鳴る。
「はい、山田技術研究所です」
 事務の手を止め、中山満里恵が電話に出る。

 ここは、山田健治の個人事務所であった。健治より2歳年上、30歳の彼女は、ここの唯一の事務員で、事務全般を手伝って、いや取り仕切っていた。

「戻りましたぁ。あ〜あ、疲れた疲れた」
 ちょうどその時、部屋の扉を開けて、健治が帰ってきた。
「満里恵さん、済まないけど、コーヒーでも入れてくれないかな」
 猫なで声で健治が言う。
「今、電話中よ。静かにしてっ」
 受話器に手を当てて小声で制し、メモを取りながら電話に戻る。
「失礼しました。はい、はい……」
 健治、肩をすくめ、荷物を置いたあと、台所へ。

 * * *

「はい、わかりました。では、よろしくお願いします」と言って、受話器を置く満里恵。
 そこに、マグカップを手に、健治が出てくる。
「インスタントだけど、ま、いいか」
 そうつぶやいて、立ったままコーヒをすする。
 そんな健治を認めて、いつものように文句を言い始める満里恵。
「ちょっと、山田君、いつも鉄砲玉じゃ困るんだけど。折角近所の仕事だったんだから、夜くらい、戻って来れないの?全く」
 慌ててコーヒーを飲み込んで、
「ん、すいません。技術屋なもんで、調子が乗ってくると、一気に片付けたくなる性分なんですよ」
「本当にもう、困ったもんね、エンジニアって」と、あきれ顔。
「それはそうと、今の電話、何だったの?」
 思い出して、健治が言う。少し嫌そうに、
「また、仕事の依頼?」と、続けて。
「なによ、嫌そうに」
 途端に不機嫌になる満里恵。
「いや、このところ仕事ばっかりだったから、この辺で少し、休みたいかな〜っと」と遠慮がちに言うと、
「山田君、どれだけ借金があると思ってるの」と、諭すように言い、しかし一転笑顔になって、
「借金が返せるまではキッチリ働いてもらわないと、困るんだけどっ」と脅す。
「はいはい、キッチリ働かせてもらいますっ」と降参すると、
「素直でよろしい」と笑顔を見せる満里恵。

「で、依頼って?」
「そうそう、依頼の話ね。ドリームウェア社って知ってる?新興のゲーム会社」
「ああ、知ってる知ってる。最近頑張っているゲーム会社だよね」
「開発中の新しいゲーム、『モンスターバスターズ』ってのがあるそうなんだけど、どうもこれがバグっていて、このデバッグが今回の依頼みたい」
「ゲームソフトか。ゲームはちょっと苦手なんだけどな」
「贅沢言わない。君なら大丈夫。出来るよね」と、笑顔で言う。
「全く、その笑顔には敵わんな。仕方ない、やりましょう」
 それを聞いて満面の笑顔になる満里恵。
「じゃ、明日の仕事の前に、今夜は久しぶりにごちそうでも作っちゃおうかなっ。ちょっと買い物に行ってくるね」
「えっ、明日なの?少しは休ませてよっ」
 健治の驚きをよそに事務所を出て行く満里恵を見送りながら、あきれ顔の健治。
「全く、人使いが荒いんだから」

II. クライアント

問題点

 翌日の朝、健治はドリームウェア社の中会議室にいた。大きなテーブルを挟んで向かい合わせに座り、担当者の篠原と林の二人と打ち合わせをしている。
 5年ほど前に出来た新興のゲーム会社、ドリームウェア社は、創業早々、いくつかのヒット作を発表し、今や飛ぶ鳥を落とす勢いのベンチャー企業だった。まだ30人ほどの小さい会社だが、多くのベンチャー企業に共通して、社員の平均年齢が低い、若い会社であった。今回の依頼の担当者である担当部長の篠原慎太郎も、まだ38歳と若く、バリバリのやり手である。林文彦は、25歳の若さながらも優秀で、プロジェクトのチーフプログラマーを務めていた。

「と、いうのが、このゲームの概要です」と、林が説明する。
「ええと、要するに、3Dバーチャル空間で銃を撃ちまくる、リアルタイムRPGなわけですね」
 ごく短く要約して、健治が言うと、篠原はその言い方が気に入らなかったらしく、嫌そうに咳払いし、
「じゃ、林君、問題点の方、説明してくれるかな」と続ける。
 それに応えて頷き、林が続ける。
「はい、部長。では、問題点、バグの方について、説明します」

 要するに、予期しないところに、一見、雑魚キャラに見えるバグキャラが現れ、しかもそれはいくら攻撃しても倒せない、無敵キャラらしい。確かにこれじゃ、ゲームにはならない。そして、バグキャラの出現条件は、はっきりしないらしい。でも出すのは比較的簡単なようだ。

 話を聞いて、健治が尋ねる。
「再現しやすいなら、原因を特定できそうなものですが……」
 それに対し、林が少し不機嫌そうに応じる。
「ですから、出現条件の特定が出来ないんです。同じ操作をしても、必ず出現する訳ではないようなんです。怪しそうな部分のソースを見ても、問題はなさそうですし……」
 咳払いをして、篠原が続ける。
「だから君を呼んだ訳だよ。ここだけの話、このバグのおかげで、発売が当初予定から3ヶ月も遅れてしまっている。もうこれ以上、遅らせる訳にはいかないんだ。何とかしてほしい」
 思い出して林が、不審そうに尋ねる。
「本当に、1週間やそこらでデバッグが出来るのか?うちのチームで3ヶ月掛かってもダメだったのに」
 それに答えて、健治が言う。
「正確なところは、ソースを見てみない事には何とも言えませんが、多分、大丈夫だと思います」
「まあ、君を信じよう。うちの社運がかかっているんだ。何とかしてもらわないと、困るんだよ。本当に頼むよ」と、篠原。
「分かりました。任せてください」
 健治が答える。

作業環境

 同社小会議室。会議机にいくつかのコンピュータ、モニタ類が設置されていた。

「山田君、言われた通り、一通り環境は用意させておいた。これでいいかね」と、篠原。
 健治、辺りを見回してから、
「そうですね。はい、大丈夫だと思います」と答える。
「そうか。では、よろしくお願いします。林君、あとは頼むよ」
「はい、部長。わかりました」
 篠原、部屋を出て行く。
 健治、持ってきた鞄を開き、そこからキーボード、ヘッドマウントディスプレイや、特製モバイルコンピュータなどを会議机に出す。そして、
「林さん、どこかから電気は取れますか?テーブルタップは用意してます」
「ここからどうぞ」と、床のテーブルタップを指差す林。
「ありがとうございます」
 床にしゃがみ、健治がテーブルタップに持参したタップのプラグを差し込んでいると、
「あれ、キーボードですか?それ位こちらで用意していますが」と林が不審そうに言う。
 健治、振り向いて、
「いえ、マイキーボードなんです。いつも使い慣れたこれじゃないと、調子が出なくて」と言うと、
「そうですか」と無関心に答える林。
 会議机の上のファイルの山を指差して、
「あと、これが紙の資料です。ソースは、ここからサーバーにアクセスして、ここで見られます」と言いながら健治にメモを手渡す。
「ありがとうございました」
「何か、困った事があれば、そこの電話で呼び出してください」
「わかりました」
「では、よろしくお願いします」
 そう言って、林、名残惜しそうに、退出する。

 健治、持ち込んだマシン類をセッティングしてから、おもむろに言う。
「じゃあ、やりますか」

 その頃、同社開発室では、篠原と林が話していた。開発室は大部屋で、数人の社員が自分の机に設置されたコンピュータに向かって作業をしていた。前日から泊まり込んでいたのか、別に十人ほどがカーペットの床で寝袋に入って転がっていた。

 篠原の席の前に立って、林が話している。
「篠原部長、あの、山田って奴、本当に大丈夫なんですか?」
「信じるしか無いだろう。あとは彼だけが頼りなんだから」と、なだめる。
「だけど、作業中は覗くなって、何なんですか?鶴の恩返しじゃあるまいし」
「仕事を引き受ける条件なんだから、仕方ないだろう。林君、覗くなよ」
「分かってますよ、そんなこと」


[III. デバッグ開始 へ]

[戻る]


用語解説、コメント(1)

ソース
ソース、もしくはソースコード。コンピュータのプログラム(指示書)で、人間が扱いやすいように、主に英語をベースとして作られた人工言語で書かれている。通常、プログラムを作成するプログラマは、人工言語でソースコードを書き、それをコンピュータ上の変換プログラムであるコンパイラ、アセンブラなどを使って、コンピュータが直接理解できて、その通りに動く、オブジェクト、もしくはオブジェクトコードに変換する。コンピュータが直接扱うオブジェクトコードが書かれている機械語とは異なり、人間が書いたソースコードは、人工言語とはいえ人間が書いた物なので、比較的その内容を理解しやすい。しかし、一般的に言って、他人の書いたプログラムは、その内容を理解するのは難しいことが多い。たとえ自分が書いた物であっても、半年前の物は、他人の書いたプログラムと同等であるとも言われている。
環境
通常、プログラムの開発作業には、いくつかの道具を使用する。ソースコードを書いたり、それを処理してオブジェクトコードに変換したりするマシンや、それらの変換プログラム自身などの全てをまとめて「環境」と呼ぶ。「開発環境」、「テスト環境」のように使用する。また、ゲームマシン用のプログラムのように、プログラムを開発するマシンと、実際にそれが動作するマシンが異なる場合には、実際に動作するマシン自体、もしくは、あたかも実際に動作するマシンかのように振る舞うマシンやそれを実現するプログラム(エミューレータ)も、開発環境、テスト環境に含める。
ヘッドマウントディスプレイ
略称:HMD。コンピュータからの文字や映像を、いわゆるテレビ画面に映すのではなく、頭から被る(ヘッドマウント)タイプの表示装置である。眼鏡のように両眼に装着する物が有名である。目の前にあたかも大きなスクリーンがあり、そこに映像が映るように見える。ここでは、片目だけに装着し、半透明のスクリーンになって、映像と外界の両方が見えるタイプを想定している。
サーバーにアクセス
プログラムを開発する際、特に複数人で作業する場合には、作成したソースコードなどのドキュメント類を1カ所にまとめて管理した方が便利な場合が多い。そこで、サーバーと呼ばれるコンピュータを別に用意し、そこに全ての情報を集中させて管理する。各メンバーは、自分の手元のコンピュータからサーバーにアクセスして必要なデータを取得し、手元で必要な作業をして、サーバーに戻すという手順で作業を進める。その際には通常、CVSなどの管理プログラムを使用して、各人の修正がかち合ったりするような、まずい事態をさけるようにする。


[III. デバッグ開始 へ]

[戻る]


鎌田勝浩
kamada@kil.co.jp
2005/10/16 初稿