株式会社ドワンゴ教育事業のソフトウェアエンジニア向け採用説明資料です。
関連資料 採用情報 https://www.nnn.ed.nico/recruit/ 開発者ブログ https://blog.nnn.dev/ カジュアル面談応募フォーム https://hrmos.co/pages/dwango/jobs/0511999/apply
エンジニア採用説明資料株式会社ドワンゴ 教育事業 サービス開発部1
View Slide
目次 2事業 ………...…………………………………………….. p.3組織と環境 ………...…………………………………………….. p.20チーム紹介Webフロント ………...…………………………………………….. p.28iOSアプリ ………...…………………………………………….. p.39Androidアプリ ………...…………………………………………….. p.46品質保証 ………...…………………………………………….. p.53サーバーサイド ………...…………………………………………….. p.57フロンティア企画開発 ………...…………………………………………….. p.64教務システム ………...…………………………………………….. p.70SRE ………...…………………………………………….. p.87選考・応募について ………...…………………………………………….. p.93
未来の「当たり前」の教育をつくるVision / Missionほんの少し先の未来、ネットで学ぶときに「当たり前」とされるようなサービスを創るのは、私たちにしかできない。日々そう考えて企画開発しています。それは教育の「当たり前」を変えること。この前人未到の挑戦に、加わってみませんか。3
ドワンゴの教育事業について 4というミッションのもと、 N予備校(学習プラットフォーム)を始めとした様々な学習をサポートするサービスを N高等学校/S高等学校や近畿大学などの教育機関へ提供しています。 また、月額課金による一般提供もおこない、 ネットで学ぶときに「当たり前」とされるようなサービスの創造に取り組んでいます。未来の「当たり前」の教育をつくる
ネットの高校N高等学校・S高等学校はKADOKAWA・ドワンゴが創るネットと通信制高校の制度を活用した、新しいネットの高校です。生徒数は両校合わせて25,041名になります(2023年6月30日現在)。5
オンラインの大学日本発の本格的なオンライン大学ZEN大学 (仮称)2025年4月 設置認可申請中です。(詳しくは https://zen-univ.jp をご覧ください)学習システム ZEN Study など私達が各種システムを開発しています。6(仮称) (設置認可申請中 )
10年間の学びの活動をシステム・デジタル教材面で最大化することを主軸に学習プラットフォームN予備校などサービスの一部を外部にも提供「高校・大学」の価値を最大化するdwango 教育事業学習サービスの月額1100円提供学習サービスの学校法人や自治体・法人への提供豊富な教材 学習補助としてのサポート🏫N/S高 教務システム価値を最大化 角川ドワンゴ学園 日本財団ドワンゴ学園(仮称) (設置認可申請中)
すべての人の学びを支える 8(仮称)(設置認可申請中)10年以上の学びに答え続ける中学 高校 大学・社会人教科学習 大学受験プログラミング Webデザイン 動画クリエイター
サポートプロダクト学習サービス 9オールインワン学習アプリ 学校運営サービス N/S高等学校 マイページ N/S高等学校 教務システム 学習コーチング支援サービス 教材インポート Webサービス 学校生活を支える Webサービス 生徒の出願から卒業まですべてのライフサイクルを管理
N/S高の生徒数推移とN予備校の進化10N高等学校 開校N予備校教務システムリリース課外授業だけではなく高校の授業をN予備校で提供開始N中等部開校N予備校で学年末テスト提供開始コロナ禍でN予備校無償提供S高等学校 開校N予備校でVR教材提供開始N/S高等学校へN予備校LMSZEN Compass提供開始累積ユーザー数は25万以上(2023年5月現在)
教材・ライブ授業・フォーラムをスマホ・PCに最適化したオールインワン学習アプリスマホ・PCに最適化された教材なかまと受ける双方向ライブ授業なかまと話し教え高め合いができる場所N予備校 https://www.nnn.ed.nico/pages/introduction/feature/11
2021年4月からは最新のテクノロジーを使ったVR学習機能をサポートしています。VR空間で学び・仲間と交流。ネットの高校は、進化し続けます。12
N予備校サービスと、その技術①←のような、「授業」「参考書」「問題集」等をコンテンツ素材として管理先生や問題作成者がコンテンツを作れるよう、HTMLに独自タグやスクリプトを組み込んだ仕様を策定iOSアプリ(Swift)、Androidアプリ(Kotlin)、PCブラウザ(React + TypeScript)で提供動画部分のみネイティブ化するなど、よりよいユーザー体験を求めて改善13
N予備校サービスと、その技術②「問題に正答した」「章を理解した」など、学習者の進捗度をサーバ+データベースで管理Ruby on Rails、AWS Lambda 等を利用マイクロサービスで開発効率を維持し、変化に対応問題、成績、Q&A、プロフィール… VR対応もKubernetesで各サービスをインフラストラクチャに展開N/S高生徒は、進捗度が先生にレポートされる先生が多数の生徒を効率良く指導できるシステムを構築14
数万人に達する生徒の 出願⇒入学⇒進級⇒卒業 までの管理業務や、定期テスト・スクーリングなどの活動・成績の管理を、なるべく少ない教職員で効率的に行えるよう自社開発。教務システム 15
次世代N予備校で目指すこと ❶N高生・S高生がネットを活用した学習ができて、高卒資格が取れる大多数の人にとって、学習(特に高校生にとっての受験勉強)は「できればやりたくない」「でも、やらなければいけない」ものであることを認めたうえで、学習を続けられる・したくなる仕組みをつくる16 開校〜2021年まで2022年からの取り組み
次世代N予備校で目指すこと ❷ミクロからマクロまでの学習サイクルの整備と、各画面での報酬設計、それらに対しての迷わない仕組み作り目標をたてる学習する結果が見える/フィードバック次のチャレンジを見つける例) 報酬設計[ミクロ] 1問解いたら褒める[マクロ] 学力向上(※次スライドで詳細)を褒める例) 適切なリコメンド[ミクロ] もう1問解いてみませんか?[マクロ] あなたの目標には この教材が良いでしょう17 例)学習時間計測
次世代N予備校で目指すこと ❸学力を定量的・効率的に測定できる仕組みづくり生徒は、N予備校で学習はしているが、本当に身についているのか目標大学に受かるのか、外部模試など受けないとわからない生徒自身がN予備校だけで、現状と目標のギャップがわかるようにする● IRTによるスコア付け( IRT=項目反応理論を用いた学力の定量化 )● アダプティブなテスト( 学力に応じた学習サポート)「あなたの学力は現在500です」「目標の foo大学 bar学部は1000目安です」現状今後18
次世代N予備校で目指すこと ❹● 基本は、次世代N予備校の機能でどんどん学習をしてもらう前提⇒ 技術による省力化● その上で、人間がキメ細かな指導をする⇒ 人間だけにしか出来ない大事なことに集中指導員(先生/TA/メンター)が、生徒をより良く支援できる仕組みづくり19 2023年4月N高等学校・S高等学校向けにLMS “ZEN Compass”リリース● 個別の学習状況がわかるように今後もコーチの支援を効率化するような機能提供を予定● コーチのアクションした方がいい度合いを指標化● 多数の生徒の状況が把握できるダッシュボード
組織 と 環境 20
全社 組織体制 教育事業本部 N予備校や学園に関する業務サービス開発部N予備校や学校管理システムの開発・保守・運用コンテンツ開発部N予備校の教材制作、授業運営、カスタマーサポート他の本部 ニコニコ事業本部などN高等学校・S高等学校の運営その他の部 学園との協働やバックオフィス21ココです
スマホアプリセクションiOSアプリ グループAndroidアプリ グループWebフロントセクションバックエンドセクションサービス開発部 組織体制 デザインセクションSRE セクション教務システムセクション品質保証 セクションフロンティア企画開発セクション教務システム22
使用言語 / 技術 / ツール 言語 / フレームワーク インフラ / 運用管理 ツール23
働き方エンジニアは原則としてテレワーク(在宅勤務) です。(※月額20,000円の手当あり) 教育事業本部サービス開発部エンジニアの テレワーク率実績は 100% となっています。 テレワーク開始以来、北海道から九州まで 全国各地のなかまが増えました! また、裁量労働制で働く時間も比較的自由です。24
制度・福利厚生25 リフレッシュ休暇有休とは別に毎年付与される休暇です。まとまった休暇が取りやすくなる制度のため夏季や年末年始に利用する方が多いです。※一般的な産育休や慶弔休暇といった制度もあります。対象資格を取得すると、月額2,500~50,000円を3年間支給します。(一部、1年間のものや退職までのものもあり)対象資格例:ITストラテジストシステムアーキテクトプロジェクトマネージャネットワークスペシャリストデータベーススペシャリスト情報処理安全確保支援士システム監査技術者※2022年11月時点で37個の資格が対象。※入社後に取得した資格が支給対象となります。業務により公共交通機関を使って出社した際の費用を支給します。テレワーク勤務者: 通勤に要した実額を経費として支給非テレワーク勤務者: 通勤経路の定期代相当額を手当として支給 ※上限月額 50,000円資格取得手当会社が契約をする賃貸マンションに入寮日より2年間入居できます。入寮条件をクリアする必要があります。間取り等を選べませんが、築浅マンションに安価に入居することができます。入寮に伴う引越費用も会社が負担いたします。テレワーク手当テレワーク勤務者を対象に電気代及び通信費等並びに就業環境を整えるための手当です。月額20,000円を支給します。通勤交通費手当社員寮 ※新卒社員のみ対象休暇※歌舞伎座タワーより 100km圏内での勤務を原則としていますが、 一定の条件を満たし、会社承認が下りた場合、 遠隔地(歌舞伎座タワーより 100km以遠)勤務も可能です (国内のみ)。
制度・福利厚生26 満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ソフトウェアの保養施設やスポーツ施設が特別価格で利用可能)財産形成制度 財形貯蓄制度、社員持ち株制度その他子育て支援
27 ©DWANGO Co.,Ltd. All rights reserved. 数字でみるドワンゴ※在籍社員数
N予備校 Webフロント チーム 28
Webフロントチームの担当範囲アプリケーションWebフロントエンド教材コンテンツフロントエンド主にPC向けの体験を提供PC/SP双方に共通の体験を提供1 229 LMS “Compass”3指導者向け管理ツール
アプリケーションWebフロントエンド130
アプリケーションWebフロントエンドの見どころ 不確実性と戦うために常に変化し続ける いわゆるふつうのSPAReact(hooks)React RouterRedux + Redux-ObservableTypeScriptstyled-componentsRuby on Rails view上のReactReactやjQuerypage.js, slimReduxTypeScript身軽なSPAReact(hooks +Suspense)React RouterReact Query, etc…TypeScriptstyled-components脱Railsべったり リリース当初の実装から脱却 これは目立つ事例、常にすべてを見直し続ける サービスの性質を考慮し 多方面に身軽にしやすく変化 31
アプリケーションWebフロントエンドの今後素早く仮説検証が可能な状態の確立より柔軟なフィーチャートグル、ABテスト等を可能にしたい変更が容易かつメンテしやすい形に寄せ、保つex. 画面どうしが独立になるように寄せ、互いを知る必要をなくすex. 多くの画面でReduxは不要、暗黙の依存を作りやすいのでやめるパフォーマンスの向上と維持計測体制を確立、当たり前品質を維持アクセシビリティ向上と維持機械判定できる最低限を確保済(WCAG 2.1 Aの一部相当)判定が難しい領域でも、持続可能な形の確立を目指す 32 サービスの変化とその先の世界を見据えて
教材コンテンツフロントエンド233
教材コンテンツフロントエンドのあらまし一定のフォーマットに従うHTMLから、コンテンツを再生 AndroidN予備校アプリiOSN予備校アプリN予備校Web教材コンテンツフロントエンドTypeScript + React教材HTML参考書問題集選択式問題記述式問題論述式問題…34
教材コンテンツフロントエンドの今後Webのプロではない教材作成者への支援を充実させる教材作成者しか知りえない知識を織り込ませるよう補助するimg要素のalt属性にこういう情報を埋めてほしい、など提案する問題のある記述へのより早いフィードバックの仕組みを作るプレビュー画面やLintのような道具を確立させるよりスムーズな学習体験のために問題が読めるようになるのは速い方がいい!特に数式のレンダリング速度をなんとかするブラウザでできることは当たり前にできたほうがいい!たとえば、キーボード操作だけで問題を解き続けられるようにするWebの技術に乗った教材という資産の価値を守り、高めていきたい35
LMS “Compass”336
LMS “Compass”フロントエンドの見どころメンター(≒N/S高の先生)が生徒のN予備校の学習状況を把握するアプリ技術的みどころNext.js v12 (Static HTML Export)GraphQL (urql + graphql-codegen)バックエンドとmonorepoで開発課題、今後Next.jsをv13にしたい不足しているテストの追加リリースや依存パッケージ更新作業などの運用の見直し・自動化まだβ版なのでこれから開発する機能が沢山あります37
Webフロントチームについて● 総勢10名(2023年4月時点)○ 社員8名、業務委託2名● GitHub Enterprise上でPR中心の開発○ 厳しく優しくレビューしています○ CIでのテストの他、外観差分やPRごとのStorybookなど整備しています● 特に担当コードベースの概念はない○ 事実上の主担当はあるが、壁は設けていない(見直すかも● 1週間のスプリントで計画&振り返り○ 5分程度のデイリーミーティングで毎日状況共有● 週1回のチーム内Webフロントエンド勉強会○ 世のトレンド把握からWebまわりの仕様把握、業務知識共有まで38
N予備校 iOSアプリ チーム 39
iOSチーム6名(社員4名、業務委託2名)現在も採用中1週間単位のスプリントでチケット駆動開発デイリーミーティングでやることや課題の相談などGitHub.com で開発Bitrise のため GitHub.com を利用※ 社内では通常 GitHub Enterprise を利用40
iOS 利用技術使っている技術 使わない技術 使いたい技術Swift 5.8RubyBashSwiftUIRxSwiftActionAlamofireQuick, NimbleXcodeGenSwiftPMSwiftGenSwiftLintfastlaneDangerObjective-CCocoaPodsSwift Concurrencyサポート対象OS iOS 15.0 以上(2024年4月から iOS 16.0 以上の予定)41
iOS アーキテクチャViewMVVM ViewControllerStoryboardViewModelViewModelInputs ViewModelOutputsModel, RepositoryRepositoryProtocolテストあり依存ありSwiftUI View42
長文解答形式の問題種別を追加SwiftUI による画面リプレイス通知一覧画面フォーラムTOP画面フォーラム検索画面フォーラム検索結果画面授業TOP画面設定画面必修レポートタブ追加月別レポート画面追加iOS 最近のリリース43
iOS チームの取り組み朝会(毎日)チーム活動振り返り(週1)勉強会(週1)プロダクト開発に関連する技術の情報共有やLT例)Swift、SwiftUI、SwiftLint、GA など案件対応仕様策定、開発、リリース運用・保守コードやCIの改善、ドキュメント整備、アクセスログ調査、便利ツールの開発など44
iOS その他の開発マルチモジュール対応段階的な Swift UI 移行SwiftPM 移行アプリ内デバッグ機能の拡充内製ライブラリの作成・メンテナンスリファレンスリポジトリのメンテナンス45
N予備校 Androidアプリ チーム 46
Androidチーム● 6名前後● 1週間単位のスプリントでチケット駆動開発○ デイリーミーティングで開発状況の共有と困りごとの相談○ Pull Requestの作成・レビューを素早く回すことで、コード品質の担保と開発速度の向上を実現● GitHub Enterprise Cloud で開発○ 新機能の実装とリファクタリングを同時進行47
Android 利用技術サポート対象OS Android 8.0 以上 使っている技術 使いたい技術 ・Kotlin ・Coroutines Flow ・Navigation ・Jetpack Compose ・ExoPlayer ・ViewModel, LiveData ・Retrofit ・moshi ・mockito-kotlin ・Dagger Hilt ・media3 48
Android アーキテクチャモジュール構成図 appappアプリのエントリーポイントuihomeホーム画面の UIdomaindataforumフォーラム画面の UIlesson授業画面の UIsetting設定画面の UIcommon共通の UImaterial教材画面の UIhomeホームのロジックforumフォーラムのロジックlesson授業のロジックsetting設定のロジックcommon共通のロジックmaterial教材のロジックrepositoryデータを取得contractインターフェースの定義datasourceデータの定義49
Android 最近のリリースホーム画面リニューアル 動画を続きからみる機能 50
● 新機能の開発○ 他チームと協力しながら仕様の作成、実装、リリース● アプリの品質向上○ ライブラリの刷新、技術的負債の解消など● チームのサポート○ コードレビュー、勉強会の進行など● 知見の外部共有○ 技術ブログの執筆、教材の制作などAndroid チームの取り組み51
Android その他の開発● Jetpack Compose の導入 ● RxJava から Kotlin Flow への移行 ● DroidKaigi のスポンサー 開発者ブログより 52
N予備校 / 教務システム 品質保証 チーム 53
品質保証チーム● チーム体制○ N予備校:4名 (社員3名、派遣社員1名)○ 教務システム:5名(社員1名、業務委託4名)○ マネージャー:1名● ベーシックな品質保証プロセスを基本として活動○ デイリーでアプリケーションごとにタスク、情報共有○ ウィークリーで社員間のコミュニケーション54
品質保証 取り組み● 2021年チーム立ち上げ○ 案件ごとの品質保証○ リグレッションテスト(フロントエンド、バックエンド、SRE)○ シフトレフト品質保証活動○ テストデータ整備○ ユーザー問い合わせ連携○ 検証端末管理55
品質保証 今後の活動● 対応領域拡大○ 各開発チームへのシフトレフト活動○ リグレッションテスト範囲拡大○ 既存運用強化○ 上流工程からの介入○ 新規案件対応● 継続検討○ テスト自動化■ Autify などの導入検証56
N予備校サーバーサイドチーム57
N予備校のサーバーサイド58N予備校PCWebN予備校iOSアプリN予備校AndroidアプリN/S高向け単位認定試験アプリ(Android)LMSCompass PCWebN予備校サーバーアプリケーション群N予備校APIN予備校CMSCompassAPI教務システム教務システム連携APIN予備校の扱うコンテンツやユーザーの学習進捗教務システムとの連携を担い様々なサービス・システムを支えている
N予備校サーバーサイドチーム59● 2023年6月時点で19名のチーム○ 規模拡大中のチームで現在も積極的に採用活動を行っています!■ 直近2年間の採用実績● 2021年度 4名(新卒社員 1名, 中途社員 3名)● 2022年度 5名(新卒社員 1名, 中途社員 4名)● プロジェクトごとにチームを編成し開発○ メンバーの希望やプロジェクトの規模・専門性からチームを組織○ 開発の進め方についてはプロジェクトに応じて検討するがスクラム的な形式となることが多い● 週1の雑談会・月1の勉強会を継続的に実施○ プロジェクトを横断したコミュニケーションや業務知識の共有など
マイクロサービスアーキテクチャを採用60初期リリースに向けた開発においてマッチしていたため採用機能毎にサービスを分割しプロジェクトに応じて必要な改修を各サービスに対して行うドワンゴ教育サービス開発者ブログ「N予備校のマイクロサービス」で詳しく解説
利用している技術61マイクロサービスアーキテクチャの利点を活かし開発時の状況や解決したい課題に応じて適宜技術選定を実施Ruby, Rails / Padrino / Grape開発初期のメンバーのスキルセットやリリースに向けての開発速度に重点が置かれていたNode.js, Express / Socket.io開発初期の段階でWebSocketを用いるような機能の実現のため選定TypeScript, NestJS型の恩恵を得られるとともに DIや拡張性の高さから選定主にPCWebフロントを持つようなアプリケーションについて順次採用サーバーサイドKotlinnull安全な静的型付言語により得られる恩恵が大きかった点と言語としての豊富な表現力から複雑なドメイン知識をコードとして表現する際にメリットがあると判断し採用N予備校バックエンドでサーバーサイドKotlin移行を始めました
N予備校 サーバーサイド開発における取り組み62技術的な負債の蓄積に対しての継続的な改善リリースから様々な機能追加のトレードオフとして蓄積された技術的な負債への改善としてリファクタリングやシステムのリプレイスを含めた改善を継続的に実施システムのあるべき姿をチーム内でも議論しシステムのリプレイスに留まらず全く別物として新規にアプリケーションを開発するなど技術とシステムの使い勝手の両側面から改善を推進サービスや学校の運営を円滑にするために調査や依頼に改修要望の窓口を整備し持続可能な体制を構築小規模な改修・改善を草の根的に進めサービスの品質向上に貢献
今後の展望63N予備校をより教育的にも価値のあるサービスにしていくためにも継続的に改善を行っていくマイクロサービスアーキテクチャも含め技術選定についてゼロベースで見直しを行いサービスの持つ課題や責務に応じて適切にリプレイスやリアーキテクチャを行っていくN・S高の教職員や教材制作スタッフの業務改善をシステム化で支援しより質の高い教育の提供へ教育のインフラとして要望されている機能の実現やエンジニアリングによる課題解決で教育の品質を向上させていくユーザーへのN予備校における学習体験の向上により「未来の当たり前の教育」の実現へ
N予備校フロンティア企画開発チーム64
フロンティア企画開発チーム2022年4月に発足し、2年目に突入!次世代N予備校の取り組みを中心に、「企画」と「技術検証」に注力するために新設されたチーム65
企画・技術検証(PoC)・データ解析・DWH構築 を行っています普段は企画チーム・技術検証/DWHチームで動くことが多いですが、メンバーそれぞれの特性を生かし有機的なつながりを作ることを目指しています<企画/データ解析> 2023/10現在Webサービスプランナー・ディレクター 2名 (内 1名兼務)データアナリスト 2名 (兼務)<技術検証/DWH> 2023/10現在データサイエンティスト 2名データエンジニア 3名マネージャー 1名合計10名のチームです66データ解析技術検証DWH構築企画フロンティア企画開発チーム
次世代N予備校全体のプランニングN予備校● 今後のアップデートに向けてデザイン・フロントエンドのコンポーネント化の取り組み● マイコース N/S高生に向けてのアップデート案件のディレクションN予備校LMS “Compass”● 全体プランニング・ディレクション● β版開発 ディレクション2023年以降の開発のプランニング…672022年の企画の取り組み
行動履歴基盤の構築● N予備校とのIF(DataLake)● DWH● LMSとのIF(DataMart)学力定量化への挑戦● 項目反応理論(IRT)の適用● 生徒を巻き込んだキャンペーン企画サービス企画・教材企画・学園運営へのデータ解析● 企画開発ディレクション案件のKPI取得● プランニング時の実データ検証● 教材企画・学園運営へのKPIデータ提供(LMSのプロトタイプ要素も含む)682022年の技術検証・データ解析の取り組み
チームを大きくしていきます!「N予備校」「ZEN Compass」をより学習者にとってより価値のあるものにするため、692023/10現在 10名14名 を目指します以下の内容が気になる方、 ぜひカジュアル面談しましょう!● 「学校」が抱える課題にデータやテクノロジーを使ってアプローチしたい● 学習者に寄り添う学習プラットフォーム・教育プラットフォームを作りたい● データサイエンティスト/アナリストだけれど、モデルを作るだけではなく企画として実現するところまで繋げたい● ソフトウェアエンジニアだけれど、企画もやりたい● データエンジニアリングとデータサイエンスの両方に興味がある2023年の採用情報2023/4現在 8名
教務システム70
これまでの流れ・概観71
72
73
74
75
76
77
78
技術について79
旧技術基盤とは● 外部パッケージで使われ、つくられたもの○ 開発■ Java8 / jQuery■ 独自MVC / 独自ORM○ インフラ■ AWS EC2を手動構築● 教務システムとしては 6年前開発開始だが、おそらく技術自体は相当な歴史があるものと推測● DXが良くなく、今後10年内製チームで利用していくには心許ない● ユーザー体験も悪い、 Form Submit とページ遷移の繰り返し (後述)● (補足) 当時の判断を責めるものではない○ 速く安くしたかっただろうし、そしてこれほど生徒も職員も増えると思っていなかっただろうし○ 大事なのは、変化にいかに対応するか ⇒ 内製化のキモでもある80
新技術基盤とは● 内製チームで技術選定したもの○ 開発■ TypeScript / Next.js(React) / Prisma○ インフラ■ コード化、コンテナ化、ECS + Fargate で実行● 今後10年内製チームで利用していくことを見込んで選定○ (Prismaに迷いはあるがオニオンアーキテクチャで依存を回避)● Next.js で SSR + 部分的CSR● 閲覧と編集をシームレスにしてクリック数を削減 (後述)81
旧技術基盤UI 新技術基盤UI82
旧 ⇒ 新技術基盤への「ゆるやかな移行」● データベースは旧/新で共有○ データの寿命はシステムより長い● 100画面以上ある全ての JavaAction と HTMLテンプレートを一気に移行することは不可能○ そもそもユーザーの要求の捉え直しをせずにやっても意味はない● したがって既存画面の改修は旧基盤のまま躊躇なく行いつつ新たな要求(新規画面追加、既存業務の見直しなど)を新基盤で実現⇒「ゆるやかな移行」● 並行して開発者もサーバサイド Java メインからTypeScript / Next.js を修得、レベル上げしていく83
今後について & なかま募集84
● 角川ドワンゴ学園の生徒数&学校数増加の勢いはこれからも続き、近いうちに10万人オーダーになっていく● その一方で、教員・職員の数はなるべく増やさずに済むよう、効率的な業務デザイン・システムデザインをしていく● また角川ドワンゴ学園以外にも、ネット教育の「当たり前」を目指して他法人へのサービス提供もしていく● 多くのユーザーに、軽快で使いやすいシステムを新技術基盤を武器に提供していく今後について85
なかま募集たとえばこんな方...● 抽象的な業務課題を吸い上げて、システムに落とし込む上流工程やりたい○ 年々進化する学校なので課題も多いが、やりがいもあります● 業務システム開発で TypeScript / Next.js / コンテナ技術ができる・やりたい・やれるようになりたい○ いまはJavaしかできないけど…な人も歓迎● いままで受託だったけど、内製やっていきたい○ ユーザーの感謝が得られますし、生徒数が増えたりコストが下がるのも嬉しいですまずはカジュアル面談からお待ちしています! 🙏86
N予備校 / 教務システム SRE チーム 87
SREチーム● チーム体制○ 7名(社員5名、業務委託2名)● 担当プロダクト○ N予備校・教務システムそれぞれのインフラ全般を担当● 主な業務の分類として下記の3観点で対応中○ 各チームからの依頼作業○ 通常運用作業○ 運用負荷軽減を目的とした改善作業88
SREチーム 開発体制● 開発サイクル○ 2週間単位のスプリントでチケット駆動開発■ メンバー間の進捗共有● 日例(毎日)● 進捗共有会(週1)● 技術スタック○ Terraform○ Python■ 運用自動化を目的としたスクリプト作成に利用■ 特に制約がない場合の最初の選択肢。他の言語を利用することのメリットが大きい場合は積極的に採用 89
主な業務内容● 依頼作業○ 各開発セクションからの依頼対応■ 新規サービスの提供に向けた新規構築・既存環境の構成変更○ 学園イベントによるアクセス増への対策として一時的なインフラ増強対応● 通常運用作業○ 障害未満のアラート発報時の未然対応○ 障害発生時の復旧対応・再発防止のための根本対処○ AWSから通知されるEOLやEC2のリタイアメントへの対応● 運用負荷軽減を目的とした改善作業○ 各種監視強化やデプロイ改善○ 定期的にアラートが発生する事象に対する自動対処の導入○ IaCのリファクタリング90
直近の取り組み事例● 依頼作業○ ZEN Compass及びZEN Improt環境構築○ 学園の単位認定試験実施に伴うアクセス増対策のインフラ増強● 通常運用作業○ PostgreSQLのマイナーバージョンアップ対応○ Redis v2 -> v6のバージョンアップ● 運用負荷軽減を目的とした改善作業○ Zabbixで監視していた項目をすべてCloudWatchへ移行91
SRE 今後の活動● Kubernetesを始めとした各箇所で利用するサービスのバージョン更新○ アプリ開発者と協力した積極的にバージョンを追従していく手順と体制の構築● 通常運用作業の比率が高く、運用改善がのんびりペース○ チームの強化・体制の見直しを通して改善スピードUp92
選考・応募について 93
選考の流れ941次面接面接官マネージャー現場エンジニア最終面接面接官テクニカルディレクター書類選考※1次面接までに適性検査を受検いただきます※面接はすべてオンラインです※選考の過程でコードテストを実施する場合があります※選考の状況により選考の流れが変更される場合があります
その他の参考資料ドワンゴ採用情報サイト https://recruit.dwango.co.jp/教育プロジェクト採用サイト https://www.nnn.ed.nico/recruit/開発者ブログ https://blog.nnn.dev/ドワンゴ技術発信 Twitter アカウント https://twitter.com/dwango_tech95
未来の「当たり前」の教育をつくるVision / Missionほんの少し先の未来、ネットで学ぶときに「当たり前」とされるようなサービスを創るのは、私たちにしかできない。日々そう考えて企画開発しています。それは教育の「当たり前」を変えること。この前人未到の挑戦に、加わってみませんか。96