見出し画像

時間切れの話

こんにちは、辻村です。今回は「時間切れ」というお話をしたいと思います。コンピュータの世界お話ですが、人間の話にも通じるお話。今回は技術的ではありません。IT業界の方も、そうでないかたも、ちょっと読んでみてください。

むかしばなし…時計を眺めながら恋人を待つ時間

おじさんたちも、おばさんたちも、あたりまえだけど昔は若かった。携帯がなかった頃の待ち合わせは、今とは随分違ったそうです。時間と場所を決めて待ちあわせて、時計を見ながらやきもきしながら恋人がやってくるのを待つ甘い時間だったそうです。

残念ながら約束に遅れてくる常習犯みたいな人はいつの時代にもいます。「洋服を選んだり、髪型がと色々迷って遅れたんだろう」と思えるなら微笑ましくもあったでしょうが、あまりに遅いと心配になり、そのうちあきらめて帰ることになります。そういえば、いつの時代でも、約束をすっぽかす人はいますよね。

あなたは相手を待っていて約束の時間になっても現れないとき、一体どれくらい待てますか?5 分ですか?30 分ですか?それとも数時間待てますか?いずれにしても「時間切れ」は存在します。決め方はともかく、「時間切れ」になったのであきめて帰るわけです。

どうしてこれなかったのだろう?

約束は果たせませんでした。さて、どうしてでしょう?

(1) あなたの我慢が足りなかった
(2) 相手が来るのが遅かった
(3) 相手が事情でこれなくなった

(1) あなたの我慢が足りなかった

もしあなたが約束の時間を1分過ぎたと言って帰ってしまったのなら、どうでしょう?相手はあなたの我慢が足りなかったと考えるかもしれません。1時間なら個人的には随分と待ったなと感じます。

(2) 相手が来るのが遅かった

相手が来るのが遅いとはどう決めるのでしょう?「遅かった」というのは、「約束の相手があなたが待てる時間までには来なかった」と言うことです。10分遅れてきた相手は1時間待てるあなたには「遅くない」ですし、5分待てないあなたには「遅い」わけです。つまりあなたが「遅い」を決めています。

(3) 相手が事情でこれなくなった

相手に会えなかったあなたはおそらくあとで連絡をしたりして理由を聞くと思いますが、変えると決めた瞬間、今みたいに携帯のような連絡方法がないとすると、相手が来れなくなった事情は分かりません。単に寝坊しただけかもしれないし、途中で足でもくじいたのかもしれません。理由は聞くまでは分かりません。

コンピュータの世界での待ちあわせ

人間らしさからは一番離れたところにいるコンピュータの通信の世界でも、「待ちあわせ」と同じようなことが起こっています。

コンピュータの通信では送信側と受信側があります。送信側は依頼を送り、受信側は依頼の内容に対しての返事をします。ただし、送信側はずっと待つわけにはいかないので、返事が返ってくるまでの時間を決めます。そして、この決めた時間まで返事に返事が返ってこないことをタイムアウトと言います。そして、タイムアウトまでの時間をタイムアウト時間と言います。

タイムアウト時間にまで返事が来なかったとき、よく考えると3つの状態が混在しています。

・相手が忙しくてタイムアウト時間までに返事できなかった
・相手にメッセージが届いていない
・相手がそもそも返事ができない

忙しくて返事ができない場合は、返事ができないわけではないけれども他のことを処理していたりして、時間切れになってしまった場合です。この場合は、タイムアウト時間を延ばすことで問題が解決することがあります。

メッセージが届いていないならそもそも返事が来るわけはないわけです。約束をするための電話をしていないようなものですから。

また、相手が返事ができる状態でない(電源が切れているとか、その通信が許可されていないとか)であれば、当然返事は来ません。

タイムアウトはこういった状態が混ざっているので、送信元と受信先の両方で記録を見て調べる必要があります。

