不動産/
多数のツールをHipChatで連携
- ――開発プロジェクトにおける生産性の向上は,
多くの企業が課題としてとらえています。SUUMOのスマホサイト開発では, 生産性を高めるためにどのような工夫をされているのでしょうか。 吉田氏:大きなポイントは自動化です。開発/
運用/ 保守といった業務の中で, 開発というクリエイティブな時間を増やすためには, やはり運用や保守の時間を削減しなければなりません。そのために自動化に取り組んだのです。 - ――自動化を進めるにあたって障壁はありましたか。
吉田氏:1つめは技術的な問題です。社内に自動化の事例は少なく,
言語も普段使用しているPHPではなくJavaやCoffeeScriptを使わなければならなかったり, セキュリティの担保や保守・ 運用についても考慮する必要があったため, いろいろと苦労しました。ここは専任のチームを立ち上げ, 自動化を推進するという形で解決しました。 2つめは運用の問題です。自動化した後の話ですが,
イレギュラーが発生したときにすぐに対応できなかったりして, 結局旧来の手法を回すということが多々ありました。根気強く小さな改良を加えながら, 少しずつ自動化を進めましたが, こうした地味な作業の積み重ねが大変だったなと印象に残っています。 - ――保守作業の効率化や自動化を進めるために,
どのようなツールが使われているのでしょうか。 吉田氏:基本的にはHipChatとJenkinsを中心に,
いろいろなツールを使っています。コードの静的解析にSonarQube, 自動テストを実現するRemote TestKit, リソースモニタリングのZabbixといったツールが挙げられます。既存のツールや, 自動化を進めるにあたって新規に作成したツールもすべて, Hubotをベースに作られたボットを使って, チャット上から操作が行えるようにしています。社内ではチャット (Chat) で保守作業 (Ops) を行うことからChatOpsと呼んでいます (図1)。
HipChatの導入効果と運用/保守作業の変化
- ――さまざまな作業の起点としてHipChatが使われているわけですね。
吉田氏:はい。開発に関わる重要な作業のすべてがチャットを中心に回るようになっています。具体的にはコードレビューが終わった後に開発・
検品にリリースする作業, そしてEnd-to-End (E2E) テストを行い, サーバのリソースをモニタリングする作業, これらすべてがチャットで行えるようになっています (図2)。
- ――HipChatを導入して,
開発や運用/ 保守作業にどういった変化が生まれたのでしょうか。 吉田氏:以前より保守・
運用作業のレベルが向上したという実感があります。ChatOpsを実した結果, 日々の運用における小さな手間が省けたことで, 以前よりもきめ細かく運用・ 保守作業が実施されるようになったと感じています。それとHipChatに情報が集約されるため, 見逃しがあまりないこともポイントです。各アトラシアン製品と連携できるだけでなく, 自分たちが好きなように通知をカスタマイズできる柔軟性があり, とくに通知時の宛先 (メンション) を細かく設定できるのが便利ですね。必要な人だけに情報を届ける設定が簡単なのは大きなポイントだと思います。その結果, “HipChatでメンション付きのメッセージが届けば, 自分にとってアクションが必要な重要な情報がある” とわかる状況を実現できました。 山下氏:リリースや開発作業への意識向上が見られたこともHipChatの導入効果だと考えています。とくにSUUMOのスマホサイトはリリース回数が多いため,
その自動化だけでも年間約360時間以上の削減につながっています。 - ――エンジニア同士のコミュニケーションにもHipChatは使われているのでしょうか。
山下氏:社内や開発チームごとの情報共有にもHipChatを活用しています。バグ報告や実装に関わる質問,
コードレビューやQAのメンバーへの作業依頼などです。また 「今日は○○さんが休みです」 「お菓子が入荷しました」 など, 軽い情報共有や雑談もHipChatで行っています。わざわざメールを使うまでもない, ちょっとした連絡が気軽に取れるのはいいですね。開発コミュニケーションの観点で言えば, ChatOpsと併用することで, ほかの人が何をやっているのかが見えるため, 今まで見えづらかった作業が透明化し, 属人化していた保守運用業務が誰でもできるようになりました。さらにチャットの履歴がそのまま保守作業の履歴になるので, チャット起点でトラブル対応などのコミュニケーションが可能になったことも大きな変化です。