この記事は、Money Forward Kyoto Advent Calendar 2020 - Adventar の4日目の記事です!
こんにちは! 京都開発拠点でGoエンジニアをしています @ysakura_ です。 Goを中心技術として性能改善を行うKTAというチームでリーダーをしています。
今回は京都開発拠点をより知っていただく目的で、私のチームの紹介をさせていただきます! マネーフォワードや京都開発拠点での開発に興味がある方には、具体的なイメージを持っていただけるかと思います。
この記事では、担当プロダクト、KTAのミッション、最近の業務、実現したい未来、についてお話します。
KTAの紹介
正式名称を、京都開発本部テクニカルアーキテクトグループ、といいます。 今年の4月に発足したばかりのチームです。
担当プロダクト
今年の2月26日にローンチした マネーフォワード クラウド会計Plus (以下会計Plus) の性能改善を担当しています。 IPO準備・上場企業向けの会計ソフトで、監査の為に履歴機能や承認機能を備えています。
性能問題の観点では以下の様な特徴があり、早期から性能改善チームを組織しています。
- 1ユーザーのデータ量が多い
- 履歴のデータサイズが膨大(TBオーダー)になる
- マネーフォワード クラウド会計 を元に作っており、技術課題が比較的多い
- 新規プロダクトとの比較
チーム設立の背景とミッション
マネーフォワードではRuby on Rails × RDBを中心とした技術選択をこれまで行ってきました。 Railsのイメージが強い方も多いのではないかと思います。実際、会計PlusのメインのWebシステムもRailsで開発されています。 しかし、プロダクトの成長に対して、現在の技術スタックではパフォーマンスが出ない機能が出てきました。 そこで以下のミッションを持ったチームを作りました。
- テクノロジーの力でサービスを改善し、ユーザーにより良い価値を提供する
私たちは Value
として User Focus
を掲げており、ユーザーの為に必要な改善は何かを考える様にしています。
Google が掲げる 10 の事実にある 遅いより速いほうがいい。
を信じ、性能改善にフォーカスしています。
特に、将来発生する性能課題の解決を重視しており、スコープとしては未来を見て行動しています。
直近の業務
直近は以下の業務を行っています。 課題の可視化から解決までを1チームで出来る様にしているので、業務内容は多岐に渡ります。
マイクロサービスの開発
マイクロサービスは現在3つありますが、ここでは2つ紹介します。
- 履歴データの管理サービス
- MySQLに保存されている履歴をS3に移し、データ量の増大に耐える目的で作成中です
- 帳票作成の為のマイクロサービス
- 全機能中、特に重い帳票作成をGoで高速化しています
現時点では会計Plusに関わるマイクロサービスは全てGoで開発しています。 ただ、Goに限定するつもりはなく、チームで取れる選択肢のうち最適な技術を用いていく予定です。
性能改善
Goのマイクロサービス以外にも、性能改善全般を担当しています。
最近では長期インターン生がある遅いエンドポイントの速度を36%まで削減してくれました。(こちらは別途ブログ化します。) 私もRailsの性能改善を先日行いました。 普段はGoを書いているのでRailsは難しかったですが、プロファイラを用いた定量化により改善が出来ました。 Railsのプロファイラを導入して速度改善をしてみた
他にもインフラやミドルウェアのチューニングによる高速化を地道に行っています。 目的の為に手段は問わない点が特徴になりつつあります。
性能課題の探索
これまで紹介した性能改善を行う為に、改善すべき課題の探索も行っています。 立ち上げ当初は、性能の数値化と計測を主に行っていました。 最近では、将来の性能課題を洗い出す目的で、大量データによる性能テストを行いました。 これを通して、受入可能なユーザー規模、大量データでは動作しない/遅い機能を明らかにする事が出来ました。
性能テストについては、以下の記事で紹介しておりますので、よろしければご覧ください。 大量データで性能テストをする際に考えた事 ~ 将来のユーザーを見据えたテスト方針 ~
現状のチーム体制
正社員が2名、インターンが9名(兼務含む)が所属しています。 2人目の正社員は10月に入ったばかりで、これから更に開発体制を強化していきます。 チームのスキルセットはGoとインフラが中心です。 他にも、Railsに強いインターン生、フロントに詳しい社員が在籍しています。
未来の話
最後のトピックとして、KTAで実現していきたい未来について紹介します。 KTAとして、直近2 ~ 3年で次の様な事を行いたいと考えています。
性能改善の先にある世界を作る
性能改善を通して高速なアプリケーションを作った先で、新たなユーザー体験を実現していきたいと考えています。 例えば、時間がかかっていた集計処理が数秒で出来る世界観になれば、リアルタイムな集計処理でユーザーの業務をより良く変えられる可能性があります。
こういった世界を作るには、ユーザーやドメインの理解が必須になります。 京都開発拠点には、プロダクト・デザイン・フロント・バックエンド・インフラまで全ての担当が京都に在籍しており、京都でプロダクト作りが閉じる特徴があります。 プロダクトサイドがかなり近い距離にいるので、性能改善の先で実現できる世界について議論が行いやすいです。 私の様な基盤寄りのエンジニアでも、ユーザーを意識しながら業務できるのがマネーフォワードの特徴だと感じています。
学生が活躍出来る場を増やす
京都という土地柄、優秀な学生の方が多い様に思います。 一方で、フルタイムではない方が多く納期のあるタスクを任せる事は難しい、という側面があります。 インターン生が9人いるチームでリーダーをしている経験から、活躍して貰いやすいタスクの種類が見えてきました。(こちらは別途ブログ化します。) 現状のノウハウを元に、更に活躍して貰える土壌作りを行っていきます。 学生に活躍機会を提供し、それによる成長を通して、チームの開発力を強化していきたいと考えています。
まとめ
今回は京都開発拠点のKTAチームの紹介をしました。 京都開発拠点における組織や業務のイメージを、皆さんにお伝えできていれば幸いです!
2021年も京都開発拠点では引き続き積極的に採用を行っていきます! 新しい技術にチャレンジしたい、技術を手段としてユーザーに価値提供したい、という方はKTAにマッチするのではないかと思います。 ご応募お待ちしております!
明日は@luccafortさんの、 本を読書する技術、です!
マネーフォワード京都開発拠点 中途採用 | 株式会社マネーフォワード京都開発拠点 インターン | 株式会社マネーフォワード京都開発拠点
【サイトのご案内】 ■マネーフォワード採用サイト ■Wantedly ■京都開発拠点
【プロダクトのご紹介】 ■お金の見える化サービス 『マネーフォワード ME』 iPhone,iPad Android
■ビジネス向けバックオフィス向け業務効率化ソリューション 『マネーフォワード クラウド』
■だれでも貯まって増える お金の体質改善サービス 『マネーフォワード おかねせんせい』