海外でエンジニアとして働いて、ここ十年ほど毎日続けている、ある一つのこと
- 2016.08.13 Saturday
- life
2003 年よりニュージーランドでエンジニアとして働き始めました。二年ほどスイスに引っ越していましたが、昨年よりまたニュージーランドに戻ってきています。
かれこれ 13 年ほど日本国外でソフトウェアエンジニアとして働いてきたことになりますが、2006 年半ばから毎日ずっと続けていることが一つだけあります。
それは
- 簡単な作業日誌をつける
ことです。
自身の英語力の弱さをカバーするため、当時のチームリードに日報メールを送り始めたのがきっかけです。その後、メールを送るのは止めましたが、手元に日報として残して置くのは習慣になりました。
日報という形で始めたので、当初は日の終わり頃に書き出していましたが、それよりもその日のやることをリストアップした方が自分に合っていることに気付いて、日の始まりに書き出すというスタイルに落ち着きました。
形式
テキストファイルで箇条書きが記述できれば、形式はなんでも良いのですが、最近は Markdown のようなフォーマットで記述しています。
自分用のメモなので、基本はごく簡単な箇条書きです。例えば、以下のように……
# 09.05.2016 (Mon) X-App ver 5.2 - TICKET-1234 implement GA for a feature A X-App automation - TICKET-1235 search feature - TICKET-1236 sucess path Generic - coding guidelines
日付を見出しにして、その日にやることを書き出します。
ざっくりとプロジェクト単位で分類して、関連する項目を箇条書きします。開発の仕事に関係しない項目は Generic
というカテゴリに記述しています。多くのミーティングはここに分類。
割り当てられたチケットへの対応についてはチケット番号を記述。以前はチケット番号だけでしたが、これだと他人である未来の自分には分かってもらえない可能性が高いので、最近はチケット番号と共にその内容も簡潔に記述するようにしています。
この記事を書くにあたって、十年前のログも見てみましたが、始めたばかりの頃は、上司への報告メールの下書きにもなっていたので、もう少し丁寧に書いていたようです。
基本はこれだけなんですが、普通にメモとしても利用したりするので、コードスニペットが貼り付けてあったり、作業手順の備忘録やミーティングの議事録などを追記したりすることもままあります。
欠点、のようなもの
明らかな欠点は日報を書く時間が取られるということ。
ちょっと覚えていませんが、最初の頃は今よりも丁寧に記述していたので、15 分以上かかっていたかもしれません。
前述の通り、ごく短い箇条書きに落ち着き、今では 5 〜 10 分程度の作業になっています。また、すでに毎朝のルーチンとして、やるべきことのひとつになっているので、個人的には「時間が取られる」とはあまり感じていません。
ログ自体はただのテキストファイルなので、十年分でも高々 500KB を少し上回る程度。
とは言え、プレーンテキストとしてはそれなりのサイズなので、単一のファイルでは、エディタによってはやや重荷になる場合があります。
ファイルが破損した場合も怖いので、大体二、三年に一つのファイルという形にしています (ここ最近はたまたまそのぐらいのスパンで転職しているので、一社一ファイルという感じ)。
ちなみにログファイルは常時開いた状態にしています。メインのテキストエディタに切り替えれば、そのファイルをすぐに確認できるようになっています。
利点、と思われるところ
やっていることは結果的に GTD (Getting Things Done) に近くなるんでしょうか。
- やることが明確になる
- やったことを確認することによる、進捗の見える化
という利点があるような気がします。
これを続けていると、自身の開発速度、タスクの割り込み頻度などがある程度把握できるようになります。その結果、タスクに対して作業見込み時間の見積もり精度が向上します。
あるタスクについて、どのぐらい時間をかけたのかというのは、git や svn などのバージョン管理システムのログを見たり、チケットの更新時刻を確認したりすることでも、判断することができます。
しかしながら、実際にはそのタスクに対して割り込みがあったのかもしれないし、前準備が必要だったのかもしれません。その点、自分でログを残しておくと、そういう外的要因を確認できる割合が高まります。
で、本当のところ効果はあるのか
正直なところ、分かりません。そうしなかった時との比較ができないので。
一日二日では違いを感じることは難しいとは思いますが、十年以上続けてきて (こうしてネタにもできましたし) 私には合っているルーチンだと思っています。
ソフトウェア開発でスクラムなどを適用していると、毎日スタンドアップミーティングをやったりしますが、その前の事前準備として役に立ったりします。
私が始めた十年前当時は、まだアジャルな開発手法を取り入れていませんでしたが、最近では採用しているところも多くなっていると思います。そういう点では相性は良いと思います。
スポンサーリンク