@kyanny's blog

My thoughts, my life. Views/opinions are my own.

エンジニア立ち居振舞い: 作業の進捗をチャットに逐一報告する

お題「エンジニア立ち居振舞い」

同じく GitHub の通知はだいたい目を通してる。流量が多くてブラウザで開いてられないので Gmail で読み流して気になるやつだけ見に行くようにしてる。 GitHub の通知を見る専用のアプリを使っていないのは、 GitHub 以外のサービスからの通知とか、ごくわずかだけど外部の関係者とのメールとかもあってメールを一切見ないわけにはいかないので、だったらいっそ Gmail 一本にしたほうが楽だし見落としが無くて安心だと思ったからです(なので inbox zero を気合で実践してる)

で、気をつけてることで、まだお題で書かれて無さそうだったのがこれです↓

作業の進捗をチャットに逐一報告する

production 環境のデータを修正するとかそういう運用系のタスクというのがけっこうあって、たいてい rake タスク + Jenkins job みたいなのを用意しているんだけど、なかなかボタン一発で済むほど自動化しきれなくて、ボタン押す前後の確認作業とかがあったり、想定外のパターンがでてきてうまく処理できなかったりする。

想定どおりの手順でうまく進んでいるときも、想定外のことがおこって困っているときも、チームのメンバーに逐一状況を報告しておきたい。自分が何をやってるのか、データ修正するならどのテーブルのどのフィールドをどう変更するのか、そういうことを共有していないと、たまたま同じタイミングで同じデータを見たり処理したりしてるとお互いに困るし、後日そのデータを見た人が想定外の状態になっててびっくりしたりする(バグが原因かと思って調査したりして大事になると手間暇がもったいないし、一言言っといてよ、となる)

なのでそういう作業をするときは、「作業開始します」とか「検証環境でデータ修正するこの Jenkins job を実行します」とか「実行終わり。結果を確認します」とか、開発者みんながいるチャットのチャンネルに逐一書くようにしています。あと、これは最近試しはじめたことだけど、作業手順をまず GitHub issue に箇条書きタスクリストの形で書いて、各手順をつぶやきながら実行・終わったら √ を入れつつコメントを編集して実行時のログとか Job の Build URL とかを書き込んで、作業手順書が最終的には作業ログとして残る、みたいにしています。

分報とはちょっと違っていて、今やってる仕事の内容とか疑問点とかをチャットに書くのではなく、あくまで手順が定まっていて終わりがある一連の作業の各ステップを報告・周知する、という趣旨です(分報的なことを書くのもそれはそれでよくやります)

なお、この「逐一報告」スタイルは私のオリジナルではなく、記憶がちょっとおぼろげだけどたぶん kuroda (@lamanotrama) | Twitter さんがペパボ時代からメンテナンス作業などをする際にこういうスタイルで進めていて、開発者は実作業をしないので見てるだけなんだけど、見てれば進捗がわかるのがすごく安心感があって良いプラクティスだなと思ったので、だんだん真似するようになりました。

kyanny@quipper.com

Quipper に入社したとき、ひとつだけ残念だったことがある。メールアドレスのローカルパートを選べなかったのだ。当時はファーストネームを使う決まりで、俺のメールアドレスは kensuke@quipper.com になった。Twitter でも GitHub でもブログの独自ドメインでも使っている kyanny を使えたらよかったのにな、と思ったものだった。まぁ、些細なことなんですが。

つい先ほど、メールアドレスが ID と違う問題に決着がつけられた。メールアドレスのルールは俺の入社後ほどなくしてフルネームを使うように変更され、ずっとそれで運用されてきたが、ついに同姓同名のひとがあらわれた。その場合の回避ルールも定められていたのだが、これをきっかけに議論が再燃?した。「メールを書く機会は少ないけど、実は Google カレンダーの予定に招待するとき探しづらくて不便だった」という声が多くあがったのだ。わかりやすさのために GitHub と Slack で同じユーザーネームを利用することが推奨されていて、ならば予定に招待するときも見慣れたユーザーネームで探したい、ということだ。

いくつか意見が出たものの、割とあっさり「ユーザーネーム@quipper.com というエイリアスを発行しよう」という方針に決まり、バックオフィス部門のひとたちが手際よく進めてくれて、無事に kyanny@quipper.com というメールアドレスも使えるようになった、という次第。

Quipper のいいところは、こういう「些細だけど、あるとちょっと嬉しい、けどやるのはちょっと面倒くさい」ことを、面倒くさがらずどんどんやっていくところだと思う。どうでもいい、といえばその通りなんですよ。予定に招待するときの手間も、累積すればそれなりにはなるだろうけど、そこを改善しても生産性に有意な差が出るほどではない。エイリアス全員分作るのは、一回やれば済むとはいえ、面倒くさい。「でも、やるんだよ」

Quipper 全体ではもう数百名くらい社員がいて、それなりの規模の組織になっているし、リクルートグループの子会社にもなったりして、大企業の論理に流されたりし始めてもおかしくない頃合いだけど、ルールとか慣習とかを「なぁなぁ」で受け入れず、一つ一つ吟味していくのは、大事なことだと思うし、それができているカルチャーは良いな、と思う。