Slide 1

Slide 1 text

エンジニア 採用説明資料 株式会社ドワンゴ 教育事業 サービス開発部 1

Slide 2

Slide 2 text

目次
 2 事業 ………...…………………………………………….. p.3 組織と環境 ………...…………………………………………….. p.21 チーム紹介 Webフロント ………...…………………………………………….. p.29 iOSアプリ ………...…………………………………………….. p.40 Androidアプリ ………...…………………………………………….. p.48 品質保証 ………...…………………………………………….. p.55 サーバーサイド ………...…………………………………………….. p.59 フロンティア企画開発 ………...…………………………………………….. p.74 教務システム ………...…………………………………………….. p.85 SRE ………...…………………………………………….. p.102 選考・応募について ………...…………………………………………….. p.108

Slide 3

Slide 3 text

未来の「当たり前」の教育をつくる Vision / Mission ほんの少し先の未来、 ネットで学ぶときに「当たり前」とされるようなサービスを創るのは、 私たちにしかできない。 日々そう考えて企画開発しています。 それは教育の「当たり前」を変えること。 この前人未到の挑戦に、加わってみませんか。 3

Slide 4

Slide 4 text

ドワンゴの教育事業について
 4 というミッションのもと、
 N予備校※(学習プラットフォーム)を始めとした様々な学習を サポートするサービスを
 N高等学校/S高等学校や近畿大学などの教育機関へ提供し ています。
 また、月額課金による一般提供もおこない、
 ネットで学ぶときに「当たり前」とされるようなサービスの創造 に取り組んでいます。
 ※「N予備校」は2024年6月末に「ZEN Study」にリニューアル予定です 
 未来の「当たり前」の教育をつくる

Slide 5

Slide 5 text

ネットの高校 N高等学校・S高等学校は KADOKAWA・ドワンゴが創るネット と通信制高校の制度を活用した、新 しいネットの高校です。 生徒数は両校合わせて28,942名に なります(2024年5月7日現在)。 5

Slide 6

Slide 6 text

