Money Forward Developers Blog

株式会社マネーフォワード公式開発者向けブログです。技術や開発手法、イベント登壇などを発信します。サービスに関するご質問は、各サービス窓口までご連絡ください。

20230215130734

Discord Botを使ってインターン生とのコミュニケーションを改善しました!

こんにちは。 CTO室マイクロサービス推進部でインターンをしている廣瀬です。

マネーフォワードには、インターン生が主導となって取り組んでいるプロジェクトがいくつか存在し、インターン生を積極的に受け入れています。 僕を含め何人かのインターン生が、インターン生でありながら他のインターン生のメンターも務めるという珍しい経験をさせていただいております。

リモートワーク中にチームにインターン生を受け入れ、業務を進めていくにあたり、以下のような課題が出てきました。

  • リモートワークでコミュニケーションが取りづらい
  • お互いの状況を細かく把握することが難しい
  • マネーフォワードが導入しているSlack(チャットサービス)だけでは、会社の雰囲気がわかりづらい

このような課題から、些細な疑問でも気軽に尋ねられる環境を作り、円滑に業務が進められるようにする必要があると感じました。

そこで、マネーフォワードのインターンチームでは、ボイスチャットサービスである Discord を導入することで、インターン生同士やメンターとのコミュニケーションを取りやすい環境づくりに取り組んでいます。

今回は、インターンチームのDiscordの活用方法と、実際に運用して気づいた課題を解決するために開発したDiscord Botを紹介します。

目次

  1. Discordとは
  2. インターンチームでのDiscord活用方法
  3. Discord導入で感じた課題
  4. 課題解決のために導入したDiscord Bot について

Discordとは

Discordは無料で利用可能な音声・ビデオ通話ツールです。元はゲーマー向けボイスチャットサービスとしてゲームコミュニティを中心に広まってたソフトですが、遅延がなく高品質な音声ビデオチャットが可能であり、テレワークに採用する企業が増えています。

次の図のように、テキストチャンネル・ボイスチャンネルを作成することができ、同じサーバー上で複数の部屋を作り、通話及びテキストでのやりとりが可能です。

具体的な活用方法

Discord利用ガイドライン

マネーフォワードインターンチームでは、Discordの利用ガイドラインを定めて運用しています。ここでは、ガイドラインの中からいくつか紹介します。

  • 基本的に全員にほぼ全ての権限を付与(ロール管理やBAN権限を除く)
  • チャットは原則雑談オンリー

    • 休職中のインターン生も入っているため業務内容はNGとし、業務についてのやりとり音声通話で行っています。
  • チームごとにカテゴリ分けをすること

    • チャンネル選択部分で右クリック → カテゴリーを作成 でカテゴリを作成
    • TEAM-A, TEAM-B というカテゴリを作ったときのサンプル画像です。
    • カテゴリごとに分けることで、サーバーに入るチームが増えても見やすくなります。

活用方法

インターンチームでは以下のようにDiscordを活用しています。

  • メンターは常にボイスチャンネルに入室しておき、質問したければボイスチャンネルで話しかける
  • カメラ・マイクは会話していない時はOFFで問題ない
  • 自由に会話可能なチャンネルと、集中して業務するためのチャンネルが複数ある

導入しているDiscord Botについて

Discordのボイスチャット内でYoutube, SoundCloud, Spotifyなどの音楽を流してくれるBot(基本無料)を利用しています。

  • botify
    • SpotifyやSoundCloud, Twitchストリーム、Youtubeビデオ・プレイリストの再生できるDiscord Bot
  • Rythm
    • botifyと同様に音楽を再生できるDiscord Bot

Discordサーバーの雰囲気

Discordをインターン生同士で活用している画像です。最近は、音楽の操作(botify/Rythm)をテキストチャットで、雑談はDiscordのボイスチャットやZoom での会話、Slackのテキストチャンネルでゆるく行っています。

Discordを導入して感じた課題

このようにDiscordを導入しコミュニケーションの円滑化を図った一方、課題もいくつか見えました。

  • 常にボイスチャンネルに入っているメンターが、メンティーの質問に応答するのが少し大変
    • リモートワーク中はスピーカをONにできるが、出社時など、スピーカを垂れ流せない環境下ではいつでも反応するために常にイヤホンをつけておく必要がある。
    • スピーカが意図せず音量ゼロになっていることもあり、質問した人からすると無視されたような形になり、コミュニケーションの壁を感じてしまう

Discord Mentor Supporter について

これらの課題を解決するためにメンションで呼び出してもらうのは、質問のハードルを上げることとなるため、以上のような課題を解決するためにDiscord Bot(以下: Discord Mentor Supporter)を開発しました。

Discord Mentor Supporterは、誰かがミュートを解除した時 / ミュートをした時にテキストチャンネルで通知してくれます。 ボイスチャンネル入室時に通知するBotはありましたが、unmute時に通知するbotは現状確認できなかったので開発しました(2021/08現在)

機能について

基本的には、Botをコマンドを使って呼び出します。

現状以下のような機能があります。

  • ミュート解除を検知するメンバーの設定
  • ミュート解除を通知するチャンネルの設定
  • メンション呼び出しするメンバーの設定(メンターを想定)
  • ミュート解除を通知するテキストチャンネルの設定
  • 設定情報の表示
  • ヘルプ
  • 使い方の表示
  • エラー出力先チャンネルの設定

