WealthParkのエンジニア組織について(2022年版)
WealthParkでVPoEをしています、藤井@taka_ftです。
WealthParkのエンジニア組織の紹介記事を書き、早2年が経ちました。
https://takahirofujii.dev/ja/articles/wealth-park
ありがたいことにWealthParkに興味を持って頂いた方で、ブログを読んでくれる方も多いです。一方でこの2年で色々と変わったこともあります。実情との乖離も出てきたので、改めて現状をここに記そうと思い、記事を書きました。
何をしている会社
WealthParkは、
すべての人へ
オルタナティブ資産への
投資機会を
をミッションに掲げる、不動産テック、フィンテック企業です。
不動産、アート、ワイン、未上場株式、インフラ。
WealthParkはグローバルなプラットフォームをつくることで、一部の限られた人にしかアクセスできなかった「オルタナティブ資産への投資」を開放します。 テクノロジーを使って、すべての人が平等にオルタナティブ資産への投資機会を得られる社会を目指しています。
具体的なプロダクトとしては、WealthParkビジネスという、不動産管理会社、不動産オーナー様向けのプロダクト・サービスを提供しています。
下記の会社紹介資料も合わせて見ていただけると、全体感が分かると思います。
エンジニア組織
2年前と変わらず、今日においても、WealthParkのエンジニア組織は非常に国際色豊かで、様々なバックグラウンドを持つ人が集まった、多様性に富んだ組織となっています。
もともとエンジニア組織にはほぼ日本人がいない状態だったこともあり、いわゆる日本人中心からグローバル組織に舵を切ったわけではなく、元からグローバルな組織として育ってきたことも特徴の一つです。
一方、ビジネスの主戦場は日本であり、近年は私だったり、数名の日本人のメンバーも参画し、より高い鮮度で課題を理解し、問題解決を実行できるように、最適なバランスやプロセスを模索しています。
※ 通常業務のコミュニケーションは全て英語で行われています。
お陰様でこの2年で会社、ビジネス、エンジニア組織としても成長することができ、今は2年前と比べて約2-3倍のエンジニア組織となり、組織の形も大分変わりました。今では、なんと18ヵ国(!)もの国籍のメンバーがWealthParkのプロダクト開発に携わっています。
組織図
WealthParkのプロダクト開発の体制についてです。
まず、プロダクト開発を担当する部は大きくEngineering、Product(事業毎に部が分かれている)、Designがあり、これらの各部が連携してプロダクト開発を主導しています。私はVPoEとして、エンジニア組織をマネジメントしています。
次にエンジニア組織についてですが、2年前とはかなり状況が変わっています。一部大まかにしていますが、概ね下記の体制です。
組織が拡大したことにより、エンジニアリングマネジメントや、プロセスマネジメントの必要性が高まりました。
VPoE Officeという形で、横断的なマネジメントやプロセス改善を行なっているメンバーを配置しています。具体的には、Engineering Manager ※, Program Manager, Agile Coachが所属しています。
※ ここでのEngineering Managerはより横断的なマネジメントに注力しており、FrontEndやBackEndなどの各チームにもEM的な動き方をしているメンバーがいます。
組織図上の組織はいわゆる職能別の組織体系となっています(プロダクトや事業で組織が分かれていない)。一方、会社の成長に伴い、新規事業も始まっています。新規事業に関しては、可能な限り独立して進めていく為にチームを分けて進めています。一方で横断的にアーキテクチャや技術スタックについては議論がなされることもあります。
組織変更については、状況に応じて比較的頻繁に変更を行なっています。組織の規模が増えてきているので、今後も変わり続けていきます。
2年前と比較すると、Security、Agile Coach、 Engineering Manager、 Program Managerといった新たな役職やチームが増え、より大きな組織になっています。
エンジニアリング組織とは独立する形で、コーポレートエンジアリングチームも存在します。また、FrontEnd、BackEnd、QA組織は、一部でオフショア開発を活用しています。
多国籍なエンジニア組織
国籍が全てではないですが、WealthParkは非常に多様なバックグラウンドを持ったメンバーから組織が構成されています。英語で仕事をするというだけではなく、コミュニケーションのオープンさやフラットさは特徴の一つです。例えば、私はメンバーの年齢をあまり正確に把握していません。それを気にすることがほぼないということだったりもします。
また、海外のメンバーだけでなく、日本人のメンバーも一定増えました。日本の市場でプロダクト、ビジネスをやっていく上で、ローカルな力も必要です。加えて、グローバルな世界で活躍したいという優秀な日本のメンバーが会社に加わることで、より強いチームが出来つつあります。
このユニークさがより会社にフィットし、彼らが持っている力が会社の発展により繋がるようにしていくことは、私の一つの大きな責任だと考えています。
働き方
WealthParkでは、いわゆるハイブリット型で勤務することが一般的です。
WealthParkも漏れなくコロナの時代を経て、働き方が一定変化しました。WealthParkのエンジニア組織としては、コロナ以前からリモートワークの制度があり、リモートワークは一定行われていました(但し、週1回程度)。
現在はリモートワークの頻度が上がった状態で、明確な規則(週X回など)は特に設けず、各組織やチームごとで話をして、出勤の方法を決めています。(今後状況によってはまた見直すこともあるかもしれません。)
例えば、エンジニア組織のリーダー陣は月1回、オフィスでのMTGがあります。フロントエンドチームでは、木曜日を出社日とする(但し、強制ではない)、といった感じです。
フルリモート、ハイブリット、オフィスワークは色々な議論が各所でなされていますが、必要十分なコミュニケーションをチームのメンバーが問題なく出来ていると感じられるかどうか、が一つの大事な指標だと考えています。人によっては基本的にリモート、フルリモートで働きたい人ともいれば、一定の頻度でオフィスで顔を合わせてキャッチアップしたり、ご飯に行ったりすることを望むメンバーがいたり、なるべくオフィスで働きたいと考えている人がいたりします。
様々な違う意見を持つ人たちで議論をし、チームとして出した結論には価値があると考えています。
その中で一定オフィスで顔を合わせて議論をしたい、関係値を構築したい方は一定数いる為、WealthParkでは現在フルリモート体制を採用していません。※
ただ、テクノロジーの進化や、プロダクト開発の手法の変化などに伴い、状況は都度変わっていくと考えています。継続的に議論を行い、WealthParkにあった形を模索し続けています。
リモートで働きたい人も、オフィスで顔を合わせながら働きたい人も、どちらにも良い選択肢を提供できることがもし出来るなら、個人的にはチャレンジしたいところです。
※ 実際には、例外的にフルリモートをしていたり、海外からフルリモートで参画しているメンバーもいます。
オフラインでのコミュニケーション
日によりますが、少なくとも数名のエンジニアが出社していることが多いです。WealthParkでは、ランチやコーヒーに一緒に行くカルチャーがあります。ランチに一緒にいくことは多くの会社であることだと思いますが、WealthParkのエンジニア組織は会社に来ているエンジニア皆でコーヒーに行く文化は特徴的です。
大体午後3時頃になると、"コーヒー行く?"にというメッセージがSlackのチャネルに流れます。
別に皆がコーヒーが好きというわけではなく、近くのコンビニやカフェに飲み物を買いに行く時の散歩と会話が皆好きで、かつ、同じプロジェクトを担当していないエンジニアがどのような仕事をしているかを話せることにとても意味があります。
仕事以外の話ももちろん楽しいですが笑
会社に入ったばかりのメンバーのオンボーディングにも非常に有効ですし(色々な人と話をすることができる)、とても良いカルチャーです。
また、会社の有志のメンバーで休日に山登りに行ったりもしています。こういった形でのコミュニケーションをとっている方々もいます。
オンラインでのコミュニケーション
一方で、多くのメンバーが基本的にオンラインで働く環境下において、オンラインでのコミュニケーションは非常に大切です。
今年のRSGT 2022において、弊社のAgile CoachのMatteoと、リモートワークと信頼というテーマで発表をしました。
上記のスライドは英語ですが、日本語で内容を捕捉しているnoteもありますので、合わせて見ていただけると理解しやすいと思います。
また、会議ではmiroを利用しています。
最近では、Gatherも一部のチームで利用しています。チームのハドルなどは、Gatherですることが多くなりました。
メッセージのやりとりは、slackを利用しています。
また、カジュアルなオンラインでのコミュニケーションとしては、ゲームが好きなメンバーがオンラインゲームを一緒にやったりして、コミュニケーションを取っていたりします。
技術スタック
※ ここでは主な技術スタックのみを抜粋して掲載しています。
Code : gitlab
Mobile: Swift, Kotlin, Java
FrontEnd : TypeScript, JavaScript(React.js, Next.js), PHP
BackEnd for FrontEnd : Node.js, GraphQL
BackEnd : Go, Python, Ruby, Scala, PHP, AWS Lambda
QA : Zalenium, Selenium
Infrastructure: AWS, k8s, GitLab CI, ArgoCD, terraform
Monitoring : DataDog, Sentry
Other: Slack, Miro, Notion, Jira, Confluence
ここは書き出すとかなり長くなるので、ここでは概要を記載します。
各ソースコードのマネジメントはgitlabを利用しています。
モバイルアプリの開発は一部React Nativeを利用しているアプリもあるのですが、ネイティブ言語に統一していく方針です。SwiftとKotlinを使っています。
フロントエンドの開発は一部の古いアプリを除き、TypeScript * Reactで開発しています。規模の大きいフロントエンドアプリにはNext.jsを利用しています。
モバイル、フロントエンドと共にBFFを利用するアーキテクチャとなっており、BFFはNode.js * Graphqlで開発しています。フレームワークはNest.jsを利用しています。
バックエンドは歴史的な経緯もあり、やや複雑で多くの技術スタックを利用しています。現在は、基本的に新規のアプリはGoを利用して実装することが多いです。特定の用途で、Python、Scalaを新規プロダクトでも部分的に利用しています。WealthParkのエンジニアが全員全ての言語を担当できるわけではなく、アサインメントの柔軟さのチャレンジになっていますが、基本的にGoは全員できる or 取得してもらった上で、他の言語のプロダクト開発を一部担当する、ということが多いです。一部のプロダクトはAWS Lambdaを利用しています。
QAでは自動テストを社内で開発しており、Selenium周りの技術を利用してテストを組んでいます。
インフラは、基本的にAWSを利用しています(部分的にGCPを利用している箇所もあります)。コンテナ管理はk8s, コード管理はterraformを利用して行なっています。AWS周りの構成については現在かなりドラスティックに変更を加えているので、これが終わったらSRE組織を率いている @ryok6t がどこがで発表かまとめてくれると思います笑
モニタリングは、DataDogとSentryを利用しています。
フロントエンド, バックエンドの箇所にPHPの記載がありますが、これはモノリスなアプリとして稼働してるPHPのアプリがあります。という意味です。
開発プロセス
この点が一番書いておきたかったことかもしれません(2年前の状態からの乖離という点で)。2年前くらいからの様々な記事で、WealthParkはSpotify Modelを参考にした開発プロセス、手法を取り入れている、とうことを話してきました。
結論から申し上げると、今はSpotify Modelに準じた形での開発プロセスを適用していません。水平型組織という意味でのChapter、プロジェクト、プロダクト開発の組織の為のチームという意味でのSquadという言葉は使われることがありますが、現在はSpotify Modelを皆が意識し、それに準ずるという方針を取っていません。
Engineering ManagerやProgram Managerも入社し(1人目のProgram Managerが先日入社しました!)、開発プロセスをより洗練させるタイミングです。よりプロセスが確立されたタイミングでまとまった形で発信できればと考えています。 ※
とはいえ、この2年でかなりプロセスとして変化しています。
ここでは、大きく3つに大別できる現在のプロセスを説明します。(厳密には他のパターンも存在します)
既存事業(プロジェクト/新規機能)
既存事業のプロジェクトは、組織の規模もより事前にプライオリティのアラインメント、仕様のアラインメントを取るようになりました。
プロジェクト化されてされたプロジェクトは、1つのJiraボードに集約して全体感とステータスが確認できるようになっています。ここには、いわゆるタスクレベルのものは記載されません。組織が大きくなり、プロジェクトの数が増え、全体的なステータスを理解することが難しくなっていましたが、これによりプロジェクト単位でのステータスは一元的に把握出来るようになっています。また、要件定義書として、PRD(Product Requirement Document)を記載するプロセスも導入されています。PRDが記載されることで、プロジェクト開始前に一定のアラインメントを持って開発を進められるようになっています。
要件定義 + デザインがある程度固まると、開発に入りますが、開発開始以降のプロセスは今はチームや規模毎にまちまちなものとなっています。Squad的に1チームでSprintを回すこともあれば、Kanbanを利用してweeklyをするものもあれば、組織として複数プロジェクトを担当している場合は、プロジェクト単位ではSprintを回さずに進捗確認を継続的にしつつ、別の粒度でSprintを実施することがあります。(ここが、※の話と関連してきます)
既存事業(メンテナンス)
こちらはリリース後の対応(バグ、調査、軽微な修正、オペレーション)などのプロセスです。
以前はバグチケットはJIRAプロジェクト毎に個別に切られていたのですが、全体感を把握することと、横断的な優先度の優劣がつかないなどの課題がありました。メンテナンスに関しても親チケットは1つのボードに一本化しています。(その後、後続の作業でcloneされたり、linkによって、別プロジェクトのボードにチケットが移ることもあります)
全てのチケットは事前にトリアージ作業が行われ、Urgent, P1, P2, P3の優先度が振り分けられます。優先度に応じて目安となる期限やスケジュールを設定し、それを目標として個々のチームで対応を行います。
WealthParkではプロジェクト、メンテナンスを担当するエンジニアを厳密に分けていません。が、CRE組織を立ち上げ、徐々に担当領域を分離することを考えています。正しくいうならば、カスタマーにコミットできる体制と、プロダクトロードマップにコミットできる体制を両方実現したいです。今、WealthParkでは1人目のCREを募集しています。少しでも興味を持った方がいましたら、@taka_ftまで気軽にご連絡ください。
新規事業
新規事業については、また別のプロセスで開発を進めています。プロセスというよりは、大きな規模での新規プロダクト開発であるから、ということもあるのですが、初期のデータ設計、技術選定の議論とADR(Architectural Decision Records)の作成、などの初期開発のためのプロセスが追加されています。
その上で、全ての仕様、デザインが決まり切ってから開発を始めるわけではないので、要件定義と開発を同時に(スコープを分けて別の機能の、ですが)進めています。開発はSprint開発で進めています。
ADRは今回明示的にプロセスとして追加されていますが、良くワークしています。
プロセスも技術スタックと同じく、細かく話せる点はいくらでもあるので、また別の記事などでもう少し詳細に触れられればと思います。
プロダクト組織を知ることが出来る他の記事
本記事以外にも、WealthParkのエンジニアについて知ることができる記事はいくつかあります。特に他のエンジニアのインタビューは、私以外のメンバーが考えていることも感じ取れるのでおすすめです。
こうみると、非常に多くの発信をwantedlyでして頂いたなと改めて感じます。会社のHR, PRチームに感謝です。
小粋fm
友人と2人でpodcastをしています。WealthParkの話をたくさんしているわけではないですが、基本的に編集せずに録音しているので、藤井の人となりを知りたい、という場合はこちらを聞いていただくのが、一番嘘がないと思います笑
採用
採用についてです。WealthParkでは、引き続き様々なポジションを募集しています。少しでも興味を持っていただけたら、見て頂けると嬉しいです。
また、meetyでカジュアル面談も募集しています!グローバルなエンジニア組織に興味が、というテーマになっていますが、その他のテーマや選考を考えられていない状況での雑談などもwelcomeなので、気軽にご連絡頂けると嬉しいです!
インターン(学生の方へ)
WealthParkではインターンのエンジニアを募集しています。短期的なインターンではなく、中長期、あるいはアルバイトのような形で一定期間働けることが出来る方を募集しています。
インターン用の課題などを用意するわけではなく、基本的に実務にチームの一員として入ってもらうことを想定しています(あるいは力をつけてチームの一員として働いて頂く)
今年、インターンとしてWealthParkで働いていたメンバーが新卒として入社して頂きました!
海外の大学生の方でインターンに来て頂いた方もいます。海外の大学に通われている方も、もしも興味があればご連絡頂けると嬉しいです。(特に年次の制限はありません)
特にグローバルな環境で働くことを体験してみたい方がいらっしゃれば、非常に良い環境だと思います。(基本的に英語での業務を想定しています)多くの人数は募集しておりませんが、確実に成長できる環境を提供することをお約束します。
さいごに
さらっとですが、WealthParkのエンジニア組織を知っていただくために必要な情報をまとめました。それぞれの内容について深掘りはしていないので、もしより詳細な部分について興味がありましたら、気軽に @taka_ft までご連絡下さい。
また、エンジニアリングブログなどで、より技術的な話の発信などもしていければと考えています!
If you would like to see the article in English,
Sorry. This article is written in Japanese, but I am planning to write the same kind of article in English. We will also start our tech blog in English when we start it. I hope you can wait a little longer. If you have any questions, please feel free to ask me on LinkedIn or twitter (in English, of course).
Thanks : )
この記事が気に入ったらサポートをしてみませんか?