オンラインの大学 日本発の本格的なオンライン大学 ZEN大学 (仮称) 2025年4月 設置認可申請中です。 (詳しくは https://zen-univ.jp をご覧ください) 学習システム ZEN Study など 私達が各種システムを開発していま す。 6 (仮称) (設置認可申請中 )

Slide 7

Slide 7 text

7 8年間運営した「N予備校」から「ZEN Study」へリニューアル (2024年6月25日予定) 高校生だけでなく、大学生や社会人などすべての人が学べる 学習システムへ進化していきます

Slide 8

Slide 8 text

10年間の学びの活動をシステム・デジタル教材面で最大化することを主軸に 学習プラットフォームN予備校などサービスの一部を外部にも提供 「高校・大学」の価値を最大化する dwango 教育事業 学習サービスの 月額1100円提供 学習サービスの 学校法人や 自治体・法人への提供 豊富な教材 学習補助として のサポート 🏫N/S高 教務システム 価値を最大化 
 角川ドワンゴ学園
 日本財団ドワンゴ学園 (仮称) (設置認可申請中)

Slide 9

Slide 9 text

すべての人の学びを支える
 9 (仮称)(設置認可申請中) 10年以上の学びに答え続ける 中学 高校 大学・社会人 教科学習 大学受験 プログラミング Webデザイン 動画クリエイター

Slide 10

Slide 10 text

サポート プロダクト 学習サービス
 10 オールインワン学習アプリ 
 
 
 
 学校運営サービス 
 N/S高等学校
 マイページ
 N/S高等学校
 教務システム
 学習コーチング支援サービス 教材インポート Webサービス 学校生活を支える Webサービス 生徒の出願から卒業まですべ てのライフサイクルを管理

Slide 11

Slide 11 text

N/S高の生徒数推移とN予備校の進化 11 N高等学校 開校 N予備校 教務システム リリース 課外授業に加え 高校の授業を N予備校で提供開始 N予備校で 学年末テスト 提供開始 コロナ禍で N予備校 無償提供 S高等学校 開校 N予備校で VR教材提供開始 N/S高等学校へ N予備校LMS ZEN Compass 提供開始 累積ユーザー数は28万以上(2024年4月現在)

Slide 12

Slide 12 text

教材・ライブ授業・フォーラムをスマホ・PCに最適化した オールインワン学習アプリ スマホ・PCに 最適化された教材 なかまと受ける 双方向ライブ授業 なかまと話し教え 高め合いができる場所 N予備校 
 https://www.nnn.ed.nico/pages/introduction/feature/ 12

Slide 13

Slide 13 text

2021年4月からは最新のテクノ ロジーを使ったVR学習機能を サポートしています。 VR空間で学び・仲間と交流。 ネットの高校は、進化し続けま す。 13

Slide 14

Slide 14 text

N予備校サービスと、その技術① ←のような、「授業」「参考書」「問題集」等をコンテン ツ素材として管理 先生や問題作成者がコンテンツを作れるよう、 HTMLに独自タグやスクリプトを組み込んだ仕様を策定 iOSアプリ(Swift)、Androidアプリ(Kotlin)、 PCブラウザ(React + TypeScript)で提供 動画部分のみネイティブ化するなど、よりよいユーザー体験 を求めて改善 14

Slide 15

Slide 15 text

N予備校サービスと、その技術② 「問題に正答した」「章を理解した」など、 学習者の進捗度をサーバ+データベースで管理 Ruby on Rails、AWS Lambda 等を利用 マイクロサービスで開発効率を維持し、変化に対応 問題、成績、Q&A、プロフィール… VR対応もKubernetesで各 サービスをインフラストラクチャに展開 N/S高生徒は、進捗度が先生にレポートされる 先生が多数の生徒を効率良く指導できるシステムを構築 15

Slide 16

Slide 16 text

数万人に達する生徒の 出願⇒入学⇒進級⇒卒業 までの管理業務や、 定期テスト・スクーリングなどの活動・成績の管理を、 なるべく少ない教職員で効率的に行えるよう自社開発。 教務システム 
 16

Slide 17

Slide 17 text

次世代N予備校で目指すこと ❶ 17
 2022年頃のN予備校の状況と課題 開校から6年、ネットの学習で高卒資格が取れる「仕組み」を作るのが最優先 
 N/S高生の多くが「必修」の学習を終えると離脱してしまうため
 大学受験の学習については継続率が悪く、
 結果として進学を諦める・目標大学を下げている生徒が多くいた
 N予備校を学力を向上できるプラットフォームにする
 取り組みとして
 次世代N予備校プロジェクトを推進


Slide 18

Slide 18 text

次世代N予備校で目指すこと ❷ 大多数の人にとって、学習(特に高校生にとっての受験勉強)は 「できればやりたくない」 「でも、やらなければいけない」もの であることを認めたうえで、 学習を続けられる・したくなる仕組みをつくる 18
 具体的には、 ミクロからマクロまでの学習サイクルの整備と、 各画面での報酬設計・迷わない仕組みをつくる


Slide 19

Slide 19 text

次世代N予備校でやってきたこと 19
 学習を締切ごとに見えるビューを作成し
 学習サイクルの可視化を行う
 自分のやってきた学習の量の可視 化を導入、初見も復習もどちらにも 使えるフィードバック
 クリア演出追加し
 小さい学習サイクルでの
 「褒め」を入れる
 コーチング支援Webサービス
 ZEN Compassをリリースし
 N/S高等学校・N中等部へ提供
 行動履歴基盤の構築
 教育事業の
 データの中心地としての活動
 項目反応理論を応用した学力定量化への取 り組み(※後述)
 2024年までにも様々な機能開発を 
 行ってきました
 引き続き挑戦を行っていきます! 


Slide 20

Slide 20 text

次世代N予備校で目指すこと ❸ 学力を定量的・効率的に測定できる仕組みづくり 生徒は、 N予備校で学習はしているが、 本当に身についているのか 目標大学に受かるのか 外部模試など受けないとわからない 生徒自身がN予備校だけで、 現状と目標のギャップがわかるようにする IRTを用いた学力の定量化 (※IRT=項目反応理論) 好きな時に得られる学力FB アダプティブなテスト 学力に応じた学習サポート 「あなたの学力は現在500です」 「目標の foo大学 bar学部は1000目安です」 現状 今後 20


Slide 21

Slide 21 text

組織 と 環境
 21

Slide 22

Slide 22 text

全社 組織体制
 教育事業本部 N予備校や学園に関する業務 サービス開発部 N予備校や学校管理システムの開発・保守・運用 コンテンツ開発部 N予備校の教材制作、授業運営、カスタマーサポート 他の本部 ニコニコ事業本部など N高等学校・S高等学校の運営 その他の部 学園との協働やバックオフィス 22 ココです

Slide 23

Slide 23 text

スマホアプリ セクション iOSアプリ グループ Androidアプリ グループ Webフロント セクション バックエンド セクション サービス開発部 組織体制
 デザイン セクション SRE セクション 学校プラットフォーム セクション 品質保証 セクション フロンティア 企画開発 セクション 教務システム 23 教材基盤開発 セクション 学校プラットフォーム 開発 セクション ※「N予備校」は2024年6月末に「ZEN Study」にリニューアル予定です

Slide 24

Slide 24 text

使用言語 / 技術 / ツール
 言語 / フレームワーク インフラ / 運用管理 ツール 24 GitHub Copilot

Slide 25

Slide 25 text

働き方 エンジニアは原則としてテレワーク(在宅勤務)
 です。(※月額20,000円の手当あり)
 
 教育事業本部サービス開発部エンジニアの
 テレワーク率実績は 100% となっています。
 
 テレワーク開始以来、北海道から九州まで
 全国各地のなかまが増えました!
 
 また、裁量労働制で働く時間も比較的自由です。 25


Slide 26

Slide 26 text

制度・福利厚生 26
 リフレッシュ休暇 有休とは別に毎年付与される休暇です。まとまった休暇 が取りやすくなる制度のため夏季や年末年始に利用す る方が多いです。 ※一般的な産育休や慶弔休暇といった制度もあります。 対象資格を取得すると、 月額2,500~50,000円を3年間支給します。 (一部、1年間のものや退職までのものもあり ) 対象資格例: ITストラテジスト システムアーキテクト プロジェクトマネージャ ネットワークスペシャリスト データベーススペシャリスト 情報処理安全確保支援士 システム監査技術者 ※2022年11月時点で37個の資格が対象。 ※入社後に取得した資格が支給対象となります。 業務により公共交通機関を使って出社した際の費用を支給します。 テレワーク勤務者: 通勤に要した実額を経費として支給 非テレワーク勤務者 : 通勤経路の定期代相当額を手当として支給 ※上限月額 50,000円 資格取得手当 会社が契約をする賃貸マンションに入寮日より 2年間入居できます。 入寮条件をクリアする必要があります。 間取り等を選べませんが、築浅マンションに安価に入居することができます。 入寮に伴う引越費用も会社が負担いたします。 テレワーク手当 テレワーク勤務者を対象に電気代及び通信費等並びに就業環境を整えるための手当です。 月額20,000円を支給します。 通勤交通費手当 社員寮 ※新卒社員のみ対象 休暇 ※歌舞伎座タワーより 100km圏内での勤務を原則としていますが、  一定の条件を満たし、会社承認が下りた場合、  遠隔地(歌舞伎座タワーより 100km以遠)勤務も可能です (国内のみ)。

Slide 27

Slide 27 text

制度・福利厚生 27
 満3歳未満のお子さんを養育する場合、育児休業 の取得が可能です。 「育児・介護休業法」で定められた最長 2歳までの 期間よりも長く取得が可能です。男女ともに取得実 績があります。 育児休業 小学校入学までのお子さんを扶養しており、保育園 などの育児サービスを継続的に利用する場合、そ の月額基本料金の2分の1相当額を、上限50,000 円まで育児手当として支給します。 育児手当 小学校卒業までのお子さんを養育する場合、勤務 時間の短縮が可能です。 標準勤務時間は1日 8時間ですが、5時間、6時間、 7時間から選択可能です。 育児短時間措置 同好会 公認の同好会は、会社より補助金支給 LT大会 職種ごとに、持ち回りで 5分ほどの短いプレゼン大会を開催しています Slack 社内で用いているコミュニケーションツール。 publicなチャンネル数は5,966     ※2022/10現在 ドワンゴ大忘年会  1年の振返りや社内表彰などを行います ※任意参加です コミュニケーション活性 artifata GINZA KABUKIZA店 会社の中に美容院があります! 施設 サブスク手当 社員のクリエイティブな発想を支える施策として、会社指定のサブスクリプションサービスに契約している場合、 月額2,000円を支給 健康保険組合各種サービス 関東ITソフトウェアの保養施設やスポーツ施設が特別価格で利用可能) 財産形成制度 財形貯蓄制度、社員持ち株制度 その他 子育て支援