コンピュータも人間も待ち合わせがうまくいかないのはどちらのせいでもなくお互い様ですね。

「なるはや」で

学校や会社の中でもタイムアウト時間というのはあります。課題や報告書を提出する期限がそれです。よくトラブルになるお話に、「なるはやで」という言葉があります。「なるべく早く仕上げて欲しい」という意味だそうです。狭い範囲で観測していますが、頼む側は「自分の依頼を最優先で」と思っているのに対して、受ける側は「自分の業務量を考えて、可能な限り早く」と思っていることが多いようで、もめ事の火種になります。

仕事では、自分で処理できないことは、他の人にお願いして進めていくかと思いますが、よくこんな伝言ゲームが起きます。括弧の中は口に出さないけど思っていることです。

<ケース1>
部長「なるはやでよろしく」(今週いっぱいで)
課長「なるはやでよろしく」(2,3日中で)
係長「なるはやでよろしく」(今日中ね)
主任「今日中によろしく」(途中経過を午前中に見せろよ)
担当「わかりました」

このケースでは依頼された私は主任に午前中に経過を見せ、今日中に仕上げれれば、問題は起きませんね?むしろ、部長や課長は「お、速いな」という感じでしょう。さて、次の場合はどうでしょう?

<ケース2>
部長「なるはやでよろしく」(今日中)
課長「なるはやでよろしく」(2,3日中)
係長「なるはやでよろしく」(今日中)
主任「今日中によろしく」(途中経過を午前中に見せろよ)
担当「わかりました」(えー、今至急の仕事で一杯一杯で無理だよ!)

担当が無茶振りされたのを押して、主任に嫌みを言われつつ、翌朝に何とか報告書を出したとしても、係長も部長も不満を持つことになります。皆がちゃんと期限と明言し、期限まで大丈夫かどうかきちんと話し合っていれば、こんなケースは少なくなるのでしょうが……。

タイムアウト値の逆転

コンピュータの世界でもこの伝言ゲームのように、システムのいろんな部分が共同作業することがあります。先ほどの伝言ゲームのケース1のように、依頼者にちかづくに従ってより長い期限を切っているのが理想です。ところが、システムにあらかじめ「とりあえず」設定されている値を使ってシステムを組むと、ケース2のようになってしまうことがあります。私の友人はケース2のような状態をタイムアウト値の逆転と呼んでいます。タイムアウト値が逆転すると、思いがけないところで障害になることがあります。「とりあえず」設定されている値を省略値とかデフォルト値と言いますが、デフォルトの値は何も考えずに使う物ではなく、必要に応じて変更しなければいけません。あらかじめ「少し遅れるかも」とか伝えて、期待値をコントロールしておくあれと同じですね。

以前担当した障害解析を担当したあるシステムでは、物理的な準備が到底できない時間にタイムアウト値が設定されていて、その値のせいで壊れてもいない部品が交換になるというバカな話がまかり通っていました。物理的に1時間かかると分かっているのに「30分で来い!」と言っているようなものですね。

人間もコンピュータも自然の法則にしばられます。無理のない期限をはっきり分かる形で決めましょう。

余談:「とりあえず」と書いたとおり、デフォルト値は「みんなこれくらいがいいだろう」と感覚的に決まっているものから「この値でないと○○が破綻する」と制限のために用意されている値まで様々です。値はよく吟味してください。

まとめ

ここまで「時間切れ」についてお話ししました。

・人間の待ち合わせの用事、コンピュータの世界にも時間切れがある。
・コンピュータも人間も待ち合わせがうまくいかないのはお互い様。
・いくつもシステムがあったり何人も関連する人がいるときは、無理のない期限をはっきり分かる形で決めよう。

おっと、私も締め切りを見直さないと。


この記事はここまでです。 最後まで読んでいただいてありがとうございます。 気に入っていただいたなら、スキを押していただいたり、 共有していただけるとうれしいです。 コメントや感想大歓迎です!