エンジニアのための時間管理術を読んだ

素晴らしい本だと感じた。

原題は「Time Management for System Administrators」なので、
シスアド向けの本らしい。

会社での自分の職能はシスアドではないのだけど、
やっていることはある意味、システム管理者に近いのかもしれない。

8章の「優先順位」に以下の一節がある。

上司から何かを頼まれた場合、それが(大きなプロジェクトではなく)すぐに済む 作業であれば、直ちに取りかかってください。
(中略)
なぜこのことが重要なのでしょうか。あなたの次の給与査定をするのは上司です。 これ以上何か言う必要があるでしょうか。

これだけで名著だと思う。
ADHDにとってタスク管理は、現実の、とてもシビアで難しい問題である。
筆者の試行錯誤に裏打ちされた、リアリティと説得力のある良い本だと思う。

錆びついていた

しばらくコードを書く仕事をしていなくて、
昨日、3週間ぶりくらいにまじめにコードを書いたのだけど、
全然書けなくなっていてびっくりした。

しばらく楽器を弾いてなくて、久しぶりに弾いたときの感覚に近い。

日常的に腕を動かしていないと錆びついてしまうのだなと感じた。
早く感覚を取り戻せるといいが。

Gmailのデスクトップ通知をやめた

前から邪魔だと思っていた。
だいぶ快適になった。

受信した瞬間に気づかないといけないメールがあると思っていたが、
意外とない。

誰も送った瞬間に読まれると思ってメールを送っていないし、
「メール見逃していました」は言い訳としてけっこう通じてしまう。

ADHD的タスク管理法

タスク管理のことは常に考えている。
管理せず、なんとなくいい感じにこなすのは不可能なので、
手法を限界まで洗練させるしかない。

それでもうまくいかず大量に怒られ発生しているのだが、
なんとなくしっくりきはじめた感もあり、最近のやり方をまとめておく。
基本的にはタスクリストとアラームに頼りきるというよく言われてる方式だが、
形式的なところだけでなく、感覚的なコツがかなり大きいと思う。

タスク管理ツール

Trello。
UIがかなり理想に近い。リスト間の移動が直感的なのが最高。
本来、プロジェクト管理ツールに近いと思うが、
タスク管理ツールとしてかなり力を発揮してくれる。

RTMとかTodoistとか、機能性が高すぎて無理だった。
Google Taskはいい線いっていたが、リスト間の移動が面倒だった。

ツール、何でもいいように見えて、
ちょっとでもだめだと思ってしまうと途端に放棄してしまう。
特にUI部分は理想を追い求めてかないといけないし、
自分で作るのもありだと思う。

リスト

「今日」「近日」「ペンディング」「完了」の4つ作る。
タスクをこの4つの中で移動させまくって管理する。
リスト間の移動、超重要であり、Trelloが最高なのはそこが直感的にできることだ。

ただこれは、割り込み超絶多い環境で働いているからそう思うのであって、
割り込む少なければ恩恵は少ないのかもしれない。

ラベル

「長期タスク」「スポット」「コミュニケーション」「打ち合わせ」の4つ。
Trelloはタスクにラベルで色付けできる。
カラフルなほうが刺激的でADHD脳に効くのだ。たぶん。

開発プロジェクトのような長期タスクの一部として、
なになに機能を作る、みたいなときは緑のラベル、
ちょっとやっといて的なスポット仕事は赤のラベルにしている。
ADHD者はスポットのタスクにやられる。
やっといてと言われたら優先順位無視してやってしまう。
「完了」に緑のタスクが入らなくなりはじめたらやばい兆候。

「コミュニケーション」は、XXさんに相談するとか、YYさんに話を通すとか、そういうタスク。
気が乗らなくても早めにやらないといけない。
相手の時間を押さえられるか不明だし、
組織でやっていく上では優先順位上げといたほうが絶対いい。
やってないってなったとき、いろいろ損する。