Slide 28

Slide 28 text

28
 ©DWANGO Co.,Ltd. All rights reserved. 
 数字でみるドワンゴ ※在籍社員数


Slide 29

Slide 29 text

N予備校
 
 Webフロント 
 チーム
 
 29


Slide 30

Slide 30 text

Webフロントチームの担当範囲 アプリケーション Webフロントエンド 教材コンテンツ フロントエンド 主にPC向けの体験を提供 PC/SP双方に 共通の体験を提供 1 2 30
 LMS ZEN Compass 3 指導者向け管理ツール ※「N予備校」は2024年6月末に「ZEN Study」にリニューアル予定です

Slide 31

Slide 31 text

アプリケーション Webフロントエンド 1 31


Slide 32

Slide 32 text

アプリケーションWebフロントエンドの見どころ
 不確実性と戦うために常に変化し続ける
 いわゆるふつうのSPA React(hooks) React Router Redux + Redux-Observable TypeScript styled-components Ruby on Rails view上の React ReactやjQuery page.js, slim Redux TypeScript 身軽なSPA React(hooks + Suspense) React Router React Query, etc… TypeScript styled-components 脱Railsべったり
 リリース当初の実装から脱却
 これは目立つ事例、常にすべてを見直し続ける
 サービスの性質を考慮し
 多方面に身軽にしやすく変化
 32


Slide 33

Slide 33 text

アプリケーションWebフロントエンドの今後 素早く仮説検証が可能な状態の確立 より柔軟なフィーチャートグル、ABテスト等を可能にしたい 変更が容易かつメンテしやすい形に寄せ、保つ ex. 画面どうしが独立になるように寄せ、互いを知る必要をなくす ex. 多くの画面でReduxは不要、暗黙の依存を作りやすいのでやめる パフォーマンスの向上と維持 計測体制を確立、当たり前品質を維持 アクセシビリティ向上と維持 機械判定できる最低限を確保済(WCAG 2.1 Aの一部相当) 判定が難しい領域でも、持続可能な形の確立を目指す
 33
 サービスの変化とその先の世界を見据えて

Slide 34

Slide 34 text

教材コンテンツ フロントエンド 2 34


Slide 35

Slide 35 text

教材コンテンツフロントエンドのあらまし 一定のフォーマットに従うHTMLから、コンテンツを再生
 Android N予備校 アプリ iOS N予備校 アプリ N予備校 Web 教材コンテンツ フロントエンド TypeScript + React 教材 HTML 参考書 問題集 選択式問題 記述式問題 論述式問題 … 35


Slide 36

Slide 36 text

教材コンテンツフロントエンドの今後 Webのプロではない教材作成者への支援を充実させる 教材作成者しか知りえない知識を織り込ませるよう補助する img要素のalt属性にこういう情報を埋めてほしい、など提案する 問題のある記述へのより早いフィードバックの仕組みを作る プレビュー画面やLintのような道具を確立させる よりスムーズな学習体験のために 問題が読めるようになるのは速い方がいい! 特に数式のレンダリング速度をなんとかする ブラウザでできることは当たり前にできたほうがいい! たとえば、キーボード操作だけで問題を解き続けられるようにする Webの技術に乗った教材という資産の価値を守り、高めていきたい 36


Slide 37

Slide 37 text

LMS ZEN Compass 3 37


Slide 38

Slide 38 text

LMS “Compass”フロントエンドの見どころ N/S高のメンターさんが生徒のN予備校の学習状況を把握するアプリ 技術的みどころ Next.js v13 (Static HTML Export) GraphQL (urql + graphql-codegen) バックエンドとmonorepoで開発 課題、今後 不足しているテストの追加 リリースや依存パッケージ更新作業などの運用の見直し・自動化 まだβ版なのでこれから開発する機能が沢山あります 38


Slide 39

Slide 39 text

