僕のポモドーロアルゴリズム

明確に言語化するのが改善の第一歩ということで、僕がどうやっているかを言語化してみた。

ちなみに僕の記法では□はタスクの頭に書くチェックボックス、◯は25分を表すポモドーロ。装備としては「iPhoneデフォルトのタイマーで25分カウントダウン」「ふせん(38mm×50mm)」「消音ヘッドホン」「集中力が増しそうな曲22分+リラックス系4分のプレイリスト」という感じ。

準備:
 順不同に実行{
  □25分のタイマーを開始する
  □TODOリストから1つ選び、25分で達成できそうなゴールを付箋に書く、このタスクが1ポモドーロと見積もった印に◯を書く
  □(オプショナル)ヘッドホンを付け、25分のプレイリストを再生する
 }

// 例外ハンドラ登録
割り込みがあったら goto 割り込み
タイマーが鳴ったら goto タイマー
予定していたゴールが達成されたら goto ゴール達成

タスク実行:
 □集中して作業する

割り込み:
 if(それはこのポモドーロが終わってから処理してもよいか?){
  □付箋に書く
  goto タスク実行  // 作業に戻る
 }else{
  □割り込みを処理する
  if(割り込み作業が短くてタスクにすんなり戻れそう?){
   goto タスク実行  // 作業に戻る
  }else{
   □ タイムボックスが完成しなかったという意味で◯をバツじるしで消す
   □ タイマー止める
   goto 準備  // 次のタスク
  }
 }

ゴール達成:
 おめでとう!タスクを予定より早く完了させたよ!
 □タスクを完了した印に、打ち消し線で消す
 if(残り時間が10分未満){
  □作業の過程で得た知識をメモするとか、フセンを片付けるとか、
   作業が済んだ旨のメールを送るとか、git pushするとか、タスクに関連する細かい作業をする。
 }else{
  □ タイムボックスが完成しなかったという意味で◯をバツじるしで消す
  □ タイマー止める
  goto 準備  // 次のタスク
 }

タイマーが鳴った:
 おめでとう!25分間集中して作業できたよ!
 □25分間集中した印に、◯に斜め線を入れる
 if(タスクもちょうど終わった){
  おめでとう!見積もりもバッチリだ!
  goto 準備  // 次のタスク
 }else if(切りのいいところまで10分未満で終わると思う){
  □タイマーを開始する(実際のところどれくらいかかったか計測するため)
  // 例外ハンドラ登録
  タイマーが鳴ったら goto タイマー2回目
  □キリのいいところまでやる
  goto 準備  // 次のタスク
 }else{
  1ポモドーロやってみたことで知識が得られた。もっとよい見積ができるようになったはず。
  goto 再見積
 }

タイマー2回目:
 おめでとう!25分間集中して作業できたよ!
 □25分間集中した印に、◯に斜め線を入れる
 残念ながら見積もりの精度はあまりよくないようだ。ドツボにはまってる?
 □お茶を入れに行く、トイレにいく、散歩するなどして仕切りなおし
 goto 再見積

再見積:
 □残りのタスクに掛かる時間を見積もりなおす。
  そのタスクが予想より時間コストが高いと分かった。
  そのタスクを今やるべきか?その方法でやるのが正しいか?を含めて一歩引いた検討が必要。
 goto 準備

見積もりは更新していくもの、という考え方はこちらから学んだ