「打ち合わせ」は、自分の感覚ではタスク管理に入れるものじゃないのだが、
入れとかないと存在を忘れて狂った計画を立てたり、
打ち合わせをぶっちぎったりするので、入れている。

タスクの粒度

細かいほど良い。
なんかタスクリストから永遠に消えていかないってやつがいる場合、
粒度が大きすぎることが多い。

次にやることをイメージできる内容にしておかないと、
手をつけることができない。
「XX機能の見積」はだめ。
「XX機能の見積のためにYYの実装を確認する」はわりと着手できる。

次にやることをイメージできる粒度っていうのは感覚的なもので、
例えば、「Aキーをタイプする」とかは明らかに細かすぎてだめだけど、
ここまで細かくするの?ってぐらいの粒度にしとかないと
手がつけられないものもあったりする。

とにかくタスクを「ばかでかい何か」だと思ってしまうと着手できなくなるので、
迷ったら細かくする。

あと、次やること以外はリストに載せないようにしている。
それなりに粒度を細かくすると、将来のタスクを全て書き込んでいたら
とても管理できる量ではなくなる。
どうせやり終えたら次に何をやらないといけないかは浮かんでいるので、
それをリストに載せれば良い。

タスクの優先順位

これは本当重要かつ難しい。
結論として「人を怒らせない順番」に並べるのが良い。

昔は降ってくる仕事を重要度順に並べていたが、
これはうまくいかなかったし、間違いだったと思う。
他に重要なタスクがあるからといってlsコマンドの結果を返さないOSがあったら
そりゃ使えないよね、という。

「人を怒らせない順番」を考え始めると、
とりあえずAをA'にしておけば怒られないからそのうちに重要なBをやろう、
っていうのが出始めるが、これが(クソなことに)とても物事をうまく回してくれる。
結果が返せなくてもとりあえずプログレスバー出すとか、
最悪、エラー返すとかしておけば物事が回りやすくなる。

で、もっと最悪な話をすると、怒らせてはいけない順番もあって、
「客 > 上司 > その他の同僚」となる。
これを意識するととたんにスムーズに回るようになる。本当に最悪である。

まあどうせしょうもないミスで怒らせるのだから、
段取りの段階では怒らせないよう努力したほうが良い。

朝の整理作業

まず、朝、「今日」リストを整備する。

ここで、いきなりTrelloを開かない方が良い。
そこに載っていることに意識が持って行かれてしまう。
最悪の場合「あ、これ今日までだ、やらないと」で整理しないまま作業を始めてしまう。

まずテキストエディタに今日やらないといけないことを箇条書きにしていく。
出揃ったら、Trelloを開いて、
リストアップしたもののうち、Trelloに載っていないものを「近日」リストに追加する。
この時点では「今日」リストには何もない。(昨日のやり残しは「近日」に移動しておく。)

追加したタスクに、だいたいどれくらいでできそうか予想を書く。
あんまり厳密に考えず、雑に「30分」とか書く。
ここで「5分」とか書くとまずくて、たしかにそのタスクは5分以内には終わるけど、
コンテキストスイッチのコストとかあってトータルではもっとかかってるみたいなことがありがち。
最低単位を15分にするルールにしている。

で、今日やらないといけないものを5〜6時間分くらい厳選して「今日」に移動し、
怒られない順番に並べる。

この作業が終わる前に割り込みが発生することがあるが、
極力やらないほうが良い。
リストが完成するまで今日着手できるかすらわからないので、 完了時期を答えることすらできず、待ってもらうしかない。
緊急事態とかでやらざるを得ないときもあるが、
だいたいそういう場合は1日単位でダメな感じになる。

できれば人より早く仕事を始めて、リストを完成させておくと良い。
が、まあ、無理である。

アラーム

12:00、16:00にWindowsのタスクスケジューラでアラームを出している。
12:00は昼食の合図で、過集中に入り昼食とりわすれて後半最悪になるのを防ぐ用。
16:00は今日一日の進捗を冷静に振り返って、謝罪・調整をしましょうの合図である。

