物件管理システム開発グループのいけやです。
MongoDBやRailsやAWSを扱うプロジェクトチームにいます。
コードをがりがり書いています。
今回のテーマについて
ここ1~2年、情報システム部内で、開発に関わるツールを、Atlassian製品に統一していこう、という取り組みがあります。
今回は、この取り組みの一環として、
私が所属するチームでの HipChatの自動通知に関する活用・運用例 を紹介します。
補足: この取り組みのねらい
部内全体で、というこの取り組みのねらいは、下記です。
- 各ツール間の連携を強くすることで、スムーズで漏れのない進捗管理を得る
- 統一ツールを使うことで、部内全体のノウハウの蓄積・共有や異動時のキャッチアップ時間短縮を図る
- ツール制作会社を揃え、ツール間連携をより簡単に密に構築できるようにする
このねらいに基づき、製品選定を行い、
結果、JIRAが社内にいちばん広く浸透していたので、Atlassian製品で決定 ⇒ HipChat、Confluence、Bamboo、Bitbucketを導入することになりました。
検討が長引いたため、実導入が行われたのはつい3ヶ月ほど前です。
前提
プロジェクトチームの紹介
- 開発しているのは主に下記です。
- 20~25人ほどで開発
- 3~4チームくらいに分かれている(インフラ系、オンライン系など、作業層で分割)
- テスト環境は計10面
- 複数案件を並行して開発するため、それぞれ別バージョンのデプロイが行われる
- 部内ツール統合の動きの1年程前から、HipChat、Confluence、JIRAのチーム内利用を開始
- メール運用はあまりない。当社規定のWebメールでは、デスクトップ通知がないため
自動通知方法
活用・運用例
障害通知
- 通知元: Errbit, CloudWatch, NewRelic
- 「通知が来たら、ボールの持ち主をはっきりさせる」というルールがある
- 「わたしが見ます」「○○さん、確認してください」のやり取りを必ずする
- 「通知が来たら確認する人」を持ち回り制にして、より確実に
効果
- 作業状況の周知や、役割分担などがスムーズに進むようになった
- 「誰かが見ていると思って誰も何もしていない」「複数人で同じ調査をし始める」など、
「ちょっとの連携があればなくなるもの」がようやくなくなった
⇒ この「ちょっとの連携」をカバーするのが、チャットの大きな効果だと思います。
さらにチーム内の運用ルールを定めることで、少ない手間で仕事を回していくことができるようになりました。
デプロイ通知
- 通知元: Capistrano, Chef
- 通知内容: デプロイ先、ブランチ名、コミットコメント(デプロイ先が本番のときのみ)
- 専用の通知部屋を作成し、@allメンションで全員に通知
効果
- 周知の手間・漏れがなくなった。
- テスト環境で「これってデプロイされていますか?」の問合せもなくなった。
- 本番リリースの内容を簡単に確認できて、開発者も安心する(自分のコミットがリリースされた、と)
一定期間放置されているブランチ・JIRA課題の通知
- 通知元: GitLab API(ゆくゆくはBitbucketに), JIRA API(を叩くスクリプト)
- 通知内容: 「このブランチは30日間更新がありません」「この課題は1週間更新がありません」「確認・更新してください」
- 個人(ブランチ最後のコミッター/課題担当者)の元にダイレクトメッセージを飛ばす
効果
- 不要なブランチがリモートに溜まらなくなった(ブランチ運用の事故防止)
- 「これはいったい、今どうなっているのか?」という、不明なブランチ・タスクがなくなり、全体の見通しがよくなった
- "掃除を呼びかける人"がいなくなった(自動化バンザイ!)
気をつけていること
HipChatの「良さ」を潰さないように気を付ける必要があります。
- 必要な通知だけが届くようにする
- 「来てもどうせ見ない」ものは通知しない。需要があるかどうかを定期的にメンバーに確認する。
- 「個人メンションを付けるか付けないか」「@allか」「グループチャットかダイレクトメッセージか」など、通知範囲・方法をよく検討する。
- カスタム通知機能で、自分に関係のない通知を省けるので、この機能を利用者している人は多い。
通知方法を誤ると、通知がポップアップされないことも。
- カスタム通知機能で、自分に関係のない通知を省けるので、この機能を利用者している人は多い。
さいごに
これらの、「開発しやすい環境」を育んできた自動通知ですが、
実は結構、スクリプトを書いて実現しているところも多いです。
BambooやBitbucketへの移行が済んだら、もっとかんたんに拡張していけるかなと期待しています。
さらなる「開発しやすい環境」を目指していきたいです。