猫でもわかるWebプログラミング

試行錯誤しながらエンジニア(プログラマー)として働く猫のブログ。技術的な話や、働き方の話、読書録とか、試行錯誤している日常の話。

『エンジニアのための時間管理術』第3章、定型的タスクのルーチン化

『エンジニアのための時間管理術』の第3章は「ルーチン」について書かれています。

エンジニアのための時間管理術

エンジニアのための時間管理術

ルーチンとは何か

この本では、「ルーチンとは、1度だけ考え、何度も実行するための手段である」とあります。

ルーチンの例: 日曜日に給油する

この本の著者は、ルーチンの例として、「日曜日に給油する習慣」を上げています。

筆者は月曜日の朝に遅刻することが多く、ガソリンも少なくなることが多いので、日曜日に給油することにしました。

すると、月曜日に慌てることがなくなっただけではなく、「そろそろガソリンを入れたほうが良いだろうか」と考える必要もなくなりました。

そのうち、「なぜ月曜日に給油するのか」は記憶からなくなっていき、何も考えずに月曜日に給油することになります。

ここまで来ると、給油に脳を使う必要がなくなり、他のタスクに集中できます。

ルーチンの例2: 定期デプロイ

僕のチームが開発しているWebアプリケーションは、毎週火曜日にデプロイすることになっています。

毎週火曜日になると、

  • developブランチをmasterブランチにマージし
  • それまでにdevelopブランチにマージされたプルリクエストを確認し
  • 以下をまとめて投入手順書を作成します
    • どのような変更がデプロイされるのか
    • どのような手順でデプロイするのか
    • デプロイ後どんな動作確認をするのか
    • 不具合が発生した場合どうするのか
  • デプロイ用のパッケージを作成し
  • 開発環境にデプロイして動作確認して
  • 本番環境にデプロイします

この手順は非常に複雑で、しかも毎週行う必要があります。そこで、最初の1度だけ考え、この作業をある程度自動化する bot を作成しました。あなたはエンジニアなので自動化は得意なはずです。

  • GitHubのAPIを叩いてdevelopをmasterに自動でマージします
  • GitHubのAPIを利用し、それまでdevelopにマージされた差分について収集します
  • あとは bot の示す手順を何も考えずに実行していくと投入手順書や、開発環境へのデプロイと動作確認などが終わります

今まで自分で考えたことをBotに任せることで、自分は頭を空っぽにしてこの作業ができるようになりました。

これにより、作業が短縮できるだけでなく、「次は何をすれば良いんだっけ」といったことを考えなくて良くなるので、作業の合間に処理できます。

このように「定形作業は頭を空っぽにしてできるようにしておく」ことは非常に恩恵があります。

オーガナイザを持ち歩く

オーガナイザとは、重要なもののことです。財布とか携帯とか。

この本では「財布持っていったほうがいいかな?」と迷ったときはとりあえず持っていけ、と書いてあります。そもそもそんなことを考えるのが無駄なのです。

上司との定期面談

僕は上司と定期面談をすることは重要だと考えています。とくに「今のチームの問題点はなにか」について話し合うのが有益だと感じています。チームの問題点を上司に認識させて、解決してもらうことは重要だからです。

しかし問題点があります。上司の予定を抑えるのが大変なのです。30分の予定を取るのに10分くらいカレンダーとにらめっこすることになります。

解決方法は簡単で、定期予定として1ヶ月に1回予定を入れておきましょう。僕はGoogleカレンダーを使っているのですが、Googleカレンダーであればこれが可能です。

毎日しなければならないことは1日の早い時間にやる

自分がアサインされたコードレビュー、勤怠の作業時間の入力など、毎日しなければならないことは朝こなすようにします。

帰ろうとした直前に「あれやっていない!」となると、気分が乗らないからです。

ルーチンにすると良さそうなもの

  • つい忘れてしまうもの
  • 最新情報の把握
  • 新しい能力の育成

などなど、

まとめ

ルーチンを増やせば増やすほど、悩んだり考えたりすることが減り、脳のコンテキストスイッチのコストも減り、ルーチン以外の作業の効率化につながるでしょう!