日常生活では、先延ばし癖を防ぐためにアラーム入れまくるというのが超絶有効で、
大活躍するのだが、仕事ではその用途は微妙で、
アラーム入れたときとは状況変わっていたりして、
ちょっと後回しだな、とかやって結局忘れるみたいになりがち。
アラーム出すよりタスクリストに入れたほうが忘れにくい。

打ち合わせをぶっちぎらないための友としてはかなり有効。

その他

だいぶ書くのに飽きてきたので終わりにするが、

  • 常に更新する。
    • 割り込みが入ったらかならずリストに載せる。
    • 今日やれないと判断したら「近日」リストへ移動する。
  • メーラーは意識を持っていかれる悪魔のツールなので、
    タスクに関係するメールをTrelloのコメント欄に貼り付けておいて、閉じる。
    タスクの合間に開くようにする。
  • プロジェクトの全体的なスケジューリングとかは別でやる。
    あくまで、今日やることを管理するためのツールにする。

というあたりも大事。

いろいろやっても破綻するし、すぐ飽きるので、
一ヶ月後もこの手法でやっているか怪しいが、
今のところこれがベスト。

というか定型発達者っぽい人でタスク管理ツールに凝ってる人あんまり見ないけど、
やはりなんとなくできてしまうものなのだろうか。
神としか思えない。

Google Keep

Google Keepを使い始めた。
思いついたことや、欲しいものや、日常のToDoを全部これに入れる。
昔はEvernote、最近はwri.peでこの手のことをやっていたが、
付箋風のUIに一目惚れして移管した。

Google Keep、昔、誰かに最高だと勧められた気がする。
当時は価値を全く理解できなかった。
今、とにかく目まぐるしく興味が動く自分の特性を踏まえた上で、
とりあえず放り込んでおけるメモの重要性にようやく気づいたと言える。

色分け機能が強力な気がしていて、
とりあえず、黄色がほしいものややりたいこと、
オレンジが買ったほうがいいものややったほうがいいこと、
赤が買わないといけないものややらないといけないこと、
その他のメモ等は全部白というルールにしてみた。

最近、仕事でタスク管理をやる上で、
とにかく発生したタスクを全て管理ツール上に載せる能力が必要だと感じ始めていて、
その練習も兼ねて、とにかく全てぶちこむように意識している。
割り込みが入った時に落ち着いてタスク管理ツール開いてられないってのはあるが、
それ以上に割り込みの割り込みが入った時、1つ目を忘れるというリスクが大きすぎる。
思いついた瞬間に外部記憶に書き込むっていう能力を身に着けたい。

洗濯毎日できてない

洗濯毎日するとは言ったものの、
全然できていない。

最近忙しいというのもあるけど、
やっぱ面倒くさくてしょうがない。

洗濯機を回すのは、わりとできる。
干すところが問題だ。

よくPythonを書くようになった

仕事ではWindowsを使っていて、
仕事を自動化する上でがんばってPowerShellScript書いてたんだけど、
どうも手に馴染まない。
結局、ほとんどPythonで書くようになった。

なぜPythonかというと、
先人たちの努力により、
使用しても社内のセキュリティ規定に引っかからないからだ。

いろいろ厳しい監視の目があって、
アプリケーションどころかChrome拡張すら自由に入れられないのだけど、
pipで何か入れるのは制限されていない。
管理部署がpipの存在を知らないからだ。

まあ、普段やってることなんて大したことじゃなく、
SeleniumとBeautifulSoupとparamikoぐらいあれば大体自動化できる。

linuxにもPython絶対入ってるじゃんっていうのも
Pythonを選んだ理由だったんだけど、
まだまだOSデフォルトのPythonは2が多くて、
なんか2を書く気にはならなくて、
むりやりシェルスクリプトで頑張ってしまっている。