athome-developer’s blog

不動産情報サービスのアットホームの開発者が発信するブログ

情報システム部内で開発ツール統一を目指している話 ~ HipChat自動通知活用編 ~

物件管理システム開発グループのいけやです。

MongoDBやRailsAWSを扱うプロジェクトチームにいます。
コードをがりがり書いています。

今回のテーマについて

ここ1~2年、情報システム部内で、開発に関わるツールを、Atlassian製品に統一していこう、という取り組みがあります。
今回は、この取り組みの一環として、
私が所属するチームでの HipChatの自動通知に関する活用・運用例 を紹介します。

補足: この取り組みのねらい

部内全体で、というこの取り組みのねらいは、下記です。

  • 各ツール間の連携を強くすることで、スムーズで漏れのない進捗管理を得る
  • 統一ツールを使うことで、部内全体のノウハウの蓄積・共有や異動時のキャッチアップ時間短縮を図る
  • ツール制作会社を揃え、ツール間連携をより簡単に密に構築できるようにする

このねらいに基づき、製品選定を行い、
結果、JIRAが社内にいちばん広く浸透していたので、Atlassian製品で決定 ⇒ HipChat、Confluence、Bamboo、Bitbucketを導入することになりました。
検討が長引いたため、実導入が行われたのはつい3ヶ月ほど前です。

前提

プロジェクトチームの紹介

  • 開発しているのは主に下記です。
    1. 当社の物件情報を保有・管理する「物件API」(RailsやMongoDB, Solrなどを使っています)
    2. 当社の画像情報を保有・管理する「画像API」(Rails, AWSなどを使っています)
  • 20~25人ほどで開発
    • 3~4チームくらいに分かれている(インフラ系、オンライン系など、作業層で分割)
  • テスト環境は計10面
    • 複数案件を並行して開発するため、それぞれ別バージョンのデプロイが行われる
  • 部内ツール統合の動きの1年程前から、HipChat、Confluence、JIRAのチーム内利用を開始
    • メール運用はあまりない。当社規定のWebメールでは、デスクトップ通知がないため

自動通知方法

活用・運用例

障害通知

  • 通知元: Errbit, CloudWatch, NewRelic
  • 「通知が来たら、ボールの持ち主をはっきりさせる」というルールがある
    • 「わたしが見ます」「○○さん、確認してください」のやり取りを必ずする
    • 「通知が来たら確認する人」を持ち回り制にして、より確実に

f:id:mi15795:20160723163245p:plain

効果

  • 作業状況の周知や、役割分担などがスムーズに進むようになった
  • 「誰かが見ていると思って誰も何もしていない」「複数人で同じ調査をし始める」など、
    「ちょっとの連携があればなくなるもの」がようやくなくなった

⇒ この「ちょっとの連携」をカバーするのが、チャットの大きな効果だと思います。
  さらにチーム内の運用ルールを定めることで、少ない手間で仕事を回していくことができるようになりました。

デプロイ通知

  • 通知元: Capistrano, Chef
  • 通知内容: デプロイ先、ブランチ名、コミットコメント(デプロイ先が本番のときのみ)
  • 専用の通知部屋を作成し、@allメンションで全員に通知

効果

  • 周知の手間・漏れがなくなった。
    • テスト環境で「これってデプロイされていますか?」の問合せもなくなった。
  • 本番リリースの内容を簡単に確認できて、開発者も安心する(自分のコミットがリリースされた、と)

一定期間放置されているブランチ・JIRA課題の通知

  • 通知元: GitLab API(ゆくゆくはBitbucketに), JIRA API(を叩くスクリプト
  • 通知内容: 「このブランチは30日間更新がありません」「この課題は1週間更新がありません」「確認・更新してください」
  • 個人(ブランチ最後のコミッター/課題担当者)の元にダイレクトメッセージを飛ばす

f:id:mi15795:20160715155436p:plain

効果

  • 不要なブランチがリモートに溜まらなくなった(ブランチ運用の事故防止)
  • 「これはいったい、今どうなっているのか?」という、不明なブランチ・タスクがなくなり、全体の見通しがよくなった
  • "掃除を呼びかける人"がいなくなった(自動化バンザイ!)

気をつけていること

HipChatの「良さ」を潰さないように気を付ける必要があります。

  • 必要な通知だけが届くようにする
    • 「来てもどうせ見ない」ものは通知しない。需要があるかどうかを定期的にメンバーに確認する。
    • 「個人メンションを付けるか付けないか」「@allか」「グループチャットかダイレクトメッセージか」など、通知範囲・方法をよく検討する。
      • カスタム通知機能で、自分に関係のない通知を省けるので、この機能を利用者している人は多い。
        通知方法を誤ると、通知がポップアップされないことも。

さいごに

これらの、「開発しやすい環境」を育んできた自動通知ですが、
実は結構、スクリプトを書いて実現しているところも多いです。

BambooやBitbucketへの移行が済んだら、もっとかんたんに拡張していけるかなと期待しています。
さらなる「開発しやすい環境」を目指していきたいです。