レバレジーズの急成長を支える開発組織の大改革

技術スタックの刷新により開発速度向上を目指す

レバレジーズではいくつものサービスが開発され続けており、創業からわずか15年で30以上のサービスが誕生しています。レバレジーズの急速な事業拡張を支える開発組織では、ユーザーによりよいサービスを提供することを目的として、技術スタックの大幅な刷新を行いました。その3つの重大施策と、開発組織の今後の取り組みについてご紹介します。(編集:長谷川)

f:id:leverages200546:20201008130812p:plain

開発組織の新方針と、その背景

技術の力で顧客の人生を通したサポートを 

 現在IT・医療・介護・若年層・海外を主力ドメインとして事業を展開するレバレジーズでは、各領域で複数の関連サービスを開発しています。例えば、当社の基幹サービスである「レバテック」では、エンジニア向けのキャリア支援を中心にすでに8つの関連サービスを提供しています。今後さらに技術教育や技術イベントサポートなど、エンジニア生活を豊かにしたり、エンジニア一1人ひとりのステージに合わせたサポートを行っていける事業を新規/追加開発していく方針です。そこで課題として見えてきたのが、複雑な開発体制を事業展開スピードに対応できるようにすることでした。

 これらの課題を解決すべく、開発組織では「マイクロサービス化」と「DDD/クリーンアーキテクチャの採用」「TypeScriptへの言語切替」の3つの施策を進めています。これにより、「レバテック」のビジョンである『エンジニアPMの日本一の相談相手』を実現していきます。
  f:id:leverages200546:20201008140904p:plain

3つの重大施策

①マイクロサービス化

 マイクロサービス化とは、サービスを複数の小さな機能に分けて開発し、それを連携させることで1つのサービスを構築するアーキテクチャのことを指します。このマイクロサービス化を行うことで大きく2つの効果を狙っています。

 第一に、改善速度の向上です。エンジニアのSES事業を行う「レバテックフリーランス」では、現在「登録」「求人検索」「スキル登録」など、サイト内の全ての機能を1つのプログラムで開発するモノリシックな状態になってしまっています。しかし今のモノリシックな状態だと、バグフィクスや機能追加に対して影響範囲が広くなることでコストかかり過ぎて事業の展開スピードに対応できなくなっています。共通基盤をマイクロサービス化することにより、変更の影響範囲を狭めて改善速度を向上させられます。

 第二に、シナジー効果の創出です。現在レバテックキャリア、レバテックルーキー、Teratailなど複数のサービスで共通する機能を別々に開発しており、データも分断されてしまっています。共通する機能でマイクロサービスを共有することにより、新規開発のコストを下げられるだけでなく、分断されたデータを統合し、サービス同士のシナジー効果を生み出すことが期待できます。

②標準技術スタックの策定

 標準技術スタックとして、新しくDDD/クリーンアーキテクチャ、gRPC、Docker仮想化、Nuxt.jsなどを採用します。現在は、サービス毎にフレームワークや設計思想などの技術スタックが違っており、別のプロジェクトにエンジニアが移ろうとしてもキャッチアップコストが高く、属人化している状態でした。そのため、基準となる技術スタックを定めることで、属人化を防ぎプロジェクト間の流動性を高め、優先度に合わせて柔軟にリソースを割り当てることが出来るようにします。

③プログラミング言語の変更

 これまでレバレジーズではPHPが主要の開発言語でしたが、TypeScriptへの全面的な言語切替を行います。現在のWebフロントエンド開発ではJavaScript系の言語が主流となっており、PHPではスキルセットの違いから手が足りないときに相互に助け合うことが出来ませんでした。それをTypeScriptに統一することで、フロントエンドとバックエンドの流動性が高まり、開発効率が向上します。

 また、エンジニアごとに自由にソースコードを書けてしまう動的型付け言語では、ソースコードの品質を一定に保つことが難しいのですが、静的型付け言語であるTypeScriptでは型により制約をかけることでソースコードの品質を担保できます。リファクタリングがかけやすいため、技術的負債の蓄積を防ぎ、長期間にわたり開発速度を維持することができます。

f:id:leverages200546:20201008130814j:plain

開発組織のこれから

エンジニアのキャリア開発を通して、社会への貢献範囲を広げる

 レバレジーズでは「顧客の創造を通じて関係者全員の幸福を追求し、各個人の成長を促す」を企業理念に掲げ、これまで社会に必要な事業を創り続けてきました。より良い顧客体験を追求してサービスの目指す世界を実現するために、大胆な開発体制の改革に踏み切りましたが、それは会社としての成長を促進するだけでなく、社内のエンジニア個々人のキャリアを広げることにも繋がります。

 また、アーキテクチャ変更に伴い組織編成や労働環境の整備、制度設計も行っており、「エンジニア」という枠にとわれず、技術を一気通貫して学べる環境を構築しようとしています。レバレジーズで働くエンジニアが、ビジネス作りや組織づくりなど開発以外の領域にも職能を広げ、自分たちの技術を顧客のため、そして社会のために役立てられるよう、会社として様々なチャレンジを後押ししていきます。

 今後は、SaaSなどの新領域へ参入することで世界に通用するビジネスモデルを展開していき、国境を超えた課題解決にチャレンジしていく予定です。レバレジーズの開発組織はまさに会社の急成長を支えるべく、再構築している真っ只中です。これから更に、社員の成長を促しながら世の中の発展に大きく貢献していける組織を目指し、共に組織をつくりながら国内外の新領域の問題解決に挑戦してくれる仲間を募集しています。