Webフロントチームについて ● 総勢13名(2023年11月時点) ○ 社員11名、業務委託2名 ● GitHub Enterprise上でPR中心の開発 ○ 厳しく優しくレビューしています ○ CIでのテストの他、外観差分やPRごとのStorybookなど整備しています ● 特に担当コードベースの概念はない ○ 事実上の主担当はあるが、壁は設けていない(見直すかも ● 1週間のスプリントで計画&振り返り ○ 5分程度のデイリーミーティングで毎日状況共有 ● 週1回のチーム内Webフロントエンド勉強会 ○ 世のトレンド把握からWebまわりの仕様把握、業務知識共有まで 39


Slide 40

Slide 40 text

N予備校
 
 iOSアプリ 
 チーム
 
 40

Slide 41

Slide 41 text

iOSチーム 41 6名(社員4名、業務委託2名) 現在も採用中 1週間のスプリントで計画&振り返り デイリーミーティングでやることや課題の相談など GitHub.com で開発 CI+コードレビューで品質を担保 ※「N予備校」は2024年6月末に「ZEN Study」にリニューアル予定です

Slide 42

Slide 42 text

iOS 開発環境 サポート対象OS iOS 16.0 以上 42 言語 Swift 5.9.2 Ruby, Bash, SQL ライブラリ(一部抜粋) 標準:UIKit, SwiftUI, AVFoundation, WebKit リアクティブプログラミング:RxSwift, Action UI:SnapKit 通信:Alamofire, WebSocket テスト:Quick, Nimble, Mockolo ツール(一部抜粋) XcodeGen SwiftPM SwiftGen SwiftLint fastlane Danger

Slide 43

Slide 43 text

iOS アーキテクチャ View MVVM
 ViewController Storyboard ViewModel ViewModelInputs ViewModelOutputs Model, Repository RepositoryProtocol テストあり 依存あり SwiftUI View 43

Slide 44

Slide 44 text

iOS 最近の主なリリース 1/2 44 N/S高生の必修レポートの進捗と締切が確認できる機能を追加 必修レポートタブと、月別レポート画面を追加

Slide 45

Slide 45 text

iOS 最近の主なリリース 2/2 45 ユーザー画面に学習数グラフと数字を追加 SwiftUI による画面リプレイス など

Slide 46

Slide 46 text

iOS チームの取り組み 朝会(毎日) チーム活動振り返り(週1) 勉強会(週1) プロダクト開発に関連する技術の情報共有や LT 例)Swift、SwiftUI、SwiftLint、Google Analytics など 案件対応 仕様策定、開発、リリース 運用・保守 コードや CI の改善、ドキュメント整備、アクセスログ調査、便利ツールの開発な ど 46

Slide 47

Slide 47 text

iOS その他の開発 マルチモジュール対応 段階的な Swift UI 移行 全クライアント共通 UI フレームワークの内製ライブ ラリのメンテナンス Swift Concurrency の導入検討 リリース作業効率化 アプリ内デバッグ機能の拡充 47

Slide 48

Slide 48 text

N予備校
 
 Androidアプリ
 チーム
 
 48

Slide 49

Slide 49 text

Androidチーム 6名前後 1週間単位のスプリントでチケット駆動開発 デイリーミーティングで開発状況の共有と困りごとの相談 Pull Requestの作成・レビューを素早く回すことで、コード品質の担保と開発速度の向上を実 現 GitHub Enterprise Cloud で開発 新機能の実装とリファクタリングを同時進行 49 ※「N予備校」は2024年6月末に「ZEN Study」にリニューアル予定です

Slide 50

Slide 50 text

Android 利用技術 サポート対象OS Android 9.0 以上
 使っている技術
 使いたい技術
 Kotlin
 Coroutines Flow
 Navigation
 Jetpack Compose
 media3
 ViewModel, LiveData
 Retrofit
 moshi
 Dagger Hilt
 
 50

Slide 51

Slide 51 text

Android アーキテクチャ モジュール構成図
 app app アプリのエントリーポイント ui home ホーム画面の UI domain data forum フォーラム画面の UI lesson 授業画面の UI setting 設定画面の UI common 共通の UI material 教材画面の UI home ホームのロジック forum フォーラムのロジック lesson 授業のロジック setting 設定のロジック common 共通のロジック material 教材のロジック repository データを取得 contract インターフェースの定義 datasource データの定義 51

Slide 52

Slide 52 text

Android 最近のリリース ホーム画面リニューアル
 動画を続きからみる機能
 52

Slide 53

Slide 53 text

新機能の開発 他チームと協力しながら仕様の作成、実装、リリース アプリの品質向上 ライブラリの刷新、技術的負債の解消など チームのサポート コードレビュー、勉強会の進行など 知見の外部共有 技術ブログの執筆、教材の制作など Android チームの取り組み 53

Slide 54

Slide 54 text

Android その他の開発 Jetpack Compose の導入
 Edge-to-Edge の採用
 DataStore で安全にデータを保存
 DroidKaigi のスポンサー
 開発者ブログより 54

Slide 55

Slide 55 text

N予備校 / 教務システム
 
 品質保証
 チーム
 
 55

Slide 56

Slide 56 text

品質保証チーム ● チーム体制 (2024/5/1時点) ○ N予備校・ZEN Study:3名 (社員2名、派遣社員1名) ○ 高校教務システム:5名 (社員1名、業務委託4名) ○ ZEN Compass:2名 (社員1名、派遣社員1名) ○ 大学関連:3名 (社員2名、派遣社員1名) ○ マネージャー:1名 ● ベーシックな品質保証プロセスを基本として活動 ○ デイリーでアプリケーションごとにタスク、相談・情報共有 ○ ウィークリーで社員間のコミュニケーション 56 ※「N予備校」は2024年6月末に「ZEN Study」にリニューアル予定です

