コンユウメモ

技術メモを忘れるのでBlogでメモ

分報をタイムライン表示して、もれなくチームの流れを把握しよう

Slackに書き込んだ分報をタイムライン表示しよう

f:id:kon_yu:20160325235052p:plain

対象のhubotのscriptだけさくっと知りたい人はこちらを参照すると良い slackで分報をタイムライン表示して一覧性を手に入れろ - Qiita

分報とは

c16e.com

課題解決へのアクションが遅れてしまうという日報の弱点を克服するために、僕のチームでは「分報」という独自の取り組みをしている。分報ではSlackなどの社内チャットツールを使い、「今やっていること」や「困っていること」をつぶやく。課題をリアルタイムに共有できるのが特徴だ。日報が社内mixi日記だとすると、分報は社内Twitterにあたる。

端的に言うと、slsckに各エンジニアの部屋を作り、作業ログを書き込んでいくというものだ。 また各人の部屋を覗いて、困っていることに素早く気づいて開発の効率化を図ることができる。

いままでの自社での分報的な取り組み「dev/null」で共用作業ログを書く

自社でもすでに思考を吐き出すような感じで「dev/null」と言う共用の作業ログを書く部屋を作っていた。

Twitterでツイートしてもよいが、社内のプロテクトしておくべきことを迂闊に野に放つリスクよりは、クローズドな領域を設けたほうが、これは外に出して大丈夫かな?と考える必要がなく楽で良い。

2,3人なら良いがそれ以上に人数が増えた際に、個々のエンジニアの部屋を見に行くのが億劫ではないと思い、 分報よりも、こちらの方が一覧性があってすぐれいるのでは考えていた

実際に聞いてみた

このような回答を得た。なるほど、よく見るべき人に注力しながら確認すると良いと

それでも全員分のデータが見たいな、オレにはショートカットを駆使してもslackの部屋移動が面倒だ タイムライン的に見られたらチーム全体の雰囲気の一体感が出るのではなかろうかか?

やっぱ、共用の部屋を作った方がいいんじゃないかな?

リモートワークを推進されている会社ソニックガーデンの社長である倉貫さんに聞いてみた

先日ソニックガーデンバーというイベントで、ソニックガーデンの社員さんとお話するチャンス得た sonicgardenbar1.peatix.com

ソニックガーデンではRemottyと言う自社ツールを使ってチャットコミュニケーションをとっている。

また分報と言う概念の前から、Remottyでは各エンジニアの部屋を作って作業ログを書く言う方式を実践されていた。

※「dev/null」の共用部屋を作ったのも過去にRemottyを使ってみて、各人の部屋に書かれると一覧性がないので作ったという経緯もある

リモートワークを推進されている会社ソニックガーデンの社長である倉貫さんなら、

分報はいいと思うんだけど、一覧性がないのが不便だと思う、共用の部屋のほうがいいと思うんだがどうお考えになりますか?

という問題の答えが出せるのではないかと聞いてみた。

頂いた答え(意訳)

  • 共用の部屋だと、自己所有感が無いので気軽に書き込みにくい
  • 共用の部屋で複数のトピックが走っている場合、ログを追いにくい
  • 現在のRemottyにはタイムライン機能が画面右にあるので、一覧性がないと言う問題を克服している

そうRmottyで実は同じようなことが出来るのだ!

タイムラインの特定の書き込みをクリックすると、その書き込みのある部屋に行くことが出来て、前後の書き込みを様子を見たり、アドバイスをしたりできる

Remotty自分の部屋 画面右に自分の部屋の書き込みが表示される f:id:kon_yu:20160325234705p:plain

Remotty グループの部屋 画面右に複数人のグループの書き込みも表示される f:id:kon_yu:20160325234724p:plain

じゃあRemottyを使えばいいじゃないというところだが、ところがどっこい我々はSlackにどっぷりハマっているのだ

それでもSlackを使いたい

以下のことをSlackで通知を受け取っているので、今更Slackから抜け出せない。分報だけ別ツールにはしたくないのだ。

  • デプロイした結果
  • CIを実行した結果
  • エラー発生の通知
  • 異常検知のログ
  • チケットのアサインや通知

というわけで分報やり方を踏襲しつつ、各エンジニアの部屋での書き込みを一纏めに表示するタイムラインの部屋を作るツールが欲しい

HubotでSlackに分報をタイムライン表示する

各エンジニアの部屋での書き込みを一纏めに表示するタイムラインの部屋を作るツールがほしい が無かったので自分で作った

hubotで各エンジニアの部屋をチェックし、発言があればタイムライン用の部屋にリンクを書き込む スクリプト

hubotで各エンジニアの部屋をチェックし、発言があればタイムライン用の部屋にリンクを書き込むことができるようにする

このスクリプトでは以下のことを実施する

  • times_ユーザ名 という部屋で発言をチェックする
  • 発言のオブジェクトから、その発言のパーマネントリンクを作成
  • timelineの部屋に発言のパーマネントリンクを投稿する

hubotのscriptディレクトリにこのようなファイルを作成する script/hunhou2timeline.coffee

# 自分のslackのURL
slack_url = "https://your_tame_name.slack.com"

module.exports = (robot) ->
  # どんな文字列があっても拾う
  robot.hear /.+/, (msg) ->
    room = msg.envelope.room
    # idにドットがあるとURLを展開してくれないので取り除く
    id = msg.message.id.replace(".","")

    # ユーザ名_channelの部屋だけウォッチ対象
    if room.match(/^times_.+/)
      # 展開可能なURLを作成し、タイムライン表示用の部屋に投稿する
      # roomの指定で、 投稿するchannelを指定
   # 第二引数でslackのパーマネントURLを構築
      robot.send {room: "#timeline"}, "#{slack_url}/archives/#{room}/p#{id}"

※ チャンネルに追加しないと、hubotが部屋をウォッチしない(入力内容に対してリアクションをしない)のでtimes_ユーザ名のチャンネルにhubotを追加する

  • 個別のチャンネルにhubotが追加された状態 f:id:kon_yu:20160325234749p:plain

自分のチャンネルに投稿すると f:id:kon_yu:20160325235049p:plain

タイムライン用のチャンネルに投稿されれる f:id:kon_yu:20160325235052p:plain

あわせて読みたい

Team Geek ―Googleのギークたちはいかにしてチームを作るのか

Team Geek ―Googleのギークたちはいかにしてチームを作るのか

小さなチーム、大きな仕事〔完全版〕: 37シグナルズ成功の法則

小さなチーム、大きな仕事〔完全版〕: 37シグナルズ成功の法則

  • 作者: ジェイソン・フリード,デイヴィッド・ハイネマイヤー・ハンソン,黒沢 健二,松永 肇一,美谷 広海,祐佳 ヤング
  • 出版社/メーカー: 早川書房
  • 発売日: 2012/01/11
  • メディア: 単行本
  • 購入: 21人 クリック: 325回
  • この商品を含むブログ (36件) を見る