このページの問いはひとつです。一日中働いていたのに、なぜ報告書は白紙のままなのでしょうか。「マルチタスクができている」感覚と、実際に終わった仕事の量は、同じものでしょうか。この章では、コンピュータの中身を借りて答えを探します。
朝、あなたは週次報告書を書き始めます。数行書いたところでチャットが鳴ります。取引先からの問い合わせです。内容を確認し、担当部署に確認を取り、返信を書きます。席に戻ると、報告書のどこまで書いたか思い出すのに少し時間がかかります。書き直しかけたところで、部下から引き継ぎの相談が来ます。話を聞き、判断を伝え、また報告書に戻ります。今度は会議調整のメールです。候補日を確認し、返信します。昼を過ぎたころにもう一度チャットが鳴り、さきほどの問い合わせへの追加質問が届きます。また経緯を思い出し、返信します。気づけば夕方で、報告書はまだ半分も書けていません。
この割り込みの中身を、もう少し具体的に見てみます。チャットにはこう書かれていました。「先ほどお送りした見積もり、今日中に修正版をいただけますか」。あなたは一旦キーボードから手を離し、見積もりの根拠となった条件を思い出しながら返信します。「承知しました。15時までにお送りします」。たった数往復のやり取りですが、頭の中では報告書の論旨がいったん外に押し出され、見積もりの条件がその場所に入り込みます。
もうひとつ、よくある割り込みも見てみます。部下があなたのデスクに来て、こう切り出します。「引き継ぎ資料の件で少しよろしいですか」。あなたは報告書の画面を最小化し、資料の内容と、誰にいつまでに渡すべきかを一緒に確認します。「その項目は先方の担当者名を先に埋めてから渡してください」と伝え、相談を終えます。画面を元に戻しても、報告書のどの段落を書いていたかは、すぐには思い出せません。
この一日を振り返ると、あなたは何もしなかったわけではありません。問い合わせにも対応し、部下の相談にも答え、会議も調整しました。どれも必要な仕事です。それでも「終わった」という感覚が薄いのはなぜでしょうか。理由は単純です。ひとつの仕事に、腰を据えて取り組んだ時間がほとんどなかったからです。
さらに厄介なのは、報告書に戻るたびに、少しずつ質が落ちていくことです。1回目に戻ったときはまだ何を書こうとしていたかを覚えていても、3回目、4回目と中断が重なると、前に考えていた論旨のつながりを思い出せず、同じ段落を読み返す時間が増えます。最後に仕上げた報告書を読み返すと、前半と後半で話の流れがぎこちなくつながっていることに、あなた自身が気づくかもしれません。これは能力の問題ではなく、何度も割り込まれたことの結果です。
比較のために、別の一日を想像してみます。同じ量の依頼が同じ日に舞い込んだとしても、報告書を書く90分をあらかじめ確保し、その間はチャットも電話も後回しにし、残りの時間で問い合わせ・相談・会議調整をまとめて片づけたとします。抱えている仕事の総量はまったく同じなのに、夕方の充実感はおそらく違うはずです。何が違うのかを説明するのが、この章の役目です。
さらに言えば、この違いは「意志の強さ」や「集中力の高さ」といった個人の資質の差では説明がつきません。同じ人が、同じ依頼の量を抱えていても、受け方の順番や区切り方を変えるだけで、終わる仕事の量が変わります。もしこれが個人の資質だけの問題なら、対策は精神論に頼るしかなくなりますが、実際には受け方という仕組みの問題であることが多く、仕組みである以上、設計で変えられます。この章が扱うのは、まさにその設計の部分です。
ここでコンピュータの話をします。あなたのパソコンは、いま同時に何十というプログラムを動かしているように見えます。ブラウザ、チャット、資料作成ソフト、裏で動くバックアップ処理。しかし、CPU(処理を行う部品)が1つしかない機械では、これらは本当に同時に動いているわけではありません。CPUは一瞬だけプログラムAを処理し、次の一瞬だけプログラムBを処理し、それを人間には感知できない速さで繰り返しています。同時に見えるのは、切り替えが速すぎて目で追えないからです。
もう少し細かく言うと、CPUが今どこまで計算していたかという情報は、ごく小さな記憶場所に保持されています。次のプログラムに移るときは、この情報をいったん脇の置き場に書き出し、次のプログラムの情報を読み込みます。この一連の動きが、あとのページで扱う「コンテキストスイッチ」の正体です。ここでは名前だけ触れておき、詳しくは次のページで扱います。
なお、CPUが複数個(複数コア)搭載された機械であれば、本当に同時に2つ以上のプログラムを処理できます。しかし、コアの数より多くのプログラムが動いている状況は珍しくなく、その場合はやはり高速な切り替えに頼ることになります。人間もこれと同じです。仮に手が2本あっても、意識を向けられる先はほぼ1つに絞られます。腕は2本あっても、頭は基本的に1コアだと考えると、この先の話が理解しやすくなります。
つまり、コンピュータの「マルチタスク」は、正体を明かせば高速な「ひとつずつの切り替え」です。これは本書全体を通じて何度も出てくる考え方なので、ここで押さえておきます。人間が複数の仕事を抱えているときにやっていることも、実は同じです。同時に2つの仕事を処理しているのではなく、意識をAからBへ、BからCへと切り替えているだけです。
ただし、決定的な違いがひとつあります。コンピュータの切り替えは非常に安く、人間の切り替えは非常に高くつきます。CPUが1つのプログラムから別のプログラムに切り替えるとき、いま処理していた内容を一時的な置き場に保存し、次のプログラムの内容を呼び出します。この作業自体は仕事を1ミリも進めませんが、機械にとってはごくわずかな時間で済みます。
一方、あなたが報告書から問い合わせ対応に切り替えるとき、頭の中で起きていることはもっと重たい作業です。報告書のどの段落まで考えていたか、次に何を書こうとしていたか、参照していた数字はどこにあったか。これらをいったん脇に置き、問い合わせの背景、相手が何を求めているか、社内のどの部署に確認すべきかを新たに頭に読み込みます。対応が終わって報告書に戻るときは、逆方向の読み込みが必要です。この読み込みにかかる時間は、コンピュータとは比べものにならないほど重いと考えて差し支えありません。
本書はこの「切り替え」を軸に、コンピュータサイエンスの考え方を仕事の言葉に翻訳していきます。この章で扱うのは次の5つです。ひとつ目は、プロセスとスレッドという、仕事の単位の分け方です。ふたつ目は、その切り替えに実際どれだけのコストがかかっているかという視点です。みっつ目は、割り込みと、それを一時的に受け付けなくするマスキングという、通知への向き合い方です。よっつ目は、あえて1つの仕事だけに集中する時間をつくるシングルタスク設計です。いつつ目は、似た仕事をまとめて片づけるバッチ処理です。
これらはどれも単独の小技ではなく、ひとつながりの見方です。まず仕事の単位を区切り(プロセス/スレッド)、区切ったうえで切り替えの値段を知り(コンテキストスイッチのコスト)、値段を踏まえて通知の受け方を決め(割り込みとマスキング)、最後にそれを実際の時間割に落とし込みます(シングルタスク設計とバッチ処理)。1つだけを取り入れても効果はありますが、つながりとして理解すると、応用が利く範囲が大きく広がります。
この5つの見方は、あなた個人の働き方だけでなく、チームの働き方を見直すときにも同じように使えます。チームの誰か1人が頻繁に呼び止められている状況は、その人個人の性格の問題ではなく、割り込みの受け方が設計されていないチームの問題として見ることができます。個人の工夫とチームの仕組みは、同じ考え方の上に乗っています。この章では主に個人の働き方を例に説明しますが、場面によってはチーム全体の話として読み替えてみてください。
ここで、よくある反論にも触れておきます。「仕事はどうせ思いどおりの順番では来ない。予定を立てても崩れるのだから、設計しても無駄ではないか」という反論です。たしかに、割り込みそのものをゼロにすることはできません。取引先も、上司も、部下も、こちらの都合に完全に合わせて依頼をよこすわけではありません。しかし、これはコンピュータの世界でも同じです。外部から届く割り込みのタイミングは、CPU側が完全にコントロールできるものではありません。コントロールできるのは、割り込みが来たときにどう受けるか、どの割り込みを今すぐ処理し、どれを後回しにしてよいかという「受け方」の部分です。この章で扱うのは、割り込みそのものをなくす方法ではなく、割り込みの受け方を設計する方法です。
先に結論を言っておきます。マルチタスクそのものが悪いわけではありません。コンピュータも人間も、複数の仕事を抱えながら動いています。問題は、切り替えに設計がないことです。何を優先し、何を後回しにし、何を受け付けず、何をまとめてやるか。これを決めずに、鳴った通知の順番どおりに反応し続けると、一日の終わりに「働いたのに進んでいない」という状態になります。逆に言えば、切り替えの設計さえ整えれば、抱える仕事の数を減らさなくても、進み方は大きく変わります。
これは、仕事の総量を減らす話ではないという点も付け加えておきます。忙しさそのものをなくすことは、この章の目的ではありません。同じ忙しさの中でも、切り替えの設計次第で、実際に前に進む仕事の量は変わる、というのがここでの主張です。抱えている案件を減らせなくても、受け方を変えるだけで結果が変わるのであれば、まず試す価値のある部分だと言えるでしょう。
世の中にある時間管理の助言の多くは、「優先順位をつけろ」「集中しろ」といった心構えを説きます。それ自体は間違っていませんが、なぜ集中が崩れるのか、なぜ優先順位をつけても崩れるのかという仕組みの部分までは、あまり踏み込みません。本書がコンピュータサイエンスを借りるのは、この仕組みの部分に、すでに何十年も磨かれた道具立てがあるからです。プロセスとスレッド、コンテキストスイッチ、割り込みとマスキングは、いずれも「限られた処理能力で、複数の仕事をどう捌くか」という、まったく同じ問題に対して、コンピュータの設計者たちが考え抜いた答えです。人間の働き方に当てはめても、驚くほど筋が通ります。
次のページから、ひとつずつ具体的に見ていきます。まずは、そもそも「ひとつの仕事」をどこで区切るかという、プロセスとスレッドの話からです。
なお、この章で紹介するプロセス・スレッド・コンテキストスイッチ・割り込み・マスキング・シングルタスク設計・バッチ処理という言葉は、いずれも次のページ以降で改めて丁寧に説明します。ここで一度に覚える必要はありません。まずは「マルチタスクの正体は高速な切り替えであり、その切り替えには値段がある」という1点だけを持って、次のページに進んでください。この1点さえ腹に落ちれば、以降のページで扱う細かい道具立ては、すんなりつながって見えてくるはずです。
持ち帰り
- 人間の「マルチタスク」も、実際は仕事の間を高速に切り替えているだけである
- コンピュータの切り替えは安いが、人間の切り替えは頭の中の再読み込みが必要で高くつく
- 切り替え自体に設計がないと、働いた実感と終わった仕事の量がずれていく
やってみる
今日一日、仕事を切り替えるたびに何に切り替えたかを1行だけメモしてみてください。夕方に見返すと、切り替えの回数そのものが見えてきます。