Slide 57

Slide 57 text

品質保証 取り組み ● 品質保証対応領域 ○ 教育事業で取り扱っている全サービス ■ N予備校・ZEN Study、ZEN Import、ZEN Compass ○ 新規サービス ■ 大学関連各サービス ○ リグレッションテスト(フロントエンド、バックエンド、 SRE) ○ シフトレフト品質保証活動 ○ テストデータ整備 ○ ユーザー問い合わせ連携 ○ 検証端末管理 57

Slide 58

Slide 58 text

品質保証 今後の活動 ● 業務推進活動 ○ リグレッションテスト範囲領域拡大 ○ 上流工程からの品質保証介入 ○ 新規サービス品質保証対応 ○ テスト自動化 ● 改善業務活動 ○ 開発チームと協働でシフトレフト改善活動 ○ 既存運用強化 58

Slide 59

Slide 59 text

N予備校 サーバーサイド 59

Slide 60

Slide 60 text

N予備校のサーバーサイド 60 N予備校 PCWeb N予備校 iOSアプリ N予備校 Androidアプリ N/S高向け 単位認定試験アプリ (Android) LMS ZEN Compass PCWeb N予備校 サーバーサイド アプリケーション N予備校 API CMS ZEN Import LMS ZEN Compass API 教務システム 教務システム 連携API コンテンツやユーザーの学習進捗・教務システムとの連携を担い N予備校をはじめとする様々なサービス・システムを支えています ※「N予備校」は2024年6月末に「ZEN Study」にリニューアル予定です

Slide 61

Slide 61 text

マイクロサービスアーキテクチャを採用 61 初期リリースに向けた開発において マッチしていたため採用 機能毎にサービスを分割し プロジェクトに応じて必要な改修を 各サービスに対して行う ドワンゴ教育サービス開発者ブログ 「N予備校のマイクロサービス」で 詳しく解説

Slide 62

Slide 62 text

N予備校のサーバーサイドを開発しているチーム バックエンドチーム 教材基盤開発チーム N予備校やZEN Compassなどの プロダクトに対する 全般的なサーバーサイド開発を担当 教材・学習進捗に関する 基盤開発を行う 62
 規模拡大に伴い, もともと1つのチームが
 現在では2つのチームにわかれて開発にあたっています
 ※「N予備校」は2024年6月末に「ZEN Study」にリニューアル予定です

Slide 63

Slide 63 text

バックエンドチーム 63

Slide 64

Slide 64 text

バックエンドチーム 64 ● 2024年4月時点で12名のチーム ○ N予備校・ZEN Compassをはじめとしたプロダクトの全般的な開発を担う ● プロジェクトごとにチームを編成し開発 ○ メンバーの希望やプロジェクトの規模・専門性からチームを組織 ■ 現在は4チームほどを編成, 定期的な1on1も実施 ○ 開発の進め方についてはプロジェクトに応じて検討するが 概ねスクラム的な形式となることが多い ● 週1の雑談会・月1の勉強会を 教材基盤開発チームと合同で継続的に実施 ○ プロジェクトを横断したコミュニケーションや業務知識の共有など ※「N予備校」は2024年6月末に「ZEN Study」にリニューアル予定です

Slide 65

Slide 65 text

利用している技術 65 マイクロサービスアーキテクチャの利点を活かし 開発時の状況や解決したい課題に応じて適宜技術選定を実施 採用している言語・FWの一例: Ruby, Rails / Padrino / Grape 開発初期のメンバーのスキルセットやリリースに向けての開発速度に 重点が置かれていた Node.js, Express / Socket.io 開発初期の段階でWebSocketを用いるような機能の実現のため選定 TypeScript, NestJS 型の恩恵を得られるとともに DIや拡張性の高さから選定 主にPCWebフロントを持つようなアプリケーションについて順次採用 Go, Python 直近の新規開発に採用を検討中

Slide 66

Slide 66 text

バックエンドチームにおける取り組み 66 技術的な負債の蓄積に対する継続的な改善及び新機能の開発 様々な機能追加のトレードオフとして蓄積された技術的な負債への改善として 継続的にリファクタリングや機能のあるべき姿を模索した見直しを実施 改善を行いながらも教育事業として求められる新機能の開発や改修についても取り組む サービスや学校の運営を円滑にするために調査や依頼に改修要望の窓口を整備し 持続可能な体制を構築 小規模な改修・改善を草の根的に進めサービスの品質向上に貢献 ボトムアップによる新システムの企画立案や実行 トップダウンでの開発だけではなく ”未来の「当たり前」の教育をつくる ”というビジョンのもと 裁量を持ちつつ新しいシステムや機能などをエンジニアならではの発想で提案・実行

Slide 67

Slide 67 text

チームが抱えている課題・やっていきたいこと 67 継続的な改善活動を行っているものの行き届いていない箇所が点在 メンテナンス対象のシステムに対してオーナーシップを持つメンテナーやチームを組織できておらず N予備校のコアとなるドメインのシステムに改善が集中してしまっている RubyやRailsをはじめとするランタイムやライブラリの最新バージョンへの追従について後手に回っている状況 → 暫定で横断的な運用保守を担うチームを組織し解決を模索 これまでの開発で得てきた知見の外部発信 初期開発の期間も含め2016年から培ってきたRubyやRailsをはじめとする開発のナレッジや 試行錯誤の中で課題解決をしてきた知識や経験をよりコミュニティや社会に還元していきたい → 開発者ブログの執筆や勉強会等への登壇を奨励 カンファレンス等のイベントへの参加についても支援 ※「N予備校」は2024年6月末に「ZEN Study」にリニューアル予定です

Slide 68

