コンテキストスイッチとうまく付き合いたい
2022年07月27日 水曜日
CONTENTS
“コンテキストスイッチ”とは
今回登場するコンテキストスイッチは、CPUのコンテキストスイッチングではなく、人が作業を中断して別の作業に切り替えることで発生する予定外の時間のことです。
プロジェクト計画やその中の作業計画など、様々な計画段階で「バッファ」を作成すると思います。
バッファがあることによって想定外の事象が起きた場合や、予定外の作業が増えた場合でも影響が小さいものであれば大きなスケジュールを変更せずに対応ができるようになるため、必要なものではありますが、正しい運用ができているのか判断するのは難しいと思っています。
また細かい作業でも数が増える程コンテキストスイッチが大きくなってしまうので、バッファ対応であっても計画を立てて取り組むことが効率よく作業を進めるためにも大切であることが多いです。
“割り込み” から生まれる “思い出す時間”
例えば、割り込みの作業を実施した後で、その前に実施していた作業に戻った時に「あれ?今どこまでやって、何を考えていたっけ?」と手が止まったことはありませんか?
その時の「えっと……どこまでやったけ?」のように思い出す時間を”割り込みによって発生するムダ”として、コンテキストスイッチと呼びます。
コンテキストスイッチを体験してみよう
紙とペンとストップウォッチを用意します
(正確な秒数は不要なので、ストップウォッチは時間が計測できるものであればなんでもOKです)
このような枠を書きます。
下図の書き順を見ながら表を完成させてみてください。
その時に、進め方①と進め方②のスタートから完成までの速さをストップウォッチで計測します。
私も久々にやってみました。進め方①は時間がかかりますし、ペンが少し止まったりしたのではないでしょうか。
私の結果を見ると、”本来35秒でできることに55秒もかかってしまっていること”が分かります。
このような簡単なことでも差が出ていることに気づいてもらえると嬉しいです。
実際のお仕事は、書いたり、考えたり……色々されているかと思います。
複雑になればなるほどコンテキストスイッチによるムダは増えていくのではないでしょうか。
コンテキストスイッチとうまく付き合うには
ここまで読んでくださった方は、「コンテキストスイッチは悪!」、「割り込み作業反対!」と思い始めたのではないでしょうか。
しかしながら割り込み作業をゼロにすることはできません。
どんな時でも、何をしていても、割り込みは発生するものです。自分自身が誰かにちょっと聞きたいな、と思うこともあるはずです。
考えれば考えるほど、様々なパターンがありますし、すべてが悪ではありません。どうしようもないこともたくさんあります。
「今日の午前は昨日割り込みで発生した軽作業を終わらせる時間。午後はこのプログラムをじっくり書く。」のような頭の切り替え時間ができる限り短くなるような工夫ができたら良いのですがうまくいかないことも多いですよね。
コンテキストスイッチについて社内の人と話してみた
Aさん
タスクの処理・整理とか自律的にできるようになろうと自己訓練していますが、なかなかうまくいかないのが現状でして、それはそれで仕方ないかーってなります。
お願いする人はまずその人にお願いしようと思った際にそれがどんなタスクなのかの概要を極力きちんと整理したうえで依頼すると良いかな。
Bさん
認知負荷の話に近そうですね。
人間のワーキングメモリは有限なので、新しいことを見たり聞いたりする毎に、ワーキングメモリへの出し入れが発生するわけですが、その出し入れが心的負荷につながるのかも……。
私
「認知負荷」!確かに色々なことが立て続けに発生すると頭の中でぐるぐる考えてNow Loading状態になると、まさに負荷って感じです!
“負荷”と聞くと頼み事をする人は負荷を極力減らす頼み方をしなくては!と強く感じますね。
Aさん
受け取る人も気楽な気持ちで受け取るのが寛容かな~と思っています。
依頼する人の余裕のなさそうな顔を見ると「少しでも助けよう」とか思うわけで、これも長年の経験からたどり着いた心の持ち方なのかなーと。
「ごめんけど」でもいいので先頭に少し感情を和らげる言葉を持ってくると良いかも。
私
お互い助け合って、相手を思い合って、それが “仕事をすること”、なのかも……。
心に染みました。
Cさん
割り込み依頼をTeamsチャットなどで非同期に受け取れるように、周りとのコミュニケーション方法を決めておくのも大事ですね。
そして一番大事なのは作業中にTeamsなどのチャットツールを見ない強い心……。
私
私も以前は集中して作業しているつもりでも、画面の端にチャットの通知が表示されると気になってしまって、手を止めて読んでいました。
今はコミュニケーションルールとして、急ぎではないものにはメンションを付けないようにしたり、チャット内に『急用チャンネル』と『後からゆっくり見るチャンネル』を分ける取り組みをしたり、チームで自分たちに合ったルールを考えて作ったので、軽減できている気がします!
Dさん
自分は素潜りの話(※1)を思い起こしました。
私
素潜り……!その例えは知りませんでした!
『声をかける側が気軽な返事を求めても、作業中は何気なく返事できない場合もある』なるほどなるほど……。
私も余裕がない時に素っ気ない返事をしてしまって、「雑に対応したつもりじゃなかったんです!」と謝りに行った経験があります……まさにこれですね。
Eさん
カエルが腕組みしてるやつ(※2)もありますよね~。
私
カエルが腕組……!それも知りませんでした!
Fさん
プログラマーの効率曲線(※3)っていうのもありますよ。
私
それも初めて見ました!分かる、気持ちがとても分かる……!
もちねこ風刺画(※4)も可愛いですよね。
Eさん
もちねこ風刺画知りませんでした!可愛いですね!
会話から思ったこと
「コンテキストスイッチ」というタイトルで会話を始めましたが、様々な表現方法を知りました。
仕事をしていると割り込みは発生するものと意識しながら、割り込みが発生した際のお互いの気持ちを理解するために例え話やイラストを有効的に使えるとコミュニケーションがより良くなりそうだと思いました。
最後に
お互い助け合って、支え合って、思いやって”仕事”ができることが一番理想的ですね。
お願いする人も、受け取る人も、頭の切り替え時間ができる限り短くなるような工夫をして、コンテキストスイッチを少なくしてくできるように仕事の進め方、頼み方、考え方を見直すきっかけになっていただければ嬉しいです!