見出し画像

果てなき技術をユアマイスターで追い求めるーサーバレスアーキテクチャへの挑戦 【YOURMYSTAR ENGINEER STORY 01】

2020年末からユアマイスターでは新たな挑戦が始まりました。

ユアマイスターは第2次成長期に入り、この5年でさらなる大きな飛躍を遂げるためプロダクトドリブンを掲げ、テクノロジーロードマップを作成。改めてVPoE、テックリード、メンバーの役割を振り直し、プロダクト開発を進めるも、大きな課題に直面しました。

そんな真っ只中の2021年3月に、福田雄貴さんがテックリードとしてジョイン。開発チームの技術力・開発・プロダクトの品質を向上させる役割を担ってチームを牽引してから早数ヶ月、チームには変化が起こり始めています。

この記事は連載として、ユアマイスターの開発チームの現状をお伝えしていきます。

初回の本記事では、福田さんにインタビューし、福田さんのこれまでの経験から今抱える開発チームの課題とそこの先に見据える果てなき面白い挑戦について語っていただきました。

新しい技術に出会い続けるために、自分を厳しい環境に追い込む

ーーまずは、これまでのご経歴を教えてください。

新卒で楽天株式会社に入社し、Webエンジニアとしてクレジットカード事業部に配属されました。ユーザの皆様が利用するWebサイトやメール配信システムの開発と運用から始まり、1年目の終わりくらいからはプロジェクトリーダーも任されるようになりました。

楽天には6年間在籍していたのですが、まさにビジネスが急成長を遂げる場面に立ち会うことができる良いタイミングでした。金融事業というお堅い業種ではありながら、IT企業のスピード感を持ってさまざま変革を起こしていくという他では得難い経験だったと思います。

大規模なシステムリプレース案件や海外事業の立ち上げなど、事業の成長に伴ってシステムが大きく変わっていくところに携わることができました。クレジットカード事業は楽天の提供するさまざまなサービスを支える基盤にあたるので、他の事業と連携したサービスの開発も数多くありました。このような経験を通じて幅広い技術や知識を身につけることができる環境でした。

そんなこんなで6年目を迎えまして、開発グループのマネージャーを任されることになりました。エンジニアとしてのレベルアップも続けていくつもりではいたのですが、やはりマネージャーになると管理業務の比率が高くなり、ひとりのエンジニアとして貢献するよりもチームとして大きな成果をあげることが求められるようになります。もちろんそれはそれでやりがいのある仕事ではありました。しかし、当時の技術レベルでは、マネージャーを続けていくとしても遠くない将来に技術のわからない管理職になってしまうだろう、という不安が拭いきれず、改めてエンジニアとしてスキルアップする道を模索するようになりました。

結果として新天地を求めて転職することになるのですが、次に選んだ会社が株式会社ディー・エヌ・エーです。

ディー・エヌ・エーでは、当時の楽天では経験することができなかったパブリッククラウド技術を使って、大規模なWebサービスを構築・運用する仕事を担当していました。非常に技術力の高いエンジニアが集まっていて、毎日多くのことを学びながら、質の高いアウトプットを継続して生みだすことができるようにデザインされた環境でした。

ーーマネジメントより技術に興味があったんですね。

はい、今でもそうなんですが、新しい技術を使って、あたらしい世界を見たいと思っています。常にチャレンジができる環境に身を置きたいんです。

自分自身を怠惰な人間だと思っているので、エンジニアとしての市場価値を高めるためには「成長したい」といったモチベーション頼りではなく、自分を追い込める厳しい環境に身を置き続ける必要があると考えています。(笑)

画像1

技術は勉強しただけ先が広がる

ーーユアマイスターではテックリードとしてチームの技術力の向上を担っている福田さんですが、ご自身の経験の中で、これは成長した、と感じた時はいつですか?

ひとつは、楽天での海外事業立ち上げにかかるサービス開発プロジェクトです。このプロジェクトでは海外で展開するサービスを開発するにあたって様々な難しさに直面しました。

自分たちが開発しているWebサイトに書かれている文章の内容が正しいかどうかすら判断できませんし、現地の商習慣や法律が日本とは全然違っていて、これまで培ってきた常識が通用しないことも少なくありません。サービスローンチの当日には、多くの報道陣や関係者が集まって記者会見が行われる中、会場の後ろの方でシステムが上手く稼働してくれることを祈っていました。とにかくメンタル面が鍛えられるプロジェクトでしたが、そのプレッシャーを乗り越えたことでエンジニアとしての幅が広がった実感があります。

