駄文型

プログラミングとか英語とかの話題を中心にした至極ちゃらんぽらんな日記です。

日報を支える技術

日報について

日報書いてますか。僕の所属するチームは拠点が東京と福岡に分かれている上、各自やっていることが独立していていてるので、お互いが現在やっていることを把握するために必ず日報を書くことをルールとしている。1日の業務の中で困っていることや躓いたところを共有することで解決策が見つかることもある。

日報のデメリット

とはいえ良くない面もあって、「コストがかかる」というのが日報の一番のデメリットだと言える。一日の作業を振り返って、どんなことをやったか、どんな問題が出たか、それにどう対応したか、明日以降はどうするのか、などを考えるのは結構大変だと思う。それをチームメンバー全員がやるとなると合計でかなりの工数になると思う。かと言ってあまりに簡潔に書きすぎると作業の進捗状況をマネージャーが把握できないので、ミーティングの時間が長くなり、結局工数が嵩む。非同期に情報をやりとりできる日報のメリットが小さくなってしまう。

Slack分報との比較

昨今では(1年くらい前から?)Slack分報というものが流行っている。ひとりひとりがチャンネルを持っているので気軽に書き込めるという特徴がある。作業中にハマったことを書き込むことで、ほぼリアルタイムにアドバイスをもらえることもある。困ったり悩んではいるけど直接聞くほどではない問題をスムーズに解決できる。これは日報にはないメリットで、日報で同じような効果を得るのは1日に1回になってしまう。

一方でデメリットとしては、Slackのチャンネルが増えすぎてしまうとか情報量が多すぎて追えなくなってしまうとか、などがあげられる。メンバーの生産性に影響してしまうので、大きすぎるチームにはあまり向いていないかもしれない。

本題

僕は「今日のノート」というのを毎日書いていて、それをほぼそのまま日報にしている。ノートには今やっている作業や問題点をどんどん書いていく。そうすることで1日を振り返ってやった作業を思い出す時間が必要なくなるので、日報を書くコストが少し減る(気がする)。時系列に書いていくので、どんな1日だったか読み手が想像しやすいないようになっていると思う。やった作業を逐一書き込んでいくので、あとから振り返りやすい。一度やった作業を忘れてしまった場合、ググるより先にまず過去のノートを検索することができ、効率がいい。ノートはMarkdownで書いてgitで管理している。楽に運用できるようにちょっとだけ工夫しているのでまとめておく。

tnコマンド

ただのシェルスクリプト。所定のフォルダに今日のMarkdownファイルを作成して開いてくれる。tnと打てばすぐにノートを書き始められるので便利。はじめるための障害を小さくすることで習慣が続くようにしている。フォルダは月ごとに分けているので、フォルダ作成も自動でやってくれるようにしている。

Atom

atom-editor

テキストエディタですね。使い慣れたものを使うのが一番だと思うけど、Atomスニペットが使えるのでありがたい。また、GoogleIMEの設定を変更して日本語入力中でも#*が半角になるようにしておくとMarkdownを快適に書ける。

スニペット 概要
table テーブル
l リンク
img 画像
b 強調
i イタリック
code コード
t チェックボックス
legal 著作権表示
lorem ダミーテキスト

http://qiita.com/Miggy/items/8e01792e0a37dcd5e72a

Markdown Here

markdown-here.com

ノートを日報としてメールで送ってチームに共有するのだが、僕は基本的に小見出しと箇条書きの他にコードやコマンドを貼り付けたりリンクを貼ったりする。その場合、生のMarkdownよりHTMLに変換された方が読みやすい。Markdown HereはChromeFirefoxSafariなどで使えるブラウザ拡張機能で、Markdownで書いた文書を一瞬で変換してくれる。ctrl + option + mで変換できる。

git

別にバージョン管理をする必要はないのだが、リモートリポジトリに置いておけば他の環境にコピーしやすい。GitHubでもいいんだけど、無料でプライベートリポジトリを使いたかったのでbitbucketにプッシュしている。

まとめ

どんな情報共有の手法を採用するかはチームの事情によると思うので、これが全てにおいて最適というやり方はないと思う。課題もたくさんある。もっと自動化して出来る限り日報を書くことにかかるコストを下げ、自分が取り組むべき問題にフォーカスできるようにしたいという思いがある。