MNTSQ Techブログ

リーガルテック・カンパニー「MNTSQ(モンテスキュー)」のTechブログです。

MNTSQのSlackに住まうbot - Peer-to-Peerフィードバック

MNTSQ Tech Blog TOP > 記事一覧 > MNTSQのSlackに住まうbot - Peer-to-Peerフィードバック

新しい仲間

前回はHot Docsというbotを紹介した。Hot Docsは組織拡大に伴う情報爆発において、情報にattentionをつける仕組みだ。

tech.mntsq.co.jp

今回紹介するのは、Peer-to-Peerフィードバックを促すbotだ。

Peer-to-Peerフィードバックとは

Peer-to-Peerフィードバックは、個人成長やチーム開発を目的として個人から個人へ行うフィードバックである。Peer-to-Peerフィードバックの効果や方法についてはGitLabの360 Feedbackがより参考になる。

about.gitlab.com

行為や責任の所在を明確にするためチームではなく個人に対してフィードバックすることが重要であるが、個人攻撃とならない/捉えられないために次のような点に注意する。

  • フィードバックを送る側:
    • リスペクトを欠く言動をしない
    • 個人そのものではなく個人の言動や成果等、具体的な事象に対してフィードバックする
  • フィードバックを受ける側:
    • 個人攻撃ではないことを理解する
    • フィードバックによって何を良くしようとしているか理解する

なぜ作ったか

MNTSQでは全メンバーから見える形でフィードバックが行われることを推奨しているが、内容がソフトスキルに関する等でセンシティブである場合はプライベートで行われることを許容している。

プライベートなフィードバックは機会が少ないので、botにより促進する仕組みを作った。

Peer-to-Peerフィードバックbotの仕組み

この仕組みを作るにあたり、Ubieの人を介さない自動フィードバックのすすめを大いに参考にした。

note.com

フィードバックのフロー

botによるPeer-to-Peerフィードバックのフローは次のとおり。事前/事後に1on1を行うこともある。

  1. botが受信者を日次でアサインする
  2. 受信者がGoogle Formで送信者3人を選ぶ
  3. botが送信者3人にフィードバックをリクエストする
  4. 送信者がGoogle Formでフィードバックを送る
  5. botが受信者にフィードバックを送る

受信者と送信者への通知はすべてSlackで行われる。

受信者のアサインでは次のような通知が届く。メッセージやアイコンはランダムで変わる。これは社長の例。

受信者がフィードバックをリクエストするとき、フィードバックのテーマを指定できる。

送信者がフィードバックするとき、内容は伊藤羊一氏のGoodとMottoで「今よりもっと良くなる」ことを意識して書く。

www.hito-link.jp

フィードバック履歴の可視化

フィードバックの履歴はSpreadsheetに記録し、月1で集計結果をSlackに通知する。

グラフを見るとリクエストに偏りがあることがわかるので、今後の改善に活かしたい。フィードバックの内容はセンシティブなので記録していない。

技術的な話

この仕組みを作る上でいくつか技術的なポイントがあるので挙げておく。

アーキテクチャ

botのプログラムはすべてGAS(Google App Script)で動かしている。

受信者のアサインと可視化の通知は時間ベースのトリガーで、それ以外はGoogle Formの投稿をトリガーにしている。休日にSlackでメンションが来るのは治安が良くないので休日はスキップするようにしている。

Google Formにパラメータを渡す

送信者がフィードバックを送るときに受信者をデフォルトで埋めておきたい。

これはGoogle FormのURL https://docs.google.com/forms/d/e/hoge/viewform?entry.12345=itaya のようなクエリ文字列を繋げることで実現できる。 12345 は質問ごとに割り当てられるIDで、「google form entry id」等でググると調べ方が出てくる。

SpreadsheetのグラフをSlackに投稿する

SpreadsheetでプロットしたグラフのBLOBをSlackに投稿するには files.upload APIを使う。しかし、これだけではやりたいことが実現できない。なぜなら、 chat.postMessage と異なり icon_emojiusername が変更できないからである。アプリの表示設定で変更できないことはないが、これだとちょっと都合が悪い。

そこで(美しくないが) files.upload で個人のチャンネルにアップロードしてから画像URLを取得して、 chat.postMessageattachments に埋め込む形で投稿するようにしている。

api.slack.com

api.slack.com

運用してみて

運用を始めて9ヶ月が経った。少なくとも運用を始めたことによって会社全体のフィードバックは増えていると感じる。

フィードバックをもらった感想

結構緊張する。筆者自身は顧客対面にもっと出ろというフィードバックをもらってミーティングに出るようになったり、声が小さいと言われて腹から声を出すことを意識するようになったりした。

他の方から感想を募集したところ、次のようなコメントをいただいた。

  • どきどきしますね。でもしっかりGoodでさんざんホメてくださった後に、すこしだけ丁寧なMottoがつづいていて、やさしさを感じた。Mottoの内容は家族からもたびたび指摘されていることだったので、マジで気をつけます
  • FB者から見て自分がどう見えているのか、全然意識していなかった部分も知ることができてよかった
  • 入社してすぐのタイミングでも、業務面、キャラクター面の両方からフィードバックをもらえた。周囲が新メンバーに気を配ってくれていることがわかり、安心した。

フィードバックを送った感想

結構緊張する。1件あたり最大2時間かけて返すのでめちゃくちゃ大変だが、相手にとって僅かでも価値のあるフィードバックであることを願う。

こちらも他の方から次のようなコメントをいただいた。

  • 結構大変。口頭でお礼言われたりもするので、やってよかったなと思う。

おしまい

あなたの会社でもぜひ試してほしい。