Slide 1

Slide 1 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. ラクスの技術スタックを新陳代謝し開発 を加速させる取り組み 2021/08/04(水)RAKUS Meetup 開発戦略・マネジメント 技術推進課 岡本拓也 1

Slide 2

Slide 2 text

#RAKUSMeetup 岡本 拓也 ● Job ○ 株式会社ラクス技術推進課に所属 ○ 先行技術検証 ○ 非エンジニア向けの技術勉強会の開催 ● Career ○ 2017年〜Webエンジニア ○ Spring FW、AWS、Nuxt.js ○ Java研修講師、資格対策本の執筆 ○ 2020年〜株式会社ラクスに入社 ● Hobby ○ 野球 ○ 筋トレ ○ アウトドア ■ 釣り ■ キャンプ 2

Slide 3

Slide 3 text

#RAKUSMeetup 今日お話しする内容 ● 設立20年以上の開発組織が抱えていた、技術スタックの陳腐化に よる危機感 ● 技術スタックを陳腐化させないために、技術スタックを 新陳代謝して開発を加速させる技術推進課の取り組み 1. 技術推進課立ち上げの経緯と役割 2. 技術推進課の取り組みの紹介 3. 今後の展望 3

Slide 4

Slide 4 text

#RAKUSMeetup 技術推進課の紹介 4

Slide 5

Slide 5 text

#RAKUSMeetup 株式会社ラクス開発部のVISION VISION達成のために、組織力と技術力を強化しています 一方で・・・ 5

Slide 6

Slide 6 text

#RAKUSMeetup 技術力に関しては危機感が・・・ 6 ちょっとやばいか も・・・

Slide 7

Slide 7 text

#RAKUSMeetup 危機感① ソフトウェア業界のトレンドを十分にキャッチアップできていない ● 創業20年を迎え、一部サービスはレガシーシステムに・・・ ○ 技術スタックもどんどん陳腐化してく ● この状態で新サービスを立ち上げると、既存の技術スタックで開発をすることに ○ 新しい技術は開発効率や品質面で優れているはず ○ しかし、立ち上げ時に新技術を検証している時間がない ● 新サービス開発時の生産性向上が見込めないのでは 7

Slide 8

Slide 8 text

#RAKUSMeetup 危機感② 後発の競合他社に技術的に優位に立たれてしまうのでは ● 次々と競合が誕生するBtoBのSaaS領域 ● 後発の競合サービスに、 機能開発速度やサービスの品質面で技術的な遅れをとってしまうのでは ● 採用面でも不利になる可能性も 危機感はあるものの・・・ 8

Slide 9

Slide 9 text

#RAKUSMeetup 危機感はあるものの ● 新しい技術を検証し、導入することが困難であった ○ サービス開発が優先で時間的制約が多い ○ このままでは危機感が現実に ● 技術トレンドをキャッチアップ・習得する専門の組織を立ち上げ ○ 新しい技術を必要な時にいつでも利用できる体制を整える →技術推進課 9 技術の更新 もしたいけど 開発優先

Slide 10

Slide 10 text

#RAKUSMeetup 技術推進課 ● 新技術を調査・検証する専門の組織として2020年立ち上げ ● Mission ○ 高い技術力を生かし、エンジニア組織の開発速度アップに寄与する ● 役割 ○ ラクスでは導入できていない新技術の調査・検証 ■ 新サービス立ち上げ時の開発速度アップ ○ 各サービス開発チームへの新技術の提案、導入支援 ■ 既存サービスの新規機能開発速度アップ 10

Slide 11

Slide 11 text

#RAKUSMeetup 危機感を解決するための取り組み ● 技術ロードマップ ○ 5年後までにラクス開発部が蓄積すべき技術要素をまとめたもの ○ 経年に陳腐化するため毎年更新している ○ ラクスがSaaSを開発していく上で必要な技術のみを掲載 󰢏 Kubernetes・FIDO2・Deep learning・SPAセキュリティテスト 󰢃 ブロックチェーン、ゲーム関連技術 ● 技術ロードマップの技術の習得方法として技術推進PJ 11

Slide 12

Slide 12 text

#RAKUSMeetup 技術推進PJの紹介 12

Slide 13

Slide 13 text