Slide 68 text

今後の展望 68 N予備校やZEN Compassをより教育的にも価値のあるサービスにしていくためにも 継続的な改善や新機能開発にチカラをいれていく その中でも”未来の「当たり前」の教育をつくる ”というビジョンに コミットするためにもボトムアップでのアイデアを提案し実現していく! 改善 新機能開発 開発にあたるなかでの エンジニアならではのアイデアを積極的に提案 未来の「当たり前」の教育 の実現へ ※「N予備校」は2024年6月末に「ZEN Study」にリニューアル予定です

Slide 69

Slide 69 text

教材基盤開発チーム 69

Slide 70

Slide 70 text

教材基盤開発チーム 70 ● 2024年4月時点で9名(内、業務委託1名) ● 以下のプロジェクトを編成し開発 ○ 教材・採点・学習進捗管理を行う、教材基盤システム開発プロジェクト ○ 教材をシステムに入稿するための、インポートツール開発プロジェクト ● 開発の進め方についてはプロジェクトに応じて検討するが スクラム的な形式となることが多い ● 週1の1on1・週1の雑談会・月1の勉強会を継続的に実施 ○ プロジェクトを横断したコミュニケーションや業務知識の共有など ○ プロジェクトごとに勉強会実施もしています

Slide 71

Slide 71 text

利用している技術・ライブラリ 71 マイクロサービスアーキテクチャの利点を活かし 開発時の状況や解決したい課題に応じて適宜技術選定を実施 ● 教材基盤システム ○ Kotlin, gRPC Server, ktorm ■ null安全な静的型付言語により得られる恩恵が大きかった点と言語としての豊富な表現 力から複雑なドメイン知識をコードとして表現する際にメリットがあると判断し採用 ■ N予備校バックエンドでサーバーサイド Kotlin移行を始めました ● インポートツール ○ バックエンド:Node.js, TypeScript, NestJS, TypeORM ■ TypeScript, NestJS型の恩恵を得られるとともにDIや拡張性の高さから選定 ○ フロントエンド:TypeScript, React, MUI, zod ■ バックエンドエンジニアがフロントエンド開発も行っている

Slide 72

Slide 72 text

取り組みと今後の展望 72 ● これまでの技術的負債の継続的な解消 ○ リリースから様々な機能追加のトレードオフとして蓄積された技術的な負債への 改善として、リファクタリングやシステムのリプレイスを含めた改善を継続的に実施 ○ 教材基盤システム・インポートツールは共に Ruby on Railsで書かれていたが、それぞれ 別の技術スタックでリプレイス中 ● これまで様々な機能を追加して仕様が複雑になったため、数年先を見据え つつ、今の仕様の最適化を実施 ○ 教材制作からフロントエンドまで、様々な部署との連携をしながら実施 ○ 未来の「当たり前」の教育を実現するために、仕様を整理して新しい教材種別や機能を追 加しやすくする

Slide 73

Slide 73 text

取り組みと今後の展望 73 ● 教材制作者にとって、ミス無く入稿できる使いやすいシステムに ○ インポートツールは様々なバックグラウンドを持つ教材制作者に提供される ■ 今後は様々な組織にも提供される予定 ○ 教材制作の各部署との緊密な連携・ヒアリングを実施し、将来を見越した最適な入稿方法 を検討・実現する ○ 今後は誰にとっても、ミス無く・それぞれの最適な入稿方法を実現することで、教材制作か ら公開までの時間短縮・入稿ミスゼロを目指す

Slide 74

Slide 74 text

N予備校 フロンティア企画開発 チーム 74

Slide 75

Slide 75 text

フロンティア企画開発チーム ミッション 75 未来の「当たり前」の教育をつくる サービス開発部のビジョン /ミッション 「教育的に価値ある仕組みをドワンゴから社会に提案していく」ための 企画開発 x データ解析 x 技術検証 x データ蓄積 機能を備えたチームが Frontier Planning & Development Section です!

Slide 76

Slide 76 text

2022年4月に発足し、3年目に突入しました! 普段は企画チーム・技術検証/DWHチームで動くことが多いですが、 メンバーそれぞれの特性を生かし有機的なつながりを作ることを目指しています <企画/データ分析> 2024/4現在 Webサービスプランナー・ ディレクター 3名 (内 1名兼務) 企画開発エンジニア 1名 データアナリスト 2名 (兼務) <技術検証/DWH開発> 2024/4現在 データサイエンティスト 3名 データエンジニア 3名 マネージャー 1名 合計13名のチームです 76 データ 解析 技術 検証 DWH 構築 企画 フロンティア企画開発チーム

Slide 77

Slide 77 text

フロンティア企画開発チーム 2024の取り組み 77 次世代N予備校プロジェクトを中心に推進していきます
 
 
 N予備校を学力を向上できるプラットフォームにする
 学習サイクルを整備し、 それを促進する仕組みを ユーザー体験・データ活用の面から 他職種ロールで企画開発 データを元に効果検証できる動きを 自部署はもちろん、他部署にも支援 引き続き ※N予備校は2024/6にZEN Studyにサービス名を変更します

Slide 78

Slide 78 text

78 企画開発の今までとこれからの取り組み 次世代N予備校プロジェクトディレクション、プランニング ・2023年3月 マイコースでの締切ビュー追加 ・8月 教材ごとのクリア演出追加 ・2024年1月 学習数の可視化 ・技術検証 学力定量化各種フェーズ 2024年度はZEN大学(仮称)(認可申請中)への学習サイクルを プランニング・ディレクションしながら、 引き続き技術検証の体験設計を推進していきます。 特に、データ活用の企画開発を推進していける方を募集しています。

Slide 79

