コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

複数タスクを並行でこなすとき、時間軸で振り分けを考える

最近タスク整理業が多すぎるのでそこで文章化したかったことをまとめる。

並行タスクの問題点

あふれるタスクを整理するときに時間軸で整理する

  • そのタスクは依頼を必要とするものか
  • そのタスクは期限が求められるものか
  • そのタスクは後続のものがあるか

などの観点で判断する。

振り分けの発想

基本的には待ち時間が発生するもの(例えば返事が欲しいメールや長いバッチ処理)などはなるべく早く手を付ける、なぜかというと

  • 待ち時間の間に別のタスクがこなせる
  • 依頼先が要する時間などは自分がコントロールできないので、コントロール不能なものほど時間の余剰が必要

という観点から先に作業を行う。

依頼タスクがたくさんある場合どうするか

そのように待ちが多く発生するタスクが同時多発的にある場合、次の考え方で優先順位を決める

  • そのタスクの完了が遅延すると全体のクリティカルパスに影響しないか
  • 待ちの時間の長さに差があるか

基本的には全体的な遅れや、致命傷などにならないように回避する策を考えるというのが肝要である。

たとえば「待ちの時間の長さに差があるか」はメールなどで考えるとわかりやすく返事の欲しいメールを送って、すぐ返ってくる相手ならいいが、とても忙しい相手などには早めに送っておいて、相手のタスクとして潜り込ませて余裕のあるタイミングで処理してもらうように促すなどのほうがよく回ったりもする

気をつけること

先にさばいた待ちタスクは、返事が戻ってくるまで他のタスクにとりかかれる一方で、戻ってこないとタスクそのものを忘れてしまうことがあるので、気をつけること。