前置き(ここは記事を書くきっかけなので読み飛ばし OK です)

まだ開発者として働き始める何年も前に、alphatodoというタスク管理アプリを作りました。

アプリ名の由来は「あなたがすべきすべてのこと」という意味の all (you) have to do というフレーズと、タスク管理はすべての仕事の一歩目という意味からギリシャ語の第一文字である α の音から取っています。

と、アプリを作るぐらいですから、タスク管理ツールや生産性に関する興味関心は昔からありました。

その関心とは裏腹に、最近は仕事をしているときもチーム全体のタスク管理で使っている asana ぐらいしかプロダクティビティに関するツールを用いておらずで、日々のタスク管理は下記のようなものだけになっています。

  • タスク管理(asana を用いてタスクの一覧化とスコープ分解を行う)

    1. PJ 全体のタスクを親タスクとして asana のカードを作る
      • ここのサイズ感は PJ の規模次第で、数ヶ月のものから 1week のものまである
      • このカードは kanban レーンにおいて in progress に載せずに todo に置き続ける
    2. 1 の親タスクのサブタスクで全体のタスクを細かく切り分けたタスクを管理する
      • このサブタスクは in progress の状態になったときに、それぞれ別のカードとして kanban 上の in progress に置く
      • ここのタスクのサイズ感は「アウトプットが伴うもの」で設定する
        • in progress ⇒ review ⇒ done の流れに乗せて、チームメンバーとの進捗が見える化できるようにアウトプットが伴う粒度でタスク分解しています
        • 開発タスクの場合は、1 PR のサイズ感で切り出す
    3. 上記子タスクのカードのサブタスクで、さらに細かい todo を記載する
  • 毎日の todo 管理(slack を用いてその日にやるべきこと一覧と優先順位設計を行う)

    • 一日の初めに上記 3 でセットした todo や、その日にやるべきレビューや MTG などの予定を slack の個人メッセージにすべて書き出す
    • 優先順位順に並び替える
    • 上から片付けていく

上記でタスク管理としては十分機能しています。

しかし、最近複数のプロジェクトを抱えていたり、ロールが変わったことによる MTG やメンションの増加もあって、より一層のプロダクティビティ向上が必要だと危機感を感じています。

プロダクティビティにおける現在の一番の課題は、上記で話しているマルチタスクや割り込みによるエンジニアリング業務の手止まりなので、ここを解消する手段として「ポモドーロ」に本気で取り組んでみたいと考えています。

そのため、この記事ではポモドーロって何がよいの?という問いと、自身が思うポモドーロの課題への現時点の指針の整理を行おうと思います。

ポモドーロ・テクニックに関して改めてまとめる

ポモドーロ・テクニックってなに?

ポモドーロ・テクニックとは、1980 年代にイタリア人のフランチェスコ・シリによって考案された時間管理術です。具体的な手順は下記になります

1. 達成しようとするタスクを選ぶ
2. キッチンタイマーで25分を設定する
3. タイマーが鳴るまでタスクに集中する
4. 少し休憩する(5分程度)
5. ステップ2 - 4を4回繰り返したら、少し長めに休憩する(15分 - 30分)

- wikipedia 「ポモドーロ・テクニック」 参照 -

エンジニア御用達の「SOFT SKILLS  ソフトウェア開発者の人生マニュアル」でも取り上げられているツールになっています。

(より具体的な方法はタスク管理ツールtodoist のページにわかりやすくまとまっているので、こちらを参照いただければと思います。)

ポモドーロは何が良いのか?

メリットに関してはポモドーロ・テクニックでググったら色んなサイトで記載されていますが、どれも抽象的な捉え方のメリットが多いので自分が以前やっていた際に感じたメリットを言語化しようと思います。

シングルタスクになる

ポモドーロでは開始前に「何をやるのか」を明確にした上でタイマーを回します。

そのため「販売データの取得 API を作成しつつ、レビュー依頼が入ったらそのレビューの内容を一旦先に確認し、rollbar のエラー通知が来たら調査をしてすぐにスレッドにまどめる」のようなマルチタスクになることはありません。

上の例は文字にすると冗談みたいな話ですが、実際の仕事ではやってしまうような行動の流れではないでしょうか?

これだとスイッチングコストも大きく、生産性が下がってしまいます。

ポモドーロでは、やるべきと決めたタスクに集中し、それ以外の割り込みを無視するため目の前のタスクに集中することができます。

結果として割り込みを減らし、トータルの生産性を向上させることができます。

タスクの整理と優先順位設計がタスクのフローに入る

ポモドーロでは事前に何のタスクをやるか定めるルールがあるため、やるべきタスクを分解したり整理する手順があります。また、それらをどのタスクから取り掛かるべきなのかの優先順位付けも必要になります。

「今日やるべきことはなにか」を文字に落とさずに頭だけで管理するとどうしても認知コストが大きくなってしまうので、改めて事前にタスクを文字に落として整理する仕組みと、それらの優先順位付けを行う必要があることは、作業時の認知コストを減らして作業に集中するための前準備としてとても良い手順だと考えています。

カチッ、サ ➖ 効果で自然にタスクと休憩をルーティンに取りいれることができる

カチッ、サー効果とは、テープレコーダーの再生ボタンを押したときのカチッという音とその後に流れる砂嵐のサーという音のように「ある働きかけによって、深く考えることなしに、ある行動を起こしてしまう心理現象」のことです。