Slide 79 text

79 企画開発の今までとこれからの取り組み プロダクト全体のマネジメント、ディレクション、 プランニング ・2023年4月MVP N高等学校・S高等学校へリリース  9月 行動履歴基盤との接続、統計情報を提供  12月 管理機能提供、招待機能提供 ・2024年3月 N中等部へも提供開始 2024年度も グループ全体を見渡す機能などを追加しながらコーチ ングの効率化を支援していきます。 また、2025年 ZEN大学(仮称)(認可申請中)に向けても提供を行い、 提供組織も拡充していきます。

Slide 80

Slide 80 text

80 データ分析の今までとこれからの取り組み ・全体KPIを企画・マネージャーと相談しながら可視化 ・Google Analytics、GTM、Firebaseなどを活用し、 取得したいデータのイベントログの埋め込み ・データ蓄積基盤を用いて学習データの可視化 ・各種施策に対して効果検証をチーム内外へ支援 2024年度はイベントログの埋め込みの強化を行うため、 WebまたはAndroidに強いメンバーを募集しています。 引き続き、教育事業全体のデータ分析を支えていきます。 データアナリスト・データ分析エンジニア

Slide 81

Slide 81 text

81 データ活用の今までとこれからの取り組み ソフトウェアエンジニア(データサイエンス) ・項目反応理論を応用した学力定量化 技術検証 ・そのほかさまざまなデータ活用の検証 ・必要に応じてパイプラインを構築し試行 ・教育工学論文読み会など勉強会 2024年度は引き続き技術検証を続けながら 企画と一緒に体験を作り、 本番実装に向けてモデルを含んだ設計を行っていきます

Slide 82

Slide 82 text

82 データ蓄積基盤の今までとこれからの取り組み ソフトウェアエンジニア(データエンジニア) ・行動履歴基盤のリリース、ZEN Compassへのデータ提供開始 ・terraformでのリソース管理 ・データパイプラインなどの設計改善 ・N予備校の各種データを継続的に拡充 2024年度はZEN大学(仮称)(認可申請中)を支えるデータの拡充 行動履歴基盤のさまざまな設計強化、 外部へのデータ提供の推進などを行っていきます。

Slide 83

Slide 83 text

チーム立ち上げ期から、人員強化しアウトプットを増やしました 「N予備校」「ZEN Compass」をより学習者にとってより価値のあるものにするため、 それぞれのロールで人員強化を行い、チームでのアウトプットを促進しました 83 2024/3 13名 2023年度の採用実績 企画開発xデータ分析 2名(内1名兼務) + 1名 (内1名兼務) データサイエンスxデータエンジニアリング 2名 + 2名 企画開発 4名(内1名兼務) データサイエンス 3名 データエンジニアリング 3名 データ分析 2名 (内2名兼務) マネージャー 1名 マネージャー 1名 2023/4 8名

Slide 84

Slide 84 text

チーム形成フェーズへ! より専門性を強化する軸での人員増加、チームとしてのコラボレーションを促進していきます 84 2025/3目標 18名 以下の内容が気になる方、 ぜひカジュアル面談しましょう! ● 「学校」が抱える課題にデータやテクノロジーを使ってアプローチしたい ● 学習者に寄り添う学習プラットフォーム・教育プラットフォームを作りたい ● データサイエンティスト/アナリストだけれど、モデルを作るだけではなく企画として実現 するところまで繋げたい ● ソフトウェアエンジニアだけれど、企画もやりたい ● データエンジニアリングとデータサイエンスの両方に興味がある 2024年の採用計画 2024/4現在 13名

Slide 85

Slide 85 text

教務システム 85

Slide 86

Slide 86 text

これまでの流れ・概観 86

Slide 87

Slide 87 text

87

Slide 88

Slide 88 text

88

Slide 89

Slide 89 text

89

Slide 90

Slide 90 text

90

Slide 91

Slide 91 text

91

Slide 92

Slide 92 text

92

Slide 93

Slide 93 text

93

Slide 94

Slide 94 text

技術について 94

Slide 95

Slide 95 text

旧技術基盤とは ● 外部パッケージで使われ、つくられたもの ○ 開発 ■ Java8 / jQuery ■ 独自MVC / 独自ORM ○ インフラ ■ AWS EC2を手動構築 ● 教務システムとしては 6年前開発開始だが、おそらく技術自体は相当な歴史があるものと推測 ● DXが良くなく、今後10年内製チームで利用していくには心許ない ● ユーザー体験も悪い、 Form Submit とページ遷移の繰り返し (後述) ● (補足) 当時の判断を責めるものではない ○ 速く安くしたかっただろうし、そしてこれほど生徒も職員も増えると思っていなかっただろうし ○ 大事なのは、変化にいかに対応するか ⇒ 内製化のキモでもある 95

Slide 96

Slide 96 text

新技術基盤とは ● 内製チームで技術選定したもの ○ 開発 ■ TypeScript / Next.js(React) / Fastify / Prisma ○ インフラ ■ コード化、コンテナ化、ECS + Fargate で実行 ● 今後10年内製チームで利用していくことを見込んで選定 ○ (Prismaに迷いはあるがオニオンアーキテクチャで依存を回避) ● Next.js で SSR + 部分的CSR ● 閲覧と編集をシームレスにしてクリック数を削減 (後述) 96

Slide 97

Slide 97 text

旧技術基盤UI 新技術基盤UI 97

Slide 98

Slide 98 text