技術的に一番成長したこととしては、ディー・エヌ・エーで新規ゲームプラットフォーム開発に技術選定から関わった経験があげられます。

この案件では一般的な機能・非機能面の要求だけでなく、少人数のチームでも運用が可能とか、頻繁に発生する仕様の変更に対応しやすいとか、チームやサービスの特性を考慮に入れたアーキテクチャの設計が求められていました。それに加えて、将来的に他のプロダクトでも採用するかもしれない技術のトライアルという側面も持ち合わせており、プロトタイピングにかなりの時間を費やしてサービス作り上げたのを覚えています。

とりわけディー・エヌ・エーには技術に感度高く吸収していく文化が根付いていました。プロダクト開発に用いる技術の幅も広く、新しい技術も積極的に採用できる。困ったことがあれば社内に誰かしらその道のエキスパートがいて、なんでも相談して解決できる。多くのエンジニアが勉強会に登壇したり、技術コミュニティの中心となって活動していたり、対外的なアウトプットや交流を当たり前に行っている。そういった環境の後押しもあり、自分でも積極的に業務を通じて得た知識を広くアウトプットするようになり、またそのアウトプットの質を高めるための自己研鑽に多くの時間を使うようになりました。

喜びを求めて、果てない技術を極める旅に出る

ーーそんななか、なぜユアマイスターに入社しようと思ったのでしょうか?

きっかけはユアマイスターの開発責任者の星さんです。星さんとは楽天時代に同じ部署の先輩後輩の関係で、転職した後もたまに連絡をとりあっていたのですが、ある日、ユアマイスターに来てくれないか、と誘ってもらったんです。

当時ディー・エヌ・エーでの仕事にはとても満足していたので、積極的な転職は考えていませんでした。しかし、ユアマイスターの開発課題を聞いて、自分のこれまで培ったスキルが絶対に役に立つ、と思い、心が動きました。

ユアマイスターのプロダクトは、会社の創業当時に開発をすべて外部に委託して作られたそうです。スタートアップでは珍しいことではありませんが、このようなプロセスで作られたシステムは大抵その時点で必要な機能が実装されているに過ぎず、事業の成長を見越して保守・運用面を考慮した作りになっていることはまずありません。

機能追加のスピードが重視される環境で4〜5年くらい運用を続けていると、だんだんと新しく機能を積み上げていくことが難しくなってしまいます。ユアマイスターのプロダクトも例に違わず、簡単な改修ですら多くのコストがかかる状態になっていました。

現状の課題を見定めて、開発方針を決め、プロジェクトのメンバーを教育しながら、実際にモノを作り、運用する、という一連のプロセスを通じて、エンジニアとしてユアマイスターのために価値を発揮している自分の姿をはっきりとイメージできたことが大きかったです。

ユアマイスターは、会社の方針としてプロダクトドリブンを掲げていて、経営層含めてプロダクトの重要性を認識していて、プロダクトを通じて提供されるサービスを良くしたいという思いを持っている点もいいなと感じました。ビジネス面でも高い目標を達成しようとしている中で、会社全体で力を入れている中でエンジニアとして価値が発揮できるのは素晴らしいチャンスだと思いました。

全ての原動力となるテクノロジー戦略

ーー実際、入社していかがでしたか?

正直に言うと、入社したら思った通りに結構「ヤバかった」です。ビジネスサイドがやりたいと思っていることを実現できるようなシステムにはなっていないですし、それを作るだけの技術力もチームに備わっていない。

そのギャップを埋めることが僕の仕事ですし、それを解決できる人を育てることも僕の仕事。エンジニアから提案して、開発責任者と話し合って、会社全体のレベルアップにつながる仕事ができている面白さをユアマイスターで今感じています。

ユアマイスターのエンジニアはみな真面目で成長意欲が高く、伝えた技術や考え方はどんどん勉強して吸収していきます。みんなに負けないよう、どんな質問にも対応できるように、僕自身も常に勉強しなければと身を引き締められています。

ーー具体的にどのような点がやばかったんですか?

「今のままではよくない」「このまま今まで通りのやり方を続けていたら破綻する」ということを誰もが自覚していながら、その状況を立て直す力が圧倒的に足りていなかったところです。

ーー入社後、実際どんなことに取り組まれているんですか?

