お読みいただきありがとうございます、CTOの久森です。 トグルホールディングスエンジニアアドベントカレンダーの9日目の記事です。
この1年間、トグルホールディングスのエンジニアチームは大きな変化を遂げました。 当初、2名から始まり、今では20名を超え30名を目指すまで成長しています。 ここに至るまでの背景について、少しお話ししたいと思います。
組織形成前夜
入社時点では、プロダクトは業務委託のプロジェクトマネージャーがオフショアに依頼し、研究開発も社外の会社に委託するような進め方をしていました。 社員は実質いないに等しく、本来数万円で済むようなクラウド利用料金なども野放図に使われていたり、そもそも文書なども管理されておらず、統制が取れていませんでした。 そのため、社内に知見が蓄積されず、技術開発のスピードや質に課題を抱えていました。 この状況を打破するために、社内のエンジニア組織を拡充し、プロダクト開発の主体を自分たちに取り戻すことに取り組みました。
開発環境の改善
まず何から始めるかについて考えた時、私自身がエンジニアとして入社したいと最低限思える環境の構築が必要だと認識し開発環境の改善に取り組みました。具体的には以下の点です。
- モノレポ化: 複数のプロジェクトを一元管理するためにモノレポ構成に移行し、コードの再利用性を高め、全体的な開発効率を向上させました。以前は、フロントエンドとバックエンドの両方でTypeScriptを使用していながら、型の共有が行われておらず、データ構造の不整合や冗長なコードが発生していました。この問題を解決するためにモノレポ化を進め、フロントエンドとバックエンドで型を共有する体制を整えました。これにより、データの一貫性が保たれ、コードの再利用性が向上し、開発効率が大幅に改善されました。この取り組みは、TSKaigi 2024でも紹介されています。
- devcontainerとGitHub Codespaceの活用: 開発環境の統一とセットアップ時間の短縮を図るために、devcontainerとGitHub Codespaceを活用しました。これにより、新しいメンバーが迅速に開発環境を整え、即座にプロジェクトに参加できるようになりました。devcontainerを使うことで、開発環境をコードとして管理できるため、各開発者が同じ設定の環境を容易に再現できます。また、GitHub Codespaceを利用することで、クラウド上に瞬時に開発環境を立ち上げることが可能になり、特に初期セットアップに要する時間を大幅に削減しました。これにより、オンボーディングの効率化が進み、全体の開発速度が向上しています。さらに、環境間の差異による問題を排除することで、チーム全体での統一感のある開発が可能となりました。
- データベース基盤にPlanetScaleを採用: データベースにはPlanetScaleを導入し、スケーラブルで信頼性の高いデータ管理を実現しています。PlanetScaleについては別日のAdvent Calendarで紹介していますので、そちらを是非ご覧ください。
- Engineering Handbookによる情報公開: 改善に取り組んできた社内の開発プロセスや技術スタックに関する情報をまとめたハンドブックを整備し、候補者や新メンバーにトグルの開発環境を具体的にイメージしてもらえるようにしました。特に、「バリューとポリシー」の章では、チーム全体の成果を個人の成果よりも重視し、開発者の生産性向上を徹底すること、そして積極的にフィードバックを受け入れる文化を推奨しています。また、「基礎研修」の章では、エンジニアとしての道徳や自己理解、効果的なコミュニケーションスキル、クリティカルシンキングとロジカルシンキングなど、エンジニアが持つべき基本的な知識やスキルを網羅的に取り上げています。これらの章を通じて、トグルホールディングスのエンジニアは共通の価値観とスキルセットを持ち、組織全体で一貫した品質と効率を追求しています。
採用プロセスの改善
まず、採用においては、エンジニア組織が大事にしていることや働く環境をしっかりと候補者に伝えることを大切にしてきました。 初期にはドキュメントが整備されていなかったため、面接時に口頭で説明するしかありませんでしたが、現在ではエンジニアリングハンドブックを整備し、候補者にトグルで働く環境を具体的にイメージしてもらえるようにしています。 また、面談では実際のコードやプロジェクトの進め方を候補者に見せることで、具体的な働き方を理解してもらうことも心掛けています。
トグルで育ち始めた文化
トグルのエンジニアチームの強みは、不動産業界という保守的な分野で先進的な技術を積極的に活用している点と、エンジニア自身が組織のカルチャー作りに関与できる環境があることです。 新しい技術を用いてプロダクト開発を進めること、そして自分たちの考えや意見が反映される職場環境は、多くのエンジニアにとって魅力的な要素ですし、それで実際に成果が出ているということも見逃せません。
例えばボキさんなど特に誰かに言われるでもなく環境改善を推進して、メンバーの開発者生産性を爆上げしてくれるなどがそのあたりを象徴しているように思います。
特に直近では、3度のカンファレンス出展を通じてエンジニアが自ら発信することの価値が組織内に伝わってきていると感じます。
長くこの業界にいる人はあまり気づかないでしょうが、ここ数年オフラインイベントが開催されなくなっていた影響で、若いエンジニアほどそうしたことを知らなかったりします。 しかし、ここに挙げた資料を発表したメンバーたちは、トグルで初めてこのようなアウトプットをしました。 私たちは新しいことに積極的に取り組み、自己刷新できる人材を評価していく人事的な方針があり、これからもメンバーにはどんどんインプット・アウトプットしていってもらえるような動きができればよいなと考えています。
今後強化するべき点
組織が急成長すると、少人数のころよりもより意識して効率的に機能するチームを作る必要があります。 各個人がリーダーシップを発揮し、小規模なチームで迅速に開発を進めることで、チーム全体が機能的に動けるようにしていきたいと考えています。
リーダーマインドの醸成に関しては、外部企業のcrayonzさんの社外研修を取り入れ、そもそもリーダーとはどういうものなのか、リーダーとしてどのように振る舞うのかということを体験研修で経験する機会を設けています。
小規模なチームで迅速に開発を進めるという観点では、マイクロチームの考え方を組織に取り入れていっています。 マイクロチームとは、小規模なチームでできる限りコミュニケーションラインを削減し、各個人がリーダーシップを発揮して効率的に業務を進めるためのチームづくりの考え方です。 これにより複数の小チームが迅速に開発し、チーム全体がより機能的に開発できるようになることを目指しています。
今後の展望
今後もビジネスの成功に向けて、速く機能するチーム作りを目指すと同時に、私たちの技術力やカルチャーを広く伝えるための情報発信にも力を入れていきます。 エンジニアが主体的にカンファレンスでの発表や技術ブログの執筆を行うことで、トグルの魅力をより多くの人に知ってもらいたいと思っています。 このアドベントカレンダーもメンバーが主導して取り組みが始まったもので、いよいよ本格的に「誰か1人がリードする」のではなく「組織の文化としての動き」になってきつつあります。
これからもトグルホールディングスのエンジニアチームは、まちづくりにDXで革新をもたらすため、挑戦を続けていきます。私たちと一緒に働いてみたいと思った方は、ぜひお気軽にご連絡ください!