1960 年生まれ,独身フリー・プログラマの生態とは? 日経ソフトウエアの人気連載「フリー・プログラマの華麗な生活」からより抜きの記事をお送りします。2001年上旬の連載開始当初から,現在に至るまでの生活を振り返って,週1回のペースで公開していく予定です。プログラミングに興味がある人もない人も,フリー・プログラマを目指している人もそうでない人も,“華麗”とはほど遠い,フリー・プログラマの生活をちょっと覗いてみませんか。
※ 記事は執筆時の情報に基づいており,現在では異なる場合があります。

 料理のレシピで「ここで野菜を投入し,40分ほど煮込む」といった表現を見かけることがある。あるとき「“投入”という表現は『dancyu』という雑誌が使い始めてから普及したのではないか」という記事を読んで,初めて気がついた。そういえば職業料理人とおぼしき人が“投入”と使っているのを見ることはほとんどない。投入を使っているのは,明らかに素人が書いた,もしくは素人向けに書かれた記事である。

 コンピュータの業界にも特殊な用語がある。「落ちる」「固まる」に始まって「(要求を)投げる」「(データを)なめる」「吸い上げる」「ひっかける(=特定の条件下において特別な処理を行う)」という表現もある。以前は「コンピュータ関連の人」か「そうでない人」かでボキャブラリを切り替えて話をすればよかった。しかし,仕事で使っている単語を日常的に耳にするようになったおかげで,それほど単純にはいかなくなった。

 例えば,「ダウンロード」「アップグレード」あたりはすでに一般用語と化している。先日,つい「クリーンアップ」と使ってしまい,しまったと思ったのだが,相手にはなんとなく通じたようだ。一方「無限ループ」が通じる相手は少ない。会話がヒートアップしてきたところで,「だからそこで話が無限ループしてるから」などと言ってしまい,そこで「無限ループって何?」と質問されて話の勢いをそがれた経験がある。

 まあこの程度だったら笑って済ませられる範囲だし,自分で言葉に注意すればよいのだが,場合によっては深刻なケースに陥る場合がある。相手が中途半端な理解をしたまま使ってくるケースである。恥をしのんで私の実体験をお話ししよう。

忘れた話が3カ月後にぶり返す

 私がかかわっているシステムが「ときどき切れてしまう」という話を小耳にはさんだ。私の記憶によれば,打ち合わせの場で雑談のように聞いただけだし,その現象で支障が出ているという感じもなかったが,反射的にそれはどういう現象かと聞き返した。

 そのシステムはWebベースであり,エンドユーザーはブラウザを介して使っている。もう一度操作をやり直すとうまくいくという。それならサーバーが落ちているわけはない。もちろん,サーバーがダウンしたという警告を監視システムから受け取った記憶もない。いったいどういう意味だろうと思ったのである。

 軽くやり取りしている間に,そのエンドユーザーが普通の個人で,ADSL回線であるらしいことがわかった。支障が出ている雰囲気でもなかったので,もしかしたら回線が切れるという意味だろうか,よかったらもう少し詳しく聞いておいてほしいという感じのことを伝えて,その話は忘れてしまっていた。

 3カ月後。当のシステムを数十人のエンドユーザーが同時に利用することになった。そのときまでせいぜい2~3人でしか使っていなかったが,それほどの障害が出るわけはないなどと思いながら,念のため自宅で待機していた。が,結果は惨憺たるものだった。使っている途中で突然ログアウトさせられてしまうユーザーが続出したのだ。ここにきてはじめてわかった。「切れる」というのはそういう意味だったのだ。

 結局これは「システム設定のせいで,一定の時間が経つとセッション・データがなくなってしまう」のが原因であるとわかった。PHPがセッション情報を格納するファイルは,ファイルのアクセス時刻(atime)を見て時間切れを判断する。私はこのときファイル・システムのアクセスをチューニングする目的で,アクセス時刻を記録しないモードでファイル・システムをマウントしていたのである。

 私を含め,開発側のスタッフが操作しているときに問題がまったく起こらなかったのは「操作が速いから」であった。ブラウザでログインしてから20分以上たたないとこの現象は起こらないのだった。しかも,サーバーに対してアクセスがあるごとに1/100の確率でしかセッションのガーベジ・コレクションが動作しないというおまけ付きだ。こちらについては,同時利用数による負荷やメモリー・リークなどを疑ってさんざん調査したあげく,原因がわかるまでに,さらに2~3週間かかってしまった。最初に「切れる」と聞いたときに,その意味を追求して,問題を解決しておけばと悔やんだが,後の祭りである。

 担当技術者としては当然,自責の念にかられたが,同時にちょっと不満もあった。なぜ「切れる」などという表現を使ったのだろう。普通に「ログアウトしてしまう」と言ってくれればよかったのに。こうして考えてみると,最近「けっこうありがち」なパターンであることに気が付いた。このシステム(プロジェクト)に限らず,問題が起こったときに「落ちた」「つながらない」といった表現で報告されるケースがけっこう多いのである。

 よくよく確認してみると,例えば「落ちる」と表現するのにはふさわしくないケースに「落ちる」と使っていることもままある。エンドユーザーたちは,技術者が使っている言葉や,テレビや雑誌で聞き覚えた言葉を,特に意味も考えず感覚的に使っているだけなのだろう。

 この件があってから,このシステムについては問題が起こるとブラウザの画面をハードコピーしてそのまま送ってくるようになった。担当スタッフのおかげである。これで確認の手間が省け,行き違いが起こることも少なくなるだろう。ノン・プロのスタッフが次々と入れ替わる中で,スキルの均質化には限界がある。普通の人が専門用語を妥当とはいえない意味で使うことがある。このような状況にいらついていても仕方がない。受け取る側がもう少し慎重になれば済むことなのだと思いたい。