繁忙期を乗り越える“マネーフォワード流”キャパシティプランニングとは
株式会社マネーフォワードが提供するバックオフィスSaaS「マネーフォワード クラウド」は、データを連携させることで経理・人事労務・法務のバックオフィス業務全体を一元化し、効率的に管理できるSaaSです。サービスの利用者が増える繁忙期の不具合を解決するために、システムアーキテクチャに精通し、企業の技術課題に沿った解像度の高いご提案をされることで定評のあるプロ人材の尾崎 翔太氏にご支援いただいた事例をご紹介します。
目次
インタビュイー
黒木 彰太 氏
株式会社マネーフォワード
マネーフォワードビジネスカンパニー 経理財務プロダクト本部 会計開発部 副部長
※所属は取材当時のものです
「マネーフォワード クラウド」を開発する会計開発部
全体最適を意識し組織をまとめる
黒木さんが所属する部署、管轄範囲について教えていただけますでしょうか。
黒木氏(以下、黒木):
所属する会計開発部が管轄しているのは、「マネーフォワード クラウド会計」「マネーフォワード クラウド確定申告」のプロダクトサービスです。ユーザーに価値を提供するための保守運用、サービスの維持・改善をしていく部署です。
会計開発部 副部長 黒木氏
ToB・ToC向けでプロダクトが分かれているのでしょうか?
黒木:
会計も確定申告も「仕訳を作成する」というコアロジック部分は共通していることもあり、その部分はひとつのプロダクトで内部のロジックを分岐して提供する形をとっています。確定申告書作成機能については2021年にマイクロサービスとして切り出して提供を開始しました。
どのようなチーム体制になっているのでしょうか?
黒木:
本部の開発人員は、入社した2019年は20名ほどの規模でしたが、現在は数倍の規模になっています。その中に私のいる会計開発部があり、中で4つのチームに分かれています。
私は副部長として、機能開発をしているチームの取りまとめをしながらトラブル対応をメインで担当することが多いです。開発がしやすいよう定期的にチーム編成をして、情報の連携がしやすい体制に整えています。
部署のコミュニケーションで工夫していることはありますか?
黒木:
週1〜2日の頻度で部内のチームリーダー同士が進捗や情報共有をしています。また、週1で部を越えてチームリーダー同士で課題提起や相談ができる場があり、密にコミュニケーションをとることを大切にしています。保守チームは、不具合や機能リリースの対応をしているため、他のチームと関わる機会が特に多いです。
サービスの数が多いので、情報の漏れがないように部署・チーム単位で密にコミュニケーションを取ることを大切にしています。
黒木さんがチームをまとめる上で、心がけていることはありますか?
黒木:
全体最適となるように行動すること、ユーザーの業務を止めないことです。プロダクトで大きな障害が発生したときは、ほぼ全て関わるようにしており、対応の中での役割については関わっているメンバーの状況に合わせて柔軟に変更するようにしています。
また、ユーザー視点で考えたときに想像だけで補えない部分もどうしても出てくるので、業務に詳しい税理士出身のメンバーなどとも相談をしながら、ユーザーの課題をいち早く安全に解決するための道筋を探すようにしています。
繁忙期の負荷に耐えうるシステムの土台づくり
確定申告サービスは利用者のアクセスが集中する時期があると思いますが、システム側で気をつけていることはありますか?
黒木:
サービス同士が連携する部分もあるので、利用者が増えて大きな負荷がかかっても、他のサービスに不具合が影響しないように監視体制や事前の負荷検証は慎重に対応しています。
元々、プロジェクトごとのリリースやデータ構造変更を伴うようなリリースがあるような場合に、本番相当の環境で事前の負荷検証を行っていました。しかしそれだけだと、確定申告の時期に利用者が増えて、サーバーの負荷が耐えうるかが不明瞭という課題があったんです。
そこからキャパシティプランニングを実施するようになり、過去のピーク時の利用者の状況と増え方の推移を元に、そのままのサーバースペックで繁忙期を乗り切れるかを試算するようなイメージで行っています。
また、仕訳数の基準値が曖昧な状態だったので、ユーザーへの説明も行った上で基準値を設定し、検証を行いやすい土台を作りました。
特に不具合を起こしてはいけない時期は、大きなリリースをせず軽微なものにして不具合が起きないよう整備しています。
人的リソース不足と根本的な不具合の解決
混在するデータベースを整理し開発プロセスを見直す
尾崎さんが参画された時期の課題について教えてください。
黒木:
大きな課題であった繁忙期に起こる不具合を解決していただくために、尾崎さんには2021年7月から参画していただきました。
インフラの負荷対策については、ユーザーの増加とともに対策をしてきましたが、2017年以降にデータベース分割にも着手しています。当時はプロダクトが積み重なって増えている中で、共有のデータベースにさまざまなデータが混在していました。家計簿のアプリに不具合が起きると、会計のサービスにも影響が及んでしまうような状態です。
繁忙期の前に原因を特定するため、SQLのクエリのリストを出したりと解決策を考え実行していたのですが、アクセスが集中すると不具合が起きてしまうという課題を抱え続けていました。
開発リソースが足りていない中、インボイス制度のための開発に着手しないといけなかった背景があり、尾崎さんに支援をお願いしました。
具体的にどんな業務をお願いしていたのでしょうか?
黒木:
どこに問題があるかわからなかったので、調査、開発、リリース後の効果測定を含めた会計サービス全体を改善していただきました。
具体的な業務内容は、インデックス作成やN+1改善、不要なロジック削除やキャッシュ化に加えて、思ったような改善が見られなかった場合の追加調査です。パフォーマンス改善に必要な環境整備の実施や、Datadogをベースにどれくらい改善されたのかを数値でわかりやすく提示してもらう業務もお願いしていました。
週1回の稼働でもハイパフォーマンスでチームを牽引
稼働頻度はどのくらいですか?
黒木:
週1〜2時間です。稼働頻度が少ない中でもパフォーマンスが高く、毎週欠かさず成果物を出してくださります。
2年前と現在で尾崎さんの業務内容は変わっているのでしょうか?
黒木:
当初対応していただいた問題が解決しつつあるので、現在は会計プロダクトから離れて請求書プロダクトの調査・改善に携わっていただいています。過去の実績でマイクロサービスを開発していた経験をお持ちなので、知見やノウハウを活かしながら活躍してくださっています。
尾崎さんとの印象的なエピソードがあれば教えてください。
黒木:
Railsの経験がない中でも、キャッチアップしながら安定したコードを書き開発をしてくださったことが印象的でした。
尾崎さんは知識が豊富なので、得意な言語のノウハウを別の言語に活かせる能力が高いと思います。
また、とてもロジカルな考え方を持っていて、とにかく仕事が早いので助かります。正社員として採用したいほど優秀な方で、開発チームを励ましながらよい刺激を与えてくれる存在です。
最良なサービス開発を支援する外部人材
共にミッション達成を目指す組織体制
外部人材を活用してよかったことを教えてください。
黒木:
かゆいところに手が届かないときに、スポットで開発支援をしていただけるのはとてもいいところだと思います。長期間の人的リソースは必要ないけれど、開発の工程でどうしても手伝ってほしいという状況で、委託期間を決めて参画してもらえるのはありがたいです。
外部人材との関わり方で気をつけていることはありますか?
黒木:
弊社は週2回出社をする方針(推奨は週3回出社)なのですが、フルリモートを希望される外部人材の方も多いです。テキストやMTGで細やかに状況を共有し合い、コミュニケーションにギャップが出ないよう気をつけています。
開発組織の文化を理解しミッション達成に向けて社員と同じ裁量で働いてくださっているので、働き方が違っても大きな影響は感じていません。
変化する社会の期待に応えられる開発組織へ
どんな人と一緒に働きたいですか?
黒木:
インボイス制度の施行などで、経理業務は大きく変わる時期だと思っています。
乗り越えなければいけないことも多いですが、働く人たちが少しでも楽になるサービスを作り、日本全体をよくしていきたいです。関わったことがない業界でも、ユーザーのことを考えビジョンに共感してくれる人と一緒に働きたいと思っています。
開発組織の今後のミッションを教えてください。
黒木:
経理業務の中で入力の手間を削減するような開発はどんどんしていきたいと考えています。AI領域は注力したい領域のひとつです。
中長期的には経理業務の負担を軽減させることだけでなく、会社の経営の分析・提案までできるサービス開発ができるといいなと思っています。
貴重なお時間をいただきありがとうございました。
まとめ
ユーザビリティを高めるために、よりスムーズなデータ入力や仕訳の自動化を進めるマネーフォワード様。
プロ人材に支援いただくことで、開発の手を止めず新たなフェーズに挑み、ミッションを実現できます。
あらゆるフェーズに合わせてFLEXYは最適なエンジニアをご提案できますので、お困りごとがありましたらぜひ一度FLEXYまでご相談ください。