#RAKUSMeetup 技術推進PJ ● 概要 ○ 技術ロードマップの未習得の技術を習得するための研究開発PJ ○ ラクス開発部で習得できていない新技術を組織として習得する ○ 1年で7〜8テーマのPJが動いている ● メンバー構成 ○ リーダー1名+メンバー1〜2名 ○ 技術推進課のメンバー or 各サービス開発チームのエンジニアが参加 ● 期間 ○ 週5時間の稼働で半年間、調査・検証・成果発表を行う 13

Slide 14

Slide 14 text

#RAKUSMeetup 技術推進PJの事例(モバイルクロスプラットフォーム) ● ラクスの課題 ○ 開発チームはWebエンジニアがメインで構成されている ○ 既存サービスや新サービスでモバイルアプリの開発要件があった場合、 モバイルアプリ開発にかかる工数を削減できるツールを習得する必要がある ● 調査・検証内容 ○ 以下の観点でネイティブアプリと比較して開発の省力化を評価 ■ 開発環境、学習コスト、実装コスト、ネイティブ機能実現 ○ Ionic Framework、React Native、Flutterとネイティブアプリ (Swift、Kotlin)を比較 14 VS VS

Slide 15

Slide 15 text

#RAKUSMeetup 技術推進PJの事例(モバイルクロスプラットフォーム) ● 結論 ○ Flutterが最も開発を省力化できる ■ デバッグツールやプラグインが高機能でネイティブと遜色がない ■ DartがWebアプリエンジニアにとって学習コストが低い ○ モバイルクロスプラットフォームの技術検証 - RAKUS Developers Blog | ラクス エンジニアブログ ● 成果 ○ あるサービスで新規でスマホアプリ開発の要求が上がっており、外注も視野に入れ ていたが、検証結果を元に提案することでFlutterでの内製に決定 ○ 開発速度アップに寄与・新技術をいつでも使える状態 15 󰢏

Slide 16

Slide 16 text

#RAKUSMeetup 技術推進PJの事例(GraphQL) ● ラクスの課題 ○ ビジネスドメイン知識に基づいて構築されるバックエンドと、柔軟に変化・多様化す るフロントエンドの間で柔軟なデータ通信を可能にしたい ○ GraphQLが解決策となり得るか、運用上の課題についても検証する ● 調査・検証内容 ○ モノリシックなアプリケーションと、BFFアーキテクチャのアプリケーションに GraphQLを導入してみる ○ スキーマファーストな開発により柔軟なデータ通信が可能かを検証 16 GraphQL ➕ ➕ ➕ モノリシック BFF

Slide 17

Slide 17 text

#RAKUSMeetup 技術推進PJの事例(GraphQL) ● 結論 ○ GraphQLを導入することでFEとBEの実装を切り離せて疎結合にできる ○ FEとBEは定義ファイルの情報を元に必要なデータのみを取得・提供できるので、柔 軟なデータ通信を実現できる ○ GraphQLのアプリケーションへの組み込みを考える - RAKUS Developers Blog | ラクス エンジニアブログ ● 成果 ○ 検証→導入という流れではないが、楽楽明細で運用改善でGraphQLを導入 ○ 研究結果とサービスでの導入実績で新技術をいつでも利用できる状態 17 お互いどう実装してるかは知らない フロントエンド バックエンド

Slide 18

Slide 18 text

#RAKUSMeetup その他のテーマについて ● その他テーマ ○ 無停止リリース・AutoML・マイクロサービス ・CSSプラットフォーム ● RAKUS Developers Blogで「かみせん」と検索 かみせん カテゴリーの記事一覧 - RAKUS Developers Blog | ラクス エンジニアブログ 18

Slide 19

Slide 19 text

#RAKUSMeetup 技術推進課の今後の展望 19

Slide 20

Slide 20 text

#RAKUSMeetup 今後の展望 ● 新サービス立ち上げ時の開発速度アップに寄与する ○ 技術ロードマップの技術を習得しラクスの技術スタックを 新陳代謝させてく ○ 習得した技術を新サービス立ち上げ時に導入して開発速度をアップ ● 既存サービスの技術的課題への取り組み ○ サービス固有の技術的課題に対応していく ○ 新機能開発時の開発速度アップや運用コストの削減に寄与する 20