まずは、中長期のテクノロジー戦略を作成しました。これは、今後のプロダクト開発においてどのような技術を採用していくか、どのようなスキルを身につけるべきかを示すものです。

その中では大きな目標として、「入社したエンジニアが配属初日に本番リリースできる」「いつでもチーム組成を変えることができる」という2つの項目を掲げています。

これらを実現するために身につけるべきスキルや開発方針、気に留めなければいけない考え方などを盛り込み、エンジニアリングにおける判断基準を明確にすることで、各メンバーの日々の小さな意思決定が同じ方向に向かうようにしています。具体的な内容に関しては、また後日ご紹介できればと思います。

ーーこの戦略を立てて、チームはどう変わりましたか?

人伝てではありますが、テクノロジー戦略ができたことによって先が見えたと感じていると聞いています。今やっていることが将来どのようにプロダクトの改善につながっていくのか、なぜ今これをやらなければいけないのかといった疑問がクリアになって、自分が取り組んでいる仕事の意義を実感できるようになったり、目標設定の際の指針として役に立ったりしているようです。

さらに、これまでやりたいと思っていたけど出来ていなかった新しい技術の導入の後押しにもなっているようです。「どういう効果を期待してどういう技術を採用するか」という問いに対する理由付けができたことが良かったのではないかと思います。

僕は入社してからペアプログラミングやコードレビューにかなり時間をかけているのですが、徐々にエンジニアメンバー全体のレベルが上がってきています。今みんなも成長を感じているようで、仕事が楽しいといっていますね。

画像2

成長意欲高いメンバーと挑戦していく道

ーーテクノロジー戦略は、みんなの開発だけでなく心の軸になっているんですね。その中でも特に実現していきたいことはあるんでしょうか。

今、リアーキテクチャや技術スタックの更新を進めているのですが、特にサーバレスアーキテクチャへの移行に力を入れています。

現状のプロダクトはAWS EC2の上にフルスタックフレームワークを用いて構築された、いわゆるモノリシックなWebアプリケーションが中心となっています。ユアマイスターは繁忙期と閑散期の差が激しいビジネスなので、常に繁忙期のアクセスピークを見越した現在の構成はコスト面で無駄が大きいです。サーバレスアーキテクチャの導入によってコンピューティングリソースの最適化を実現することは、この問題を解決するよい方策だと思っています。

もうひとつの効果として期待しているのは、システムの保守・運用が今よりも楽になることです。モノリスの課題としてよく言われる密結合問題ですが、サーバレスアーキテクチャの導入をすることで疎結合であることを半ば強制されます。副次的に、CI/CDのレベルが上がったり、普段の開発プロセスが改善されたりするのではないかと考えています。

少人数のチームなので、メンバーがどれだけ多くの時間を機能開発に充てることができるかを重視しています。テクノロジー戦略で宣言した目標を達成するには、システムが疎結合であることと運用が容易であることが非常に重要だと考えています。

技術的なチャレンジも大きいですが、今のメンバーが真面目で吸収力も高いので難しい話ではないと思っています。

ーー今後が楽しみですね!次回はサーバレスアーキテクチャやテクノロジー戦略の詳細について教えてください!

はい、よろしくお願いします。

画像3

Profileーー

福田 雄貴
東京大学工学部を卒業後、Webエンジニアとして新卒で楽天株式会社に入社。
海外プロジェクトや開発マネージャーを経験した後、技術力を鍛え直すために株式会社ディー・エヌ・エーに入社し、さまざまなプロジェクトを経て2021年3月にユアマイスター株式会社にジョイン。

Slackの個人チャンネルで毒を吐いては美味しそうな食べ物の画像でごまかしているのを楽しみにしているメンバーは多い。著書に『実践Firestore』『Nuxt.jsとFirebaseを使って爆速で何か作る前に読む本』など。

ユアマイスターではエンジニアを募集しています
少しでもユアマイスターに興味をお持ちいただけたら、まずは一度カジュアルにお話ししませんか?
ぜひ、下記リンクから採用情報をチェックしてみて、お気軽にご連絡ください!

また、テックブログもございますので、ぜひご覧ください!

★YOURMYSTAR ENGINEER
ぜひエンジニアチームの紹介資料もご覧ください!



「人々の大事なものがより大切にされる社会へ導く」をテーマに「YOURMYSTAR(旧:あなたのマイスター)」「YOURMYSTAR STYLE(旧:RELIVRES)」「ビルメンクラウド」を運営しています。 https://corp.yourmystar.jp/