仕事に効くコンピュータサイエンス
待ち時間を設計する — I/Oと非同期読了目安 10分

待たされ上手になる — 本章のまとめ

本章は、週次報告の数字を待つ画面の前から始まりました。あの手持ち無沙汰な数分は、いったい何だったのか。ここまで4つの視点を見てきた今、この問いに対する答えは、最初よりもずっと具体的になっているはずです。このページでは、4つの視点をつなぎ直し、次章への橋渡しをします。細かい用語よりも、視点と視点のつながり方を持ち帰ってもらえれば、このページの役目は果たせたことになります。

4つの視点のつながり

最初に見たのは、作業を「頭バウンド」と「他人バウンド」に分ける視点でした。自分の手と頭だけで進む作業と、誰かの返事を待たないと進まない作業は、性質がまったく違います。集中力を上げれば速くなるのは頭バウンドな作業だけであり、他人バウンドな作業をいくら注視していても、相手の応答速度は変わりません。この区別は、待ち時間がどこにあるのかを見つけるための出発点であり、ここができなければ、そもそも何を設計すればよいのかが見えません。

次に見たのは、他人バウンドな作業に対して「依頼を先に出す」というブロッキング・ノンブロッキングの選び方でした。依頼を出したあと、その場に張り付いて結果を待つのがブロッキング、依頼だけ先に出してすぐ次に移るのがノンブロッキングです。ここでの指針は、依頼をできるだけ早いタイミングで出し、返事を待つ間は他の作業を進めるという、単純だが徹底されにくい原則でした。電話とメールの使い分けのように、道具の選択自体がこの発想の応用になっているという点も見ました。

3つ目に見たのは、依頼を出したあと、結果をどう受け取るかというポーリングと割り込みの選び方でした。自分から確認しに行くのがポーリング、相手から知らせてもらうのが割り込みです。ここでは、見逃したときの損害の大きさと、集中を守りたい度合いという2つの軸で、連絡の性質ごとに確認方式を使い分けることの重要性を見ました。通知を増やせば安心という発想が、実は中断のコストを際限なく受け入れることになるという落とし穴も確認しました。

4つ目に見たのは、複数の作業や案件が存在するときに、それらの待ち時間を重ねて処理する、パイプライン化という発想でした。1件ずつ順番にこなすのではなく、待ち時間の最中に別の案件の作業を差し込むことで、全体の完了ペースを引き上げます。ただし全体の速さは最も遅い工程、ボトルネックによって決まるため、重ねることと同時に、どこが流れを制限しているかを見極める必要がありました。承認者が1人しかいない、といった状況では、いくら他の工程を効率化しても、そこで全体が頭打ちになるという点も確認しました。

この4つは、それぞれ独立した技術用語に見えて、実は1本の線でつながっています。まず待ち時間を見つけ(CPUバウンド/I/Oバウンド)、次に依頼の出し方を選び(ブロッキング/ノンブロッキング)、その結果の受け取り方を選び(ポーリング/割り込み)、最後に複数の待ち時間を重ねて処理する(パイプライン化)。この順番で考えると、待ち時間は「仕方なく耐えるもの」から「設計して使いこなすもの」に変わります。1つでも欠けると、この線はどこかで途切れます。見つけられなければ依頼の出し方を選びようがなく、依頼を出せても受け取り方が雑なら見落としが生まれ、受け取り方が整っていても重ねる発想がなければ複数案件はさばけません。

共通する1つの原則

4つの視点に共通しているのは、「待っている間、自分が何をしているかに自覚的であること」という、たった1つの原則です。技術的な用語を並べると複雑に見えますが、実践すべきことは意外にシンプルです。依頼はまとめて早く出す。待っている間は放置せず、次の作業を用意しておく。通知は連絡の重要度に応じて設定する。複数の案件は工程をずらして重ねる。どれも特別な才能や道具を必要とせず、意識と少しの段取りがあれば実践できます。

反対に、この自覚がないまま働くと、待ち時間はただ漏れていくだけの時間になります。承認待ちの間、画面を眺めて過ごす。返事が来るたびに手を止める。複数の案件を律儀に1件ずつ片付ける。これらはどれも、悪気なく、むしろ真面目に取り組んでいるつもりで陥ってしまう罠です。本章で見た用語は、この罠に名前を付け、対処法とセットで示すためのものでした。

この自覚を持つために特に有効なのが、1ページ目で紹介した「自分完結か、誰か待ちか」という印を付ける習慣です。この印さえ付けられれば、あとの3つの視点、つまり依頼の出し方、結果の受け取り方、複数案件の重ね方は、印を付けた「誰か待ち」の部分に対して順番に当てはめていくだけで済みます。逆に言えば、この最初の一歩を飛ばして、いきなり通知設定やパイプライン化のテクニックだけを真似ても、どこに当てはめればよいか分からず、効果は限定的になります。

職場の場面で振り返る

