hacomono TECH BLOG

フィットネスクラブ・スクールなど施設・店舗のための会員管理・予約・決済システム「hacomono」 開発チームの技術ブログ

「ここは俺に任せておまえは先に行け」hacomono運用保守部の紹介

運用保守部のマネージャのよこちゃん(@jikun)と、まっつん(@pagu_o28)です

最近10年ぶりに冷蔵庫を買い替えました。

製氷に時間が掛かるようになった、薄汚れてきたこと以外は特に問題なかったのですが、何となく白物家電の寿命は10年くらいかなと思ったことがきっかけでした。

特に日本製の家電や自動車の寿命は長く1度買ってしまえば滅多に故障もないし手入れも最小限で済むのがありがたいなと思います。

うちの妻は何に対しても同じ感覚を持っており、私が新規機能の開発担当ではないと知ると物凄く驚かれたことがあります。

「新規機能作ってないの?なんでそんなに忙しいの?」

SaaSに限らず自分たちで事業展開し必要なソフトウェアを内製している場合、エンジニアには新規機能開発以外の多数のタスクが降ってきます

  • 社内外からの問い合わせ対応
  • インシデント対応
  • バグ修正
  • ミドルウェアのバージョンアップ
  • 脆弱性対応
  • 利用者増に伴うパフォーマンス問題の対応
  • 管理機能が不十分な場合は、ログやデータの集計、データ更新,削除など
  • 他にも沢山

(これらの新規機能開発以外のタスクを運用や運用保守と呼ぶことが多いと思いますので、この記事ではそのような意図で使います。)

hacomonoでは開発チームが運用保守も行っておりましたが、ビジネスの急拡大によってお客様の数も増え社員の数も増えると仕様やシステムの挙動に関する問い合わせが右肩上がりで増加しました。

問い合わせについては一旦サポートチームが受けてくれ、回答出来るものはその場で回答してくれますが、サポートチームで回答できないものが開発チームへエスカレーションされてきます。

これが現在では月に150件以上あります。

精鋭揃いのサポートチームからエスカレーションされてくるため、秒殺出来るような問い合わせはほぼありません。

そのため外部の協力会社様にお願いして問い合わせのハンドリングや回答をお願いしつつ、溢れたものを社員のエンジニアが日替わりでサポートする体制をとっておりました。

しかし、2023/03ごろから日替わりエンジニアの負荷が限界を超え始めました。

管理サイトでは対応できない大量のデータ削除などの依頼も来はじめ、日替わり担当の日にアサインされたチケットはそのチケットが完了するまで担当するというルールのため数日に渡ってプロダクト開発ではなく運用保守に時間を割かれるようになりました。

hacomonoでは現在まで2週間スプリントでリリースしていますが、各エンジニアが最低1回、または2回エスカレーション対応の担当となるため、エスカレーション担当日に、どんなチケットがアサインされるかでスプリントの達成度にも影響が出るようになり、いつしか畏怖の念を込めて「エスカレガチャ」と呼ばれるようになりました。

7月ごろから運用保守を担当するにあたり、協力会社様と日替わり担当で構成されている状況を組織化しナレッジの蓄積と改善に向けた主体的なアクションを取る組織が必要だと痛感しました。

そして8月から正式組織として運用保守部をスタートさせました。

プロダクト開発チームが運用を行うことで自分たちのプロダクトに反映し、運用が発生しにくいプロダクトに出来るメリットがあるものの、この忙しすぎる状況をまず沈静化させないと運用を考えたプロダクト作りもままならないと考えたためです。

そのため内部的なミッションを「ここは俺に任せておまえは先に行け」にしました。

目の前の運用はやるから、プロダクト開発や運用が発生しないような大規模な改善をよろしくね♪という願いを込めております。

この3ヶ月で具体的にやったこと

①体制を立て直しました

業務フローが無かったので運用保守業務をしつつ固めていきました。

その時に作ったものがこちらの業務フローです。

まずサポートからエスカレのJiraチケットが切られます。運用保守の1次担当者が内容を見てナレッジがあり回答できる場合は即時回答、他部署の担当範囲の内容の場合はそこに移譲、それ以外の場合はプロダクトチームの2次担当者にエスカレする、というフローです。

1次担当者の仕様理解度に依存する形ではありますが、2次担当に調査が回ることが減り効果がありました。

Jiraのワークフロー図

②運用保守チームの作業を見える化しました

どの機能に対する問い合わせが多いのか、運用保守作業のどの工程で時間がかかっているのか、誰に負荷がかかっているのか等のデータを取り見える化しました。

まず1次データを収集できるようにするところから始めました。

hacomonoではエスカレタスクはJiraで管理しているので、Jiraの課題タイプ設定や上述のワークフロー設定、自動化機能を駆使してデータを収集しました。

JIRAの自動化設定

次にそのデータを可視化するために Looker Studio を使用しました。

ちーちゃんがシュッと作ってくれました!

こちらは調査段階別の所要時間をグラフ化したものになります。

1次調査のみで完結したチケットの割合が多いとプロダクト開発メンバーへの負荷が低かったということになるので、ここはひとつの指標になると考えています。

また、機能別に見た場合に「その他」が多いという結果になってしまっています。

hacomonoが提供する機能が多いのでラベリングがうまくできておらずこのような結果になっているので、その他のチケットを分析してラベルをもう少し細分化していきたいと考えています。

機能別の問い合わせ分析

などなど、このように分析できる状態になった、というのはとても大きな進歩だと思います。

③お客様へ改善のご連絡をできるようにする

お客様からお問い合わせを頂き、調査を進めていくとバグであることが判明しバグチケットを切ったり、バグでは無いにしてもより良くするために改善チケットを切ることがあります。

プロダクト開発側でそのチケットを対応してリリースしても、お問い合わせ頂いたお客様にその旨をご連絡できていないことがありました。このバグは治っていますか?とサポートチームに聞かれることも多くなり、このあたりの改善も進めました。

具体的には、エスカレのJiraチケットが紐づいている開発チケットをリリースした場合、それらをピックアップしてサポートチームに連絡する仕組みを作りました。

こちらはJQLでうまく取れなかったので、スプレッドシートとJiraを連携してGASも使いつつデータを整形し、Looker Studioで一覧化しています。

今後の展望

短期的には、属人化するリスクを負ってでも運用保守部にナレッジをため自分たちで回答できる割合を増やしていきたいです。そのためにもドキュメント化をより推進していきたいと思っています。

中期的には改善系や優先度の低いバグ対応など現在手が回らず開発チームの対応待ちになっているタスクをガンガン片付けて行きたいと思っています。

長期的には、運用保守のシフトレフトとして新規開発時に良くある運用例をベースに改善点や変更点がないかPRD作成時や内部設計時に開発チームへFBできるようにしていったり、自動化やツール化で運用保守作業そのものをなくしていきたいと思っています。

このように運用保守部は現在3名と協力会社様のエンジニア2名で行っておりまだまだ拡大予定です。

hacomonoでは、運用保守部もプロダクト開発チームもエンジニアを絶賛募集中ですのでよろしくお願いします!


株式会社hacomonoでは一緒に働く仲間を募集しています!
採用情報や採用ウィッシュリストも是非ご覧ください!