productivity GitHub

継続的な学習を行うために実践していること

productivity GitHub

こんにちは。EC事業部カラーミーショップグループでWebアプリケーションエンジニアをしているぬまっちです。突然なのですが、みなさん毎日GitHubにコミットしてますか??僕はGitHubにコミットする習慣を1年以上続けています。もともと何かを継続して行うことはあまり得意ではなかったのですが、そんな僕でも継続できた方法をお伝えします。

自分の使っている時間を常にロギングする

自分がある行動に対してどれくらいの時間を使っていたのかを知るために、Toggl使って、自分の行動を24時間ロギングしています。常に計測しているので、行動に対してどれくらい時間がかかったかを普段から意識するようになリます。Togglを使い始めてから、漠然とぼーっとしてしまうような時間が減り、集中するときはときは集中し、休むときは休むといったメリハリが効くようになりました。

ロギングした結果は行動パターンごとの時間を知りたいので、タグを行動パターンごとに変えて使ってます。以前は10個ほど使ってたのですが細かく分けても活用しなかったので、現在では以下のものだけになりました。

  • study (勉強の時間計測)
  • sleep (睡眠の時間計測)
  • work (仕事の時間計測)
  • タグなし (その他の時間計測)

次の画像は、実際にロギングした結果です。

実際に使ってるToggl

タスク管理ツールにはすべての行動を登録する

タスクを管理するために、Trelloを使って自分専用のかんばんを作ってます。かんばんには、やりたいこと(e.g. ○○のコードを書く, xxの技術書の3章を読む)はもちろん、日常的にやること(e.g. 歯を磨く, 土曜日に拭き掃除をする)も基本的にすべてタスクとして登録します。こうすることで、やろうと思っているタスクを頭の中から追い出すことができ、今やるタスクだけに集中できる効果があると思っています。やりたいことと日常的にやることを、タスクとして同一に扱うのは違和感があるかもしれないのですが、どちらもタスクを完了するために時間が必要という点では同じです。

Trelloでは、リストとラベルを以下のように使っています。

Trelloのリスト

主にタスクの進捗管理の役割で分けてます。次のものがあります。

  • icebox
  • backlog
  • todo
  • doing
  • done
  • repeater

icebox

いつやるかはわからないけれど、やりたいことを置いておくためのリスト。やりたいことを思いついた時にひとまずここにタスクを作ります。

backlog

今週やるタスクを置いておくリスト。後述する週間レビュー時に、今週やると決めたタスクはすべてここに置きます。

todo

今日やるタスクを置いておくリスト。日常的にやることは後述のrepeaterリストから自動的にタスクが作成されます。それ以外のタスクは、毎朝その日の予定を考えながらbacklogから移動します。基本的に一番上にあることが今やるべきことになるよう並び替えます。あとはこのリストのタスクを1日で空にすることを目標にタスクをこなしていきます。

doing

仕掛中のタスクを置いておくリスト。todoから今やるタスクを移動させます。

done

完了したタスクを置いておくリスト。作業が完了したタスクをひたすらためていきます。

repeater

Card Repeater + Trelloというタスクを繰り返し作成してくれる機能で、複製するタスクの元を置いておくリスト。日常的な行動は繰り返すことが多いので、自動的に作業順でtodoのリストに並ぶようにしています。

Trelloのラベル

タスクの見積り時間を可視化するために使ってます。次のものがあります。

  • 30minutes
  • 1hour
  • 2hours
  • 3hours

これらのことをしている、かんばんが以下のものになります。

実際に使ってるTrello

週間レビュー

今週やったことのふりかえりと来週やることを決めるため、毎週日曜日に週間レビューをしています。その際注意していることを紹介します。

基本的に1つのタスクは1時間以内で終わるように見積る

1つタスクにかかる時間が長すぎると、なかなかやる気がしません。たとえば、「xxの技術書を読む」というタスクだと、僕のタスク管理方法にとっては粒度が大きすぎると思ってます。技術書はだいたいページ数が多く、コードの写経や読書メモを書きながらだと平日の仕事終わりに完了するのは難しいことがほとんどだからです。そのため、「xxの技術書を読む_ch4-1」のように章や節などの単位で分けて、平日の夜でもタスク完了できる粒度でタスクを作リます。単純に1つのタスクが終わらせやすいかどうかの違いと思えてしまうのですが、短い期間でタスクを完了できるかどうかはやる気に大きく関わる部分だと考えています。

それに関連して、タスクの見積り時間のラベルは最大を3時間にしています。ただし、3時間でも平日だとやり切るのは難しいです。時間の捻出が難しいのはもちろん、所要時間が長い = やるべきことが明確にできていない可能性があるのでタスクの所要時間が見積り時間より伸びてしまう可能性が高いためです。この点から基本的に1時間以内のタスクがメインになるようにしてます。

タスクの粒度に気をつけながらbacklogにタスクを今週やりたいことが追加できた後は、自作したTrelloのAPIクライアントで見積りした所要時間の合計を出すようにしてます。その結果と、先週の時間配分(Togglのダッシュボードで確認)、今週の予定などを考えながら、最終的に今週やることを決めます。

タスク量に対する自分の感じ方を考慮する

性格によると思うのですが、僕は予定したタスクを完了できないと落ち着かなかったり、自己嫌悪してしまう傾向があります。この対策として、1週間の計画で作るタスク量は、自分がやり切れる量の80%にするようにしています。こうすることでタスクを全て終わらせやすくなり、先述したよくない傾向に陥りにくくできます。また、タスクに追われている状態よりも余裕がある方が「タスクが全部終わったから、おまけでこれもやっちゃおう!」と自分の気分を乗せやすいようなので、モチベーションを上げる意味でもうまく機能しているのかなと思っています。

もちろん、人によっては自分が1週間ではできないくらいタスクを積むことで、120%の力を発揮できる人もいると思います。そのため、自分がどのくらいのタスク量にすると、結果的に一番パフォーマンスが出せそうかを考えて、調整していくのがいいかなと思っています。

まとめ

ツールを使ったタスク管理という方法を5年ほど前に知り、そこから「あーでもないこーでもない」と言いながら変更を加えてきた僕なりのタスク管理の現状を共有しました。

いくつかのテクニックを紹介しましたが、何より大切なのは実際に行動してみることだと思います。たとえどれだけ素晴らしいタスク管理方法があったとしても、行動しないければ本当に自分にとってその方法がいいのかはわかりません。ひとまずやってみて、自分に合うなら取り入れる、そうじゃなければやめる。そうやって柔軟に取り入れながら、自分に最適な方法が見つけて行くのがいいのではないかと考えています。

この記事が、「やりたいことはあるけれど、続かない…」と悩んでる人の役に立てばうれしいです。最後まで読んでいただきありがとうございました。