ポモドーロでも、キッチンタイマーを回すという行動によって「よし、25 分だけは集中してタスクやろう」と不思議と気分が乗りますし、またその後に休憩のサイクルも組み込まれていることで、疲れすぎる前に適切な休憩ができます。

このタスクと休憩が仕組み化されていることで、継続してプロダクティビティを保った状態でタスクをこなすことができます。

自身のプロダクティビティの指針になる

多くのポモドーロツールは行ったタスクのログを残す機能があります。

そのため事前のタスク見積もりとやった結果の見積もりを記録することで見積もりの精度を向上させることができます。

そして、自身のプロダクティビティの見積もりの精度が高まるということは、そのままプロダクティビティの指標を作れるということです。

例えば、ある程度の母数を持った収束した自身のポモドーロ実施データがある場合、ポモドーロ実行数を指標に下記のような評価を行うことができます。

  • 新しいプロダクティビティ手法の取り入れた場合
    • 以前の手法を行っていた場合は平均して毎日 12 ポモドーロができた
    • この手法に切り替えてからは 9 ポモドーロになってしまった

上記の結果、この手法での管理は自分に向いていないのかも?という予測や、データ観点での意思決定が可能になります。

以前やっていてうまくいかなかった部分や方針が確定していない部分の指針立て

改めて良い点を書き出してみて「やらない理由はないよな〜!」と思ったんですが、現在やっていないのには勿論理由があるので、以前やっていてうまくいかなかった部分の方針もついでに立てておこうと思います。

25 分でのサイズ感に当てはまらないタスクの扱いをどうするのか?

ポモドーロは性質上、25 分を 1 セットにしているため、そのサイズ感に当てはまらないタスクの扱いが難しくなります。

これに関しては、下記の方針にしようと思います。

  • 10 分程度で終わるタスク
    • ポモドーロの基本ルールに則り基本的には 25 分で完了するタスクとして、複数タスクを組み合わせる
    • タスク間のスイッチングコストを鑑みて、大きさを調整する
      • ここは実際に運用しながらスイッチングコストの大きさを見積もれるようにする
  • 35 分ぐらいかかるタスク
    • 大きめのタスクは見積もりも難しくなるので純粋に 2 セット分(50 分のタスク)として設定する
    • 10 分程度余った場合でも、ポモドーロの基本ルールに則って「過学習(小さな改良を加えたり、再確認のフローを追加するなど)でタスクの品質向上」を行う。

タイマーの押し忘れによる誤った記録を防ぐには?

以前使っていたツールでは、25 分が終わると自動的に休憩が始まり、また休憩が終わると自動的にタスクが始まる機能でした。

この場合だと、実際に作業しているにも関わらず休憩が始まっていたり、差し込みが入って全く別の仕事をしているにも関わらず違うタスクのポモドーロが走っていたりと実態に沿わない記録が生まれてしまう問題がありました。

こちらは SOFT SKILLS でも紹介されている kanbanflow についてるポモドーロタイマーを使うことで解決できそうです。

kanbanflow のタイマーは下記のように手動で動かす部分が多く、誤ったデータになる懸念が少ない作りになっています。

  • タスクが終わってもタイマーを止めない限り高頻度でベルが鳴り続ける(30s に一回ぐらい鳴る)
    • 止め忘れがない
  • タスクのタイマーを止めても、自動的に休憩が始まることはなく、休憩時間後に自動的にタスクのタイマーが始まることがない
    • 休憩時間に作業をしてしまうことや、別タスク時に該当タスクのタイマーが回っているなどのリスクも減らせる

MTG をどう扱うか

MTG をポモドーロのタスクとして設定するかは人それぞれかと思います。

私は MTG も仕事のひとつなのでポモドーロのタスクとして設定したいタイプです。

しかし、MTG は性質上「25 分+休憩 5 分」の枠組みに組み入れることは難しく、また事前に設定していた時間よりも長引くこともあってポモドーロに組み入れるのが難しいです。

そのため、下記の方針にしようと思っています。

  • MTG はポモドーロを回さずにマニュアルで時間をつける
  • 振り返りのデータを見るときは、ポモドーロ数ではなく時間で見る
    • そのため、ポモドーロ数 * 25 分のタスク分量を成果とする
  • MTG 時の途中休憩 5 分や 15 分は目をつむる

上記のルールがあることで、MTG を含めたトータルの時間を 25 分で割ることで一日のポモドーロ数を算出することもでき、MTG もポモドーロカウントに取り入れることができると考えています。

緊急のメンションをどう扱うか

ポモドーロを取り入れると基本的には slack 通知などの連絡があっても無視することになります。

ここはルールとして

  • 返信はしないが内容は確認する
  • 返信はしないし、内容の確認もしない

上記2パターンが想定できますが、一旦は後者を取り入れて見ようと思います。

長くても最大で 25 分スルーするだけなので、緊急時でもある程度問題ないと考えています。

ここはやってみて不都合が多い場合は、

  • 事前にポモドーロを使っているので緊急のレスポンスができない旨をアナウンスしておく
  • 通知自体は目につくので短時間で同チャンネルにメンションが続いた場合は確認するようにする

上記などで調整ができると考えています。


以上、色々書いてみましたが、改めてポモドーロを整理するととても良さそうなツールなので、ぜひ明日から(この記事を書くときにも実は使っていました)仕事でも取り入れて見ようと思います。

みなさんもぜひ使ってみたら感想とか教えてくださいね 🙌