やたら割り込みがある環境でのタスク整理

割り込みが多い環境で仕事をしている。
よしプログラムを書こうと席につくと、社内チャットで調査依頼が来て、
調査をしていたら別の人から社内チャットでちょっと来てくれと言われ、
歩いて行く途中で誰かに呼び止められて質問に答え、
社内チャットで呼び出した人と話していたら客から電話が鳴り、
一通り話し終わって席に戻ると誰かが仕様確認のために待っていて、
答え終わった頃に最初の調査依頼の人からまだですかと催促が来て、
当初書こうと思ってたプログラムはもちろん進んでない、みたいなイメージ。
まあでも実際みんなこんなものなのかもしれない。

で、それに加えてADD傾向という割り込みに大変弱い頭の作りをしている。
どうやって回していけばいいかひたすら試行錯誤しているが、最近少し定まってきた。
とはいえ、まだまだいまいちな面が多いので、これからもどんどん変わっていくと思う。

  • 管理ツールはGoogle Tasksを使う
  • タスクリストは、今日、近日、そのうち、いつかの4種類を用意している
    • 一週間以内、みたいな具体的な名前だった時期もあるが、一生「明日やります」な状態のタスクなど出現してくるのでやめた
  • タスクをグループ化するためにPJという概念を持たせる
    • 「【XX開発】YY機能の設計」みたいな名前でタスクを作る
    • PJもそれ用のタスクリストを使って管理している
      • アクティブと非アクティブの2つのリストに分けている
  • タスクの粒度は細かいほうが良さそう
    • 細かいほど良い、というわけではないが、一日で終わらないような粒度で切ると厳しい、モチベーション的に
    • 短時間でチェックを入れられることが重要
  • やること全部タスクリストに載せていない
    • 基本、各PJの次やることしか載せない
    • 2手以上先のことはわりと変わったりするのでそれぐらいでちょうど良さそう
    • PJ内のやること全部洗い出して見積もって、みたいのは別でやる、プロジェクト管理ツールとか使う
    • 「今日」リストは特別なリストで、今日やる予定のことを書くので、ここに同じPJのものが複数入っていることはある
  • 毎日、「今日」リストにその日やることを列挙する
    • この作業が一番大事、わりと時間かけて良いと思う
    • これやってるときに割り込まれると終わるので、だいたい家で、前日の夜か当日の朝やる
      • 遅刻にルーズな環境なので朝でもできるが、前日夜にやるほうが実感としては良い、朝は焦ってしまう
    • それぞれのタスクがどれくらいかかりそうか見積もっておき、1日分(自分の場合は8時間)並べる
    • 並べ終わったら、ひたすら上から順番に実行する
    • 重要度・緊急度が高いものが上に来る
    • あと、すぐに終わるやつを上に持っていく、ADD傾向の話とか関係あるかもしれんが、細かいのが残っていると集中できない
    • 内容が似ていたり、関連性のあるものは並べておくほうが良い、コンテキストスイッチのコスト半端じゃない
    • 「着手した時刻」を記録しておく、次のタスクの着手時刻から引き算すればだいたい実績値がとれる
      • 後述するが、割り込みの記録という意味でも有効
  • 割り込みが入ったら、今日リストの一番上に入れる
    • 割り込みタスクであることがわかる印をつける
    • 割り込みの割り込みというパターンを除いて、今日リストの中途半端なところに入れるのはやめたほうが良い実感がある
      • 一番上に来ないやつは「近日」くらいに入れて次の日やれば良いことが多い
    • 割り込み入ったときにToDoリスト開いてられなかったり、開くの忘れたりすることもあるが、許容する
      • 割り込みが入るとそのあたりの着手時間が異常なことになるので、あとからわかる
        • こんなゴミみたいなタスクにN時間かかっている!あの割り込みのせいだ!ってわかればOKな気がする
        • ちゃんと記録した場合は、上から順番にやっているはずなのに着手時間が前後してるので、よりわかりやすい
          • 割り込みから戻ってきた場合に着手時間を書き直したりはしない、とにかく異常なことがあったとわかるほうが良い
    • 最終的にはもちろん割り込みがなくなるほうが良いので、割り込みのせいで計画が狂ったクソって気持ちを持てるほうが良い
    • 普通に最初の見積が狂っていたのか、割り込みがあったのかはなんとなくわかるので、見積が狂っていたときは素直に反省する
  • コミュニケーションを伴うものは「今日」リストの中でも別枠で管理する
    • XXさんにYYを確認する、ZZさんにメールをする、等
    • できるだけ午前に済ませる、相手の都合もあるので、タイミングを逃すといつになるかわからない
  • 「今日」リストの一番下まで行く日は稀だが、次の日の「今日」リストの一番上にもっていけば良い
    • 一番上と言わずとも、かなり上に来るはずだが、たまに、毎日「今日」リストの底の方でとごってるやつがいる
      • そういうタスクは何かが狂っているので、優先順位を考え直したほうがいい
        • 実はどうでもいいか、本当にその日にはやらないといけないのにやってないかどっちか