また、複数のDiscordサーバーに導入しても問題なく動作するように実装しています。

使用した技術について

使用技術: Golang, MySQL, Docker, AWS EC2 使用した主要なGo module: discordgo, gorm

簡単な使用例

想定されるケース

  • MentorAさん, MentorBさん: メンター
  • MenteeCさん, MenteeDさん: メンティー
  • Discordには、#text(テキストチャンネル)#voice (ボイスチャンネル)が存在している
  • #voiceに常に参加し、いつでも通話ができる状態にしておく(ミュートでOK)。
  • #voiceでメンティーが質問のためにミュートを解除したときに、#textで、メンターにメンションをつけた状態で通知がしたい。
  • これができると、メンターはメンション通知が来たことによって、スムーズにdiscordアプリに切り替え、応答できる。

やること

  1. 通知の設定 $report voice true というコマンドを#textチャンネルで呼び出す。
  2. インターン生のイベント検知設定 指導を受ける2名は次のコマンドを任意のテキストチャンネルで呼び出す $detection voice true
  3. メンターのメンション設定 メンター(2名)は次のコマンドを任意のテキストチャンネルで呼び出す $mention voice true
  4. 設定完了

実際に使ってみた人のコメント

実際にBotを使用して数ヶ月が経つメンバーのコメントを紹介します。

メンターのコメント

  • botを導入する前は出社していてもメンターとしていつでも質問に応答できるようにイヤホンをつけっぱなしにしておく必要があって、ストレスを感じていました。しかしbotの導入後は視覚的な通知として誰かが話していることを検知できるようになったので耳を常に塞いでおかなくても良くなったため、ストレスから解放されました。
  • メンティーのミュート解除を通知してくれることによって、途中で自分が離席した場合、後からメンティーが質問しようとしていたことに(通知を読んで)気づくことができます。botを導入する前と比較して、より能動的かつ効果的にメンティーに声をかけることができるようになりました。

メンティーのコメント

  • botの導入もあってか、ミュートを解除して質問したらすぐに回答していただき、業務がスムーズに進んでいます。

Discord Mentor Supporterの導入により、メンター ・メンティー共によりコミュニケーションをとりやすい環境を作れたのではないかと感じます。 メンターとして上記のようにDiscordを利用する場合、想像以上にメンティーから質問が来ないか等気を張る必要があり、どうしてもストレスを感じてしまいます。今の Discord Mentor Supporter は通知機能一つだけですが、他のメンターも僕自身もかなり良い効果を受けているため、次に紹介する新規機能の実装を進めていきたいと考えています。

Botの今後の課題

Discord Mentor Supporter は、開発開始から間もないため課題が沢山あります。更なるUX改善や機能追加を進める予定です。 以下のような機能を実装する予定です。現在検証段階ですが、おおよそ実装できることがわかっています

  • UX改善
    • メンティーが発言した時に通知するようにする。
    • メンターへ通知するだけではなく、メンターを強制ミュート解除にする
  • 機能追加
    • 特定のSlackチャンネルへの通知する機能
    • Google カレンダーと連携し、ミーティングが入っているメンバーを自動ミュートする機能

まとめ

インターンチームでは、インターン生同士のコミュニケーションを円滑化するためにDiscordを導入しています。些細な疑問も気軽に尋ねる環境を実現するために、Discordではメンターが常にボイスチャンネルに入室しておき、質問を常時受け付けるような形で運用しています。

一方、実際にDiscordを導入しただけでは、メンターが常にイヤホンを付けておかなければいけないことや、すぐにメンティーの質問に回答するのが難しいことなど、課題がいくつか見えました。 そこで、主にメンティーがミュートを解除したときにテキストチャンネルに通知するBot(Discord Mentor Supporter)を開発し、Discordを利用して見えた課題を解決しました。 実際に、メンター・メンティー共に高評価をいただいたため、引き続き機能追加などを進める予定です。

今回紹介したBotは実際の業務とは関係なく、有志で開発したものです。 僕は過去に数々のインターンに参加してきましたが、学生がメンターになる企業はなかったため、かなり珍しい取り組みを経験させていただいています。インターンでのメンターとしての業務内容などもブログを書いていく予定なので、お楽しみに!

またマネーフォワードでは長期インターンや新卒エンジニアの募集もしています。ご興味を持っていただいた方はぜひご応募ください!

長期インターン: https://www.wantedly.com/projects/712613 https://www.wantedly.com/projects/600862

23新卒本選考: https://hrmos.co/pages/moneyforward/jobs/0004179


マネーフォワードでは、エンジニアを募集しています。 ご応募お待ちしています。

【サイトのご案内】 ■マネーフォワード採用サイトWantedly京都開発拠点

【プロダクトのご紹介】 ■お金の見える化サービス 『マネーフォワード ME』 iPhone,iPad Android

ビジネス向けバックオフィス向け業務効率化ソリューション 『マネーフォワード クラウド』

おつり貯金アプリ 『しらたま』

お金の悩みを無料で相談 『マネーフォワード お金の相談』

だれでも貯まって増える お金の体質改善サービス 『マネーフォワード おかねせんせい』

金融商品の比較・申し込みサイト 『Money Forward Mall』

くらしの経済メディア 『MONEY PLUS』