問い合わせ対応、会議調整、引き継ぎ、週次報告という、本章を通して繰り返し登場した4つの場面を、あらためて並べてみます。問い合わせ対応では、事実確認という他人バウンドな部分を先に依頼として出し、確認不要な問い合わせと並行して進めることで、複数件を同時にさばけるようになりました。会議調整では、候補出しをノンブロッキングに進め、返信の確認はポーリングを基本にしつつ、直前だけ割り込みに切り替えるという使い分けを見ました。引き継ぎでは、質問事項をまとめて先に出し、複数のテーマを重ねて進めることで、1つずつ確認しては待つという非効率を避けられました。週次報告では、他部署への依頼を早く出し、複数チームからの提出をパイプライン的に確認していくことで、締切直前の集中を避けられました。

これらはすべて、特定の業種や職種に限った話ではありません。誰かに何かを依頼し、その返事を待つという構造がある仕事であれば、どの職場にも当てはまります。本章の4つの視点は、業務の中身を知らなくても適用できる、汎用的な物差しです。

落とし穴の共通点

本章の各ページで見た落とし穴にも、共通する構造がありました。それは、「片方の極端に振り切ってしまう」という失敗です。すべての通知をオンにする、あるいはすべてをポーリングに任せる。すべての案件を並行させようとする、あるいは1件ずつ律儀にこなす。いずれも、状況に応じた使い分けを怠り、1つのやり方に頼りすぎた結果として起きています。

待ち時間の設計に、唯一の正解はありません。連絡の緊急度、案件の性質、自分の集中力の状態によって、最適なやり方はそのつど変わります。本章で得た概念は、正解を機械的に当てはめるための公式ではなく、状況を見て判断するための物差しとして使うものです。

もう1つ共通していたのは、「相手側から見た自分」という視点です。ノンブロッキングのページで見たように、自分が依頼を先に出して楽になったつもりでも、その依頼が相手にとって急かされたブロッキングな依頼になっていることがあります。パイプライン化のページで見たボトルネックも、自分の工程だけを見ていては気づけず、承認者という他者の処理能力まで含めて考えて初めて見えてきます。待ち時間の設計は、自分の時間だけでなく、依頼のやり取りをしている相手の時間にも影響するという視点を、本章を通じて繰り返し確認してきました。

次章への橋 — 待つ以前の問題

本章では「待ち時間をどう扱うか」を見てきましたが、そもそも複数の作業をどの順番でこなすかという、もう1つ手前の問題があります。これから取りかかる作業と、後回しにしてよい作業をどう並べるか。この問いは、次章で扱う「スケジューリング」というテーマにつながります。

たとえば、パイプライン化によって複数の案件を並行して進められるようになったとしても、次にどの案件から手をつけるべきかという判断は残ります。締切が近い案件を優先すべきか、それとも早く終わる案件から片付けるべきか。この判断を体系立てて考える枠組みが、次章で扱う先着順、優先度、締切による割り込みといった考え方です。本章で身につけた「待ち時間を見つけ、設計する」という視点の上に、次章では「何から手をつけるかを決める」という視点が重なります。

待ち時間の設計とスケジューリングは、どちらも1章で見たプロセスやコンテキストスイッチという土台の上に成り立つ、一続きの話です。どの作業に取りかかり(スケジューリング)、その作業のどこで待ちが発生し、その待ちをどう扱うか(本章)。この2つを合わせて考えられるようになると、1日の時間の使い方は、行き当たりばったりのものから、根拠のある設計に変わっていきます。

実際、本章で見てきた場面の多くは、次章のスケジューリングの視点を持ち込むとさらに整理できます。たとえば、複数の他人バウンドな依頼を抱えているとき、どれから先に依頼を出すべきかという順番の問題は、まさにスケジューリングの領域です。締切が近い依頼を優先するのか、それとも早く返事が来そうな依頼から片付けるのか。この判断基準を持たないまま依頼の順番を決めていると、せっかく本章で身につけた「依頼を先に出す」という工夫も、効果が半減してしまいます。

さらに、次章で扱うエイジング(長く放置されたタスクを救済する仕組み)という考え方は、本章で見た「待ち時間の中で忘れられた依頼」の問題ともつながります。依頼を先に出したまま、そのことを忘れてしまい、締切間際になって初めて未対応に気づく、という失敗は、優先順位の付け方そのものに問題があることも多いのです。本章の技術と次章の技術は、別々に使うよりも、組み合わせて使ったときに真価を発揮します。

持ち帰り

  • 待ち時間の設計は、見つける・依頼を出す・結果を受け取る・重ねるという4つの視点のつながりでできている
  • 共通する原則は「待っている間、自分が何をしているかに自覚的であること」であり、特別な道具を必要としない
  • 唯一の正解はなく、連絡や案件の性質に応じて使い分けることが本章全体の実務的な結論になる

最後に、本章の内容を1日のはじめに使える形にまとめておきます。朝、その日の予定を確認するときに、次の3つを自問してみてください。今日抱えている作業のうち、誰かの返事待ちが発生するものはどれか。それらの依頼は、今すぐ先に出せるか。複数の待ち時間を重ねられる組み合わせはないか。この3つの問いに答えるだけで、1日の時間の使い方は大きく変わります。特別な仕組みを新しく導入する必要はなく、この3問を頭の中で回すだけでも効果は実感できるはずです。次章では、この土台の上に「どの作業から手をつけるか」という順番の設計を積み重ねていきます。

やってみる

今週の予定を見直し、本章で扱った4つの視点のうち、自分が最も実践できていないものを1つ選んで、来週1週間だけ意識して試してみてください。