この記事は「さくらインターネット Advent Calendar 2015」の20日目の記事です。
Slackは非常に気の利いたチャットツールで、とても便利に使っています。
問題
しかし、このツールにも問題があります。
ジョインしているチャンネルが多くなると未読のメッセージがつぎつぎに溜まり、未読を消化したい欲と仕事に集中したい欲を常に戦わせる状態となります。
(そして、だいたい未読を消化したい欲が勝ちます)
解決
仕事の効率を高めるはずのツールで仕事の集中力を欠いてしまっては仕方がないので、この問題を2つのツールを使って解消します。
Slack Silencer
まず、Slack Silencerというツールを使います。
このツールは指定したチャンネルをミュートにしてくれます。ミュート状態のチャンネルはリスト上に薄く表示され、メッセージの未読を伝える白文字の表示になりません。また、メンションされた場合にはバッジが付きますが、通知は飛ばなくなります。
ジョインしておきたいけどリアルタイムでウォッチする必要がないチャンネルをミュートすることで、未読を消化したい欲に振り回されることがぐっと少なくなります。
使い方
1. SlackのAPI tokenを作成
Slack Web API | Slackより作成可能です。
2. tokenを環境変数に設定
export SLACK_API_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
3. Slack Silencerをgit clone
git clone git@github.com:dopin/slack-silencer.git
4. コマンドラインよりプログラムを実行
# foo, barのチャンネルがミュートされる
/path/to/slack-silencer/mute.rb foo bar
ちなみに自分は、就業時間の09:30-18:30の間だけミュートするため、以下のようにcrontabに設定しています。
# 9:30からミュート 30 9 * * * /path/to/slack-silencer/mute.rb foo bar # 18:30にミュート解除 30 18 * * * /path/to/slack-silencer/mute.rb
Slack Reporter
Slack Silencerを使うことで未読により集中力を削がれることはなくなりました。
しかし、ミュートにしている間に投稿されたメッセージは既読扱いにされてしまうため、就業後にゆっくりメッセージを読もうとすると探しだすのが大変という新たな問題が発生します。
そこで、この問題を解決するため、Slack Reporterというツールを作成しました。 このツールは指定の期間に投稿されたメッセージをレポートにまとめてくれるツールです。
レポートのサンプル
使い方
1. SlackのAPI tokenを作成 (※ Slack Silencerで実施済みの場合スキップ)
Slack Web API | Slackより作成可能です。
2. tokenを環境変数に設定 (※ Slack Silencerで実施済みの場合スキップ)
export SLACK_API_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
3. Slackのユーザ名を環境変数に設定(オプション)
設定するとSlackのダイレクトメッセージでレポートのパスをお知らせします。
export SLACK_USER=xxxxxxxxxx
4. Slack Reporterをgit clone
git clone git@github.com:hogesuke/slack-reporter.git
5. コマンドラインよりプログラムを実行
# 9:30から18:30のメッセージを対象にする場合 /path/to/slack-reporter/reporter.rb 0930 1830 # 現時刻から1時間前までのメッセージを対象にする場合 /path/to/slack-reporter/reporter.rb 60
これもcrontabに設定し、自動実行させると便利でしょう。
# 18:30にレポート作成 30 18 * * * /path/to/slack-reporter/reporter.rb 0930 1830
レポートファイルは/path/to/slack-reporter/contents/
ディレクトリにhtmlファイルとして生成されます。
一件落着(?)
Slack Reporterについては、このAdventCalendarを書いている直前までコーディングしていたため、まだ運用できていません…