旧 ⇒ 新技術基盤への「ゆるやかな移行」 ● データベースは旧/新で共有 ○ データの寿命はシステムより長い ● 100画面以上ある全ての JavaAction と HTMLテンプレートを 一気に移行することは不可能 ○ そもそもユーザーの要求の捉え直しをせずにやっても意味はない ● したがって既存画面の改修は旧基盤のまま躊躇なく行いつつ 新たな要求(新規画面追加、既存業務の見直しなど)を新基盤で実現 ⇒「ゆるやかな移行」 ● 並行して開発者もサーバサイド Java メインから TypeScript / Next.js を修得、レベル上げしていく 98

Slide 99

Slide 99 text

今後について & なかま募集 99

Slide 100

Slide 100 text

● 角川ドワンゴ学園の生徒数&学校数増加の勢いはこれからも続き、 近いうちに10万人オーダーになっていく ● その一方で、教員・職員の数はなるべく増やさずに済むよう、 効率的な業務デザイン・システムデザインをしていく ● また角川ドワンゴ学園以外にも、ネット教育の「当たり前」を目指して 他法人へのサービス提供もしていく ● 多くのユーザーに、軽快で使いやすいシステムを 新技術基盤を武器に提供していく 今後について 100

Slide 101

Slide 101 text

なかま募集 たとえばこんな方... ● 抽象的な業務課題を吸い上げて、システムに落とし込む上流工程やりたい ○ 年々進化する学校なので課題も多いが、やりがいもあります ● 業務システム開発で TypeScript / Next.js / コンテナ技術が できる・やりたい・やれるようになりたい ○ いまはJavaしかできないけど…な人も歓迎 ● いままで受託だったけど、内製やっていきたい ○ ユーザーの感謝が得られますし、生徒数が増えたりコストが下がるのも嬉しいです まずはカジュアル面談からお待ちしています! 🙏 101

Slide 102

Slide 102 text

N予備校 / 教務システム
 
 SRE
 チーム
 
 102

Slide 103

Slide 103 text

SREチーム ● チーム体制 ○ 7名(社員6名、業務委託1名) ● 担当プロダクト ○ N予備校・教務システムそれぞれのインフラ全般を担当 ● 主な業務の分類として下記の3観点で対応中 ○ 各チームからの依頼作業 ○ 通常運用作業 ○ 運用負荷軽減を目的とした改善作業 103 ※「N予備校」は2024年6月末に「ZEN Study」にリニューアル予定です

Slide 104

Slide 104 text

SREチーム 開発体制 ● 開発サイクル ○ 2週間単位のスプリントでチケット駆動開発 ■ メンバー間の進捗共有 ● 日例(毎日) ● 進捗共有会(週1) ● 技術スタック ○ Terraform ○ Python ■ 運用自動化を目的としたスクリプト作成に利用 ■ 特に制約がない場合の最初の選択肢。他の言語を利用することのメリットが大きい 場合は積極的に採用 104

Slide 105

Slide 105 text

主な業務内容 ● 依頼作業 ○ 各開発セクションからの依頼対応 ■ 新規サービスの提供に向けた新規構築・既存環境の構成変更 ○ 学園イベントによるアクセス増への対策として一時的なインフラ増強対応 ● 通常運用作業 ○ 障害未満のアラート発報時の未然対応 ○ 障害発生時の復旧対応・再発防止のための根本対処 ○ AWSから通知されるEOLやEC2のリタイアメントへの対応 ● 運用負荷軽減を目的とした改善作業 ○ 各種監視強化やデプロイ改善 ○ 定期的にアラートが発生する事象に対する自動対処の導入 ○ IaCのリファクタリング 105

Slide 106

Slide 106 text

直近の取り組み事例 ● 依頼作業 ○ N予備校アーカイブ動画の高画質化 ■ 過去の授業のアーカイブ動画を高画質化するために必要なリソースの構築やアプリケーションから一時的 なリソースとの繋ぎ込みの設定などを対応 ○ 学園の単位認定試験実施に伴うアクセス増対策のインフラ増強 ● 通常運用作業 ○ PostgreSQL v11 -> v15 へのバージョンアップ対応 ○ メール送信者ガイドライン変更に伴うメール送信仕様の変更対応 ● 運用負荷軽減を目的とした改善作業 ○ N予備校インフラのAmazon EKSへの移行 ○ Github ActionsやArgo CDを利用したデプロイ機構の刷新 106

Slide 107

Slide 107 text

SRE 今後の活動 ● Kubernetesを始めとした各箇所で利用するサービスのバージョン更新 ○ アプリ開発者と協力した積極的にバージョンを追従していく手順と体制の構築 ● 通常運用作業の比率が高く、運用改善がのんびりペース ○ チームの強化・体制の見直しを通して改善スピード Up 107

Slide 108

Slide 108 text

選考・応募について
 108

Slide 109

Slide 109 text

選考の流れ 109 1次面接 面接官 マネージャー 現場エンジニア 最終面接 面接官 部長 書類選考 ※1次面接までに適性検査を受検いただ きます ※面接はすべてオンラインです ※選考の過程でコードテストを実施する場合があります ※選考の状況により選考の流れが変更される場合があります

Slide 110

Slide 110 text

その他の参考資料 ドワンゴ採用情報サイト https://recruit.dwango.co.jp/ 教育プロジェクト採用サイト https://www.nnn.ed.nico/recruit/ 開発者ブログ https://blog.nnn.dev/ ドワンゴ技術発信 Twitter アカウント https://twitter.com/dwango_tech 110

Slide 111

Slide 111 text

未来の「当たり前」の教育をつくる Vision / Mission ほんの少し先の未来、 ネットで学ぶときに「当たり前」とされるようなサービスを創るのは、 私たちにしかできない。 日々そう考えて企画開発しています。 それは教育の「当たり前」を変えること。 この前人未到の挑戦に、加わってみませんか。 111