Hubot
Slack

hubotにスコア機能を追加してチームのモチベーションアップをした話

More than 3 years have passed since last update.

この記事は 慶應義塾大学SFC村井&徳田研 Advent Calendar 2015 の1日目の記事です。


慶應義塾大学湘南藤沢キャンパス略してSFCの村井研究会では、フリープランのSlackを使ってコミュニケーションを取っています。
村井研究会は内部で更に数十名ごとの研究グループに分かれているのですが、研究会全体でのアナウンスを #general で行ったり、研究グループごとのチャンネルを作っています。

hubot

Slackにはいくつかのbotがいます。
チームが作られた時はいくつかボットが立っていたのですが、Integrationの数の制約などで最終的に2つくらいになっています。

logbot

フリープランのSlackではメッセージの保存数が10000件までのため、それより過去のログを遡れるように常時ログを取り続けるbotがいます。
image

hubot-slackを使用していますが、privateなメソッドを叩いてeditedされたメッセージも記録します。記録したメッセージはSolrに投げられ、コマンドやWebサイトから検索することが可能です。

ソースコードはGitHubで管理しています。
https://github.com/sfc-arch/rg-slack-logger

archbot

hubotの汎用的なボットです。出前の弁当集計など細かい便利スクリプト群をGitHub上にpushするとherokuへ自動デプロイされます。

このソースコードもGitHubで管理しています。
https://github.com/sfc-arch/archbot

スコア機能

archbotの機能の中でも、頻繁に使うのがスコア機能です。
チームのコミュニケーションでその人が良いと思ったら「++」(インクリメントの意味)をすることでその発言をした人にスコアを加算することが可能です。
Screenshot 2015-12-01 23.13.03のコピー.png

スコアリングのメッセージ判定はこの部分で行っていて、ニックネームが指定されない場合は直前の発言者を扱ったり、++++++++など記号をより連続することで多くのスコアを加算できます。

if match = msg.message.text.match(/^([a-z0-9_-]+)?\s*(\+{2,})\s*([a-z0-9_-]+)?$/)

このスコアは1週間ごとにルームに通知&リセットされ、1位の人は(メッセージ上で)表彰されます。

Screenshot 2015-12-01 23.12.53のコピー.png

実際にこの機能によって、チームの動きや誰が頑張ったかが伝わり、メンバーのモチベーションにも繋がっています。
(「--」でスコアを減算させる機能もありましたが、不利益を与えかねないということでなくなりました)

おわりに

チームのコミュニケーションでhubotを使っている場合は、スコアリングされると自分が評価されたと文面的に見ることができるためモチベーションを上げるのに良いと思います。

今日の 慶應義塾大学SFC村井&徳田研 Advent Calendar 2015 は研究室内でのSlack利用の事例紹介をしただけで終わってしまいましたが、次回以降はもう少しコアな話をしていきたいと思います。(参加者が少ないので複数回執筆予定)