Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ドワンゴ教育事業ソフトウェアエンジニア採用説明資料 / for-engineers

1a7a97f1e0528215affb71741487ccae?s=47 nnndev
February 05, 2021

ドワンゴ教育事業ソフトウェアエンジニア採用説明資料 / for-engineers

株式会社ドワンゴ教育事業のソフトウェアエンジニア向け採用説明資料です。

関連資料
技術ブログ https://blog.nnn.dev/
カジュアル面談応募フォーム https://hrmos.co/pages/dwango/jobs/0511999/apply

1a7a97f1e0528215affb71741487ccae?s=128

nnndev

February 05, 2021
Tweet

Other Decks in Technology

Transcript

  1. ソフトウェアエンジニア 採用説明資料 株式会社ドワンゴ 教育事業

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

  3. 教育事業について 学校法人角川ドワンゴ学園が運 営する「N高等学校・S高等学校」 と連携し、ネット時代に合わせた 教育関連のサービスを提供して います。
 (写真) img

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

  5. N高等学校・S高等学校について


  6. • 2016年4月 N高開校、N予備校リリース • 2018年4月 N予備校でN高の単位認定授業を受講できるように • 2020年3月 コロナ禍をきっかけにN予備校無償提供 • 2021年4月 S高開校 • 2021年8月-11月 ホームリニューアル

    • 202X年 次世代N予備校へ... 歴史

  7. アプリケーション 
 • N予備校 ◦ 月額1,100円で大学受験・プログラミングなど多様なコンテンツを学び放題 ◦ NS高生は単位取得のための授業を受講 • 教務システム

    ◦ NS高の生徒の出願から卒業まですべての工程を管理 ◦ 個人情報、成績管理など ◦ 校務を効率よく行うために内製
  8. 教材・生授業・Q&Aをスマホにも最適化した オールインワン受験アプリ スマホに最適化された 教材 なかまと受ける 双方向生授業 なかまと話し教え 高め合いができる場所 N予備校 


    https://www.nnn.ed.nico/pages/introduction/feature/
  9. 2021年4月からは最新のITテクノ ロジーを使ったVR学習機能をサ ポートしています。 VR空間で学び・仲間と交流。 ネットの高校は、進化し続けま す。

  10. N予備校サービスと、その技術① • ←のような、「授業」「参考書」「問題集」等をコンテン ツ素材として管理 ◦ 先生や問題作成者がコンテンツを作れるよう、 HTMLに独自タグやスクリプトを組み込んだ仕様を策定 • iOSアプリ(Swift)、Androidアプリ(Kotlin)、 PCブラウザ(React

    + Redux + TypeScript)でWeb コンテンツとして提供 ◦ 動画部分のみネイティブ化するなど、よりよいユーザー体験 を求めて改善
  11. N予備校サービスと、その技術② • 「問題に正答した」「章を理解した」など、 学習者の進捗度をサーバ+データベースで管理 ◦ Ruby on Rails、AWS Lambda 等を利用

    ◦ マイクロサービスで開発効率を維持し、変化に対応 ▪ 問題、成績、Q&A、プロフィール… VR対応も ◦ Kubernetesで各サービスをインフラストラクチャに展開 • N/S高生徒は、進捗度が先生にレポートされる ◦ 先生が多数の生徒を効率良く指導できるシステムを構築
  12. 数万人に達する生徒の出願〜入学〜進級〜卒業までの管理業務や、定 期テスト・スクーリングなどの活動成績管理を、 なるべく少ない教職員で効率的に行えるよう自社開発。 教務システム 


  13. 次世代N予備校で目指すこと ❶ • いままで ◦ N/S高生がネットを活用した勉強ができて、高卒資格が取れる • これから ◦ 大多数の人にとって、(受験)

    勉強 とは、 「できればやりたくない」 「でも、やらなければいけない」 ものであることを認めたうえで、 学習を続けられる・したくなる仕組みを創っていく
  14. 次世代N予備校で目指すこと ❷ 生徒がモチベーションをもって、迷わず学習できる仕組みづくり • ミクロからマクロまで、各場面でのインセンティブを設計 ◦ [ミクロ] ちょっとした、一つひとつの行為を褒める ▪ 問題を少し解いてみた(正解は問わない)

    ▪ 何時間か授業を受けてみた(基準は生徒ごとに違う) ◦ [マクロ] ミクロの積み重ね & 学力向上 (次スライド)を褒める • 適切な科目・教材のリコメンド ◦ [ミクロ] ちょっともう一問やってみませんか? ◦ [マクロ] あなたの目標にはこの教材が良いでしょう • 適切な勉強時間の推定 等々...
  15. 次世代N予備校で目指すこと ❸ 学力を定量的・効率的に測定できる仕組みづくり 生徒は、 N予備校で勉強はしているが、 本当に身についているのどうか、 目標大学に受かるのかどうか、 外部模試など受けないとわからない 生徒自身がN予備校だけで、 現状と目標のギャップがわかるようにする

    • IRTテスト(IRT=項目反応理論を用いた 学力の定量化) • アダプティブなテスト(生徒の学力 に応じた学習サポート) 「あなたの学力は現在500です」 「目標の foo大学 bar学部は1000目安です」 現状 今後
  16. 次世代N予備校で目指すこと ❹ • 基本は、次世代N予備校の機能でどんどん学習をしてもらう前提 ⇒ 技術による省力化 • その上で、人間がキメ細かな指導をする ⇒ 人間だけにしか出来ない大事なことに集中

    • そのために LMS (ラーニングマネジメントシステム) を開発する ◦ 多数の生徒の状況が把握できるダッシュボードを整備 ▪ 詰まっている生徒、伸びている生徒がわかる ◦ 個別の生徒の状況もわかる ▪ どんな教材・問題をどれだけ進めているのか ▪ 計測した学力がどれくらいか、最近の伸び具合はどうなのか 等々... 指導員(先生/TA/メンター)が、生徒をより良く支援できる仕組みづくり
  17. 組織 と 環境


  18. 組織体制
 教育事業本部 N予備校や学園に関する業務 サービス開発部 N予備校や教務システムの開発・保守・運用 コンテンツ開発部 教材制作、授業運営、カスタマーサポート 他の本部 ニコニコ事業本部など N高等学校・S高等学校の運営

  19. バックエンド セクション サービス開発部 組織体制
 フロントエンドセクション • Webフロントグループ • スマホアプリグループ •

    品質保証グループ デザイン セクション SRE セクション 教務システム セクション
  20. 使用言語 / 技術 / ツール
 言語 / フレームワーク インフラ /

    運用管理 ツール
  21. 
 
 
 機材貸与 
 開発者向けのハイスペックなMac / Windowsが選択可能。キーボードもUS/JISを 選択可能。 
 VPN接続で社外から内部ネットワークへ接続してテレワークできます。


    制度・福利厚生
 
 
 ・リフレッシュ休暇
 (5日間以上の連続した休暇のうち 
  2日間以上の有休・振休を取得することで 
  2日間のリフレッシュ休暇が取得できます) 休暇 
 ・対象資格を取得すると、 
  月額3,000~50,000円を3年間支給します 
  
  -ITストラテジスト 
  -システムアーキテクト 
  -プロジェクトマネージャ 
  -ネットワークスペシャリスト 
  -データベーススペシャリスト 
  -情報処理安全確保支援士 
  -システム監査技術者 
 
 上記以外にも、対象資格あり。 
 
 ※入社前に取得した資格は、支給対象外です 資格取得手当
 ※テレワーク対象者のみ 公共交通機関を使った通勤経路の定期代の実費相当額を上限 月額50,000円まで支給しま す。
 ※テレワーク対象者は、原則、通勤交通費手当の支給はございません。  ただし、業務指示における出社時の交通費は、会社が認める範囲で別途支給します 
 
 
 テレワーク手当 テレワークを実施するにあたっての電気代及び通信費等並びに就業環境を整えるための費用と して、月額20,000円を支給します。
 
 通勤交通費手当
  22. 
 
 満3歳未満のお子さんを養育する場合、育児休業 の取得が可能です。 
 「育児・介護休業法」で定められた最長2歳までの期 間よりも長く取得が可能です。男女ともに取得実績 があります。
 育児休業 制度・福利厚生


    
 
 小学校入学までのお子さんを扶養しており、保育園 などの育児サービスを継続的に利用する場合、そ の月額基本料金の2分の1相当額を、上限50,000円 まで育児手当として支給します。 
 育児手当 
 小学校卒業までのお子さんを養育する場合、勤務 時間の短縮が可能です。 
 標準勤務時間は1日8時間ですが、5時間、6時間、 7時間から選択可能です。 
 育児短時間措置 
 
 ・同好会(公認の同好会は、会社より補助金支給) 
 ・LT大会(職種ごとに、持ち回りで5分ほどの短いプレゼン大会を開催しています) 
 ・slack (社内で用いているコミュニケーションツール。メールはあまり使いません!) ・ドワンゴ大忘年会 (全社員が一同に集まり、1年の振返りや社内表彰などを行います) 
 コミュニケーション活性 ・artifata GINZA KABUKIZA店(会社の中に美 容院があります!)
 施設 
 
 
 ・福利厚生倶楽部(RELO CLUBが運営する福利厚生サービスが利用可能) 
 ・関東ITソフトウェアの健康保険組合各種サービス(保養施設やスポーツ施設の利用が特別価格で利用可能) 
 ・財産形成制度(財形貯蓄制度、社員持ち株制度) 
 
 
 その他
 子育て支援
  23. N予備校
 
 Webフロント 
 チーム
 


  24. Webフロントチームの担当範囲 アプリケーション Webフロントエンド 教材コンテンツ フロントエンド 主要なものは ふたつ 主にPC向けの体験を提供 PC/SP双方に共通の体験を提供 1

    2
  25. アプリケーション Webフロントエンド 1

  26. アプリケーション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べったり
 リリース当初の実装から脱却
 これは目立つ事例、常にすべてを見直し続ける
 React v18以降を見据えて
 多方面に身軽にしやすく変化

  27. アプリケーションWebフロントエンドの今後 次世代N予備校とその先の世界を見据えて
 • 素早く仮説検証が可能な状態の確立 ◦ より柔軟なフィーチャートグル、ABテスト等を可能にしたい • 変更が容易かつメンテしやすい形に寄せ、保つ ◦ ex.

    画面どうしが独立になるように寄せ、互いを知る必要をなくす ◦ ex. 多くの画面でReduxは不要なうえ、暗黙の依存を作りやすいのでやめる • パフォーマンスの向上と維持 ◦ 計測体制を確立中、当たり前品質を維持 • アクセシビリティ向上と維持 ◦ 機械判定できる最低限を確保済(WCAG 2.1 Aの一部相当) 判定が難しい領域でも、持続可能な形の確立を目指す
  28. 教材コンテンツ フロントエンド 2

  29. 教材コンテンツフロントエンドのあらまし 一定のフォーマットに従うHTMLから、コンテンツを再生
 Android N予備校 アプリ iOS N予備校 アプリ N予備校 Web

    教材コンテンツ フロントエンド TypeScript jQuery→React移行中 教材 HTML - 参考書 - 問題集 - 選択式問題 - 記述式問題 - 論述式問題 - …
  30. 教材コンテンツフロントエンドの見どころ • 全クライアントから同じものを表示すること • 教材向けHTMLの仕様に対する開発となること ◦ 常にこれまで作成された教材との互換性考慮が課題 ◦ コンテンツの表現力を上げるも下げるも我々次第 ◦

    教材向けHTML仕様の、最終的な番人の立ち位置 • 数式や縦書き文書に対応すること ◦ 各種仕様やライブラリについて、正確な理解を要する • 仕様に未定義の部分はほぼ任意のHTMLがありうること ◦ HTMLやCSSの詳細な仕様に踏み入る機会が多い ◦ ブラウザやWebViewのバグも踏みがちで学びが多い 学習体験の核、簡単に求められがちだが厳しい要求の数々を全部やる
  31. 教材コンテンツフロントエンドの課題 • リリース以来の伸びしろが大きい実装からの脱却 ◦ 実装整理からの置き換えを種別ごとに進行中 ▪ Web フロントエンドのレガシーコードを置き換えるためのテストの考え方 • 教材作成者はHTMLに詳しくないことが多い

    ◦ 入力よりも気の利いた出力を可能にしたい ▪ より柔軟に再生結果をコントロール可能な仕組みに寄せている • 再生時について教材作成者への支援が不足している ◦ 教材作成者しか知りえない知識を織り込ませるよう補助したい ◦ 最終的な動作を確認するために手間がかかりすぎている ▪ ここはまだ手が届いていない Webの技術に乗った教材という資産の価値を守り、高めていきたい
  32. Webフロントチームについて • 総勢9名(2022年1月時点) ◦ 社員6名、業務委託3名 • GitHub Enterprise上でPR中心の開発 ◦ 厳しく優しくレビューしています

    ◦ CIでのテストの他、外観差分やPRごとのStorybookなど整備しています • 特に担当コードベースの概念はない ◦ 事実上の主担当はあるが、壁は設けていない(見直すかも • 1週間のスプリントで計画&振り返り ◦ 10分程度のデイリーミーティングで毎日状況共有 • 週1回のチーム内Webフロントエンド勉強会 ◦ 世のトレンド把握からWebまわりの仕様把握、業務知識共有まで
  33. N予備校
 
 iOSアプリ 
 チーム
 


  34. iOSチーム • 5名(社員2名、業務委託2名、アルバイト1名) ◦ 今年度2名が参画 現在も採用中 • 1週間単位のスプリントでチケット駆動開発 ◦ デイリーミーティングでやることや課題の相談など

    • GitHub.com で開発 ◦ Bitrise のため GitHub.com を利用 ※ 社内では通常 GitHub Enterprise を利用
  35. iOS 利用技術 使っている技術 使わない技術 使いたい技術 ・Swift ・RxSwift ・Action ・Alamofire ・Quick

    ・Nimble ・OHHTTPStubs ・CocoaPods ・SwiftLint ・Danger ・fastlane ・LicensePlist ・XCodeGen ・Objective-C ・SwiftUI ・Combine サポート対象OS iOS 13以上(2022年4月から iOS 14 以上)
  36. iOS アーキテクチャ View MVVM
 ViewController Storyboard ViewModel ViewModelInputs ViewModelOutputs Model,

    Repository RepositoryProtocol テストあり 依存あり
  37. iOS 最近のリリース ホーム画面リニューアル
 動画を続きからみる機能


  38. iOS その他の開発 • 便利なデバッグモードの作成 • ビルド構成の整理 • XCodeGen, SwiftGen の導入

    • Firebase - BigQuery 連携 • リファレンスリポジトリの作成とメンテ ナンス
  39. iOS 技術的課題の例 • Swift UI の導入調査・検討 ◦ 適したアーキテクチャの調査・検討 ◦ 全面的な移行手順の検討

    • 機能追加 ◦ バックグラウンド再生 ◦ Picture in Picture ◦ Wi-fiでの動画ダウンロード
  40. N予備校
 
 Androidアプリ
 チーム
 


  41. Androidチーム • 5名(社員2名、業務委託3名) ◦ 今年度3名が参画 ◦ 現在も採用中 • 1週間単位のスプリントでチケット駆動開発 ◦

    デイリーミーティングで開発状況の共有と困りごとの相談 ◦ Pull Requestの作成・レビューを素早く回すことで、コード品質の担保と開発速度の向上を 実現 • GitHub.com で開発 ◦ Bitrise のため GitHub.com を利用 ※ 社内では通常 GitHub Enterprise を利用
  42. Android 利用技術 サポート対象OS Android 6.0 以上(2022年4月から 7.0 以上)
 使っている技術
 使っていない技術
 使いたい技術


    ・Kotlin
 ・RxJava
 ・Navigation
 ・View Binding
 ・Jetpack Compose
 ・ViewModel, LiveData 
 ・OkHttp3
 ・JsonObject
 ・mockito-kotlin
 ・releases_hub
 ・Java
 ・Kotlin Coroutine, Flow 
 ・DI
 ・Retrofit
 ・Json Parser (moshi,    kotlinx.serialization など)

  43. Android アーキテクチャ Fat Fragment/Presenter から MVVM へ移行済み

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


  45. Android その他の開発 • Navigation 移行
 • Single Activity 化
 


    • Jetpack Compose の導入 と移行

  46. Android 技術的課題の例 • Jetpack Compose への全面移行 • 機能追加 ◦ バックグラウンド再生

    ◦ Picture in Picture ◦ Wi-fiでの動画ダウンロード • コードベースの改善 ◦ DI ライブラリの導入 ◦ JSON ライブラリの刷新
  47. N予備校 / 教務システム
 
 品質保証
 チーム
 


  48. 品質保証チーム • 5名(社員2名、業務委託3名) ◦ 今年度3名が参画 ◦ 現在も採用中 • 1週間単位のスプリントでチケット駆動開発 ◦

    N予備校と教務システム2つのアプリケーションの担当を分担 ◦ デイリーMTGはアプリケーションごとに近況共有 ◦ 週1のMTGで全体コミュニケーション
  49. 品質保証 取り組み • チームの立ち上げ ◦ ドメイン知識のキャッチアップ ◦ テスト環境の整備 • リグレッションテスト導入

  50. 品質保証 今後の課題 • テスト自動化 ◦ Autify の試験導入 • 開発プロセスの改善 ◦

    チケット運用フローの見直し メトリクス分析とフィードバック • シフトレフトな開発との協業
  51. N予備校
 
 サーバーサイド開発の取り組み
 


  52. N予備校のサーバーサイド開発の取り組み • 開発体制・技術スタックやアーキテクチャのご紹介 • 開発における課題と取り組みの事例 • 今後の展望

  53. 開発体制・技術スタックや アーキテクチャのご紹介

  54. 開発体制 • 2021/12/8時点で16名(内正社員 10名)の開発チーム ◦ 2021年度は5名の社員を新たに迎え拡大中のチーム ◦ 正社員の新卒:中途の比率については4:6 • プロジェクト毎に規模に応じた小規模なチームを編成し開発

    ◦ 2〜8名規模のチームとなることが多い ◦ プロジェクトを推進するリーダー間でのコミュニケーションや 週1で開催される定例において各プロジェクトでの意思疎通や連携を行っている
  55. 言語 / フレームワーク インフラ ツール 技術スタック・開発環境

  56. マイクロサービスアーキテクチャを採用 • 機能毎にサービスを分割し開発を 行っている • プロジェクト毎にチームを編成してい るため、メンバー全員がすべてのサー ビスに対して機能追加などの開発を 行っている ドワンゴ教育サービス開発者ブログ

    「N予備校のマイクロサービス」で 詳しく解説
  57. 技術選定 開発時の状況や提供する機能などに応じて適宜選定 代表的な例: • Ruby, Ruby on Rails ◦ 開発初期でのメンバーのスキルセットやリリースに向けての開発速度に重点が置かれていた

    ◦ 様々なドキュメントが充実していた • Node.js ◦ WebSocketを用いた機能においてイベント駆動のアーキテクチャが求められていた
  58. 開発における課題と取り組みの事例

  59. 開発における課題 • 技術的負債の蓄積 ◦ リリースから5年が経過し様々な機能追加を実施してきたトレードオフとして 複雑化した仕様やボトルネックが明らかになってきた ◦ モノリス化するマイクロサービス • 継続的なN高・S高の規模の拡大への対応

    ◦ 生徒数の増加に対してスケーラビリティの確保 ◦ 学習を支えるインフラとして高品質かつ早いサイクルでのデリバリー要求への対応 • 学習体験のさらなる向上に対しての取り組み ◦ 価値のあるサービス提供のための機能追加やコンテンツへの対応 ◦ ユーザーの学習に対して指導や評価を効果的にできるサービス開発への取り組み
  60. 開発における課題に対する取り組みの事例 • 教材・学習進捗管理サービスの改善 • 教材入稿ツールの改善

  61. 教材・学習進捗管理サービスの改善(2021/4〜) 課題 • モノリスとなりつつあるサービス ◦ 全体像の把握に要するリードタイムから機能開発の障害に ◦ 複雑化する仕様に比例した複雑度の高いコードベース • 開発当初の要件に対する設計思想と変化してきた要件

    ◦ 教材のデータ構造に対しての考え方が開発当初から大きく変化し 設計思想を反映した開発の継続の難易度が上がってしまった ◦ 単位認定授業の導入による教務システムとの連携など 当初想定していない要件の変化に対して設計の見直しなどの時間が確保できなかった
  62. 教材・学習進捗管理サービスの改善(2021/4〜) 改善へのアプローチ モノリスとなりつつあるサービスの分割を目指しAPIインターフェイスの改善と各モデル の責務を明らかに • 複雑化する仕様に対して大規模に変更を行うことが厳しいと判断し 徐々に改善していく方針をとった • サービス分割の障壁となりうるAPIインターフェイスを刷新 ◦

    教材と学習進捗を一緒に返していた APIの分割 ◦ 教材とカリキュラムのデータ構造の見直し
  63. 教材入稿ツールの改善(2021/10 〜) 課題 • 教材・学習進捗管理サービスの改善への追従 ◦ 既存ツールは教材・学習進捗管理サービスへの依存度が高く 改善を推進するのであれば何らかの形で依存度を低くする必要がある • 仕様と共に複雑化する教材に対応する制作コスト

    ◦ サービス仕様の複雑化に伴い教材に対しても様々な表現を可能にするため 入稿時の仕様や作業が複雑となり制作スタッフの作業負担が大きくなっている ◦ 教材増加に伴う入稿の長時間化や軽微な修正であっても反映に時間がかかる仕様など 質の高い教材の提供への障害に
  64. 教材入稿ツールの改善(2021/10 〜) 改善へのアプローチ これまでJenkinsなどで実行されるツールであったがWebサービス化を行うことで 複雑な教材仕様を吸収し制作スタッフの負荷軽減へ • より教材制作に集中できるような環境を目指し制作スタッフからの 改善要望やヒアリングをもとに企画 • 教材・学習進捗管理サービスの改善を推進するためにも

    教材の入稿フローやライフサイクルについてもゼロベースで再検討を実施
  65. 課題に対する取り組みの一例 教材・学習進捗管理サービスの改善

  66. プロジェクトの成り立ちと初期設計 • 開発チームからの提案によりボトムアップで実現 • サービスが目指す将来像やあるべき姿などの議論を経て課題箇所の特定や 改善のためのアプローチに対して徐々に大枠を決定 • 具体的にどこを改善するか・どれくらいの工数を費やし何をするかなど プロジェクトチームで合意形成を行い設計に落とし込む

  67. 開発体制・スクラムの導入 開発体制 • 8名のチームで開発 ◦ SM, Architect (2), Engineer (5)

    スクラムの導入 • スクラムガイドをベースに、フレームワークに則った各イベントを開催 • チームとして1つのゴールを目指すための課題認識やふりかえりにより 課題の可視化やアクションの定義・実践へ ◦ ふりかえりや改善を通してチームに合ったスクラムのやり方に変えていく
  68. OpenAPIを利用したスキーマ定義と改善に向けての取り組み • 新たなAPIインターフェイスについてはスキーマ駆動で実施 ◦ 実装提案と実際のユースケースの検討についてそれぞれ担当者を分け インターフェイスを中心としたコミュニケーションができるようにタスクを定義 ◦ これまでの提供してきた機能を継続して提供することができるかなど 細かくシーケンス図を作成し議論を行う •

    クライアントコードの自動生成やAPI仕様書としての活用 ◦ これまでOpenAPIでの定義を十分に活用できていなかった過去を反省し クライアントのコード生成や API仕様書としての活用を模索 ▪ Redocly/redocなどを利用し仕様書として把握しやすいドキュメンテーションを意識 ◦ interagent/committeeの利用によりテストにも活用
  69. N予備校のコアドメインとしてのサービスの立て直し これまでの検討の中で • 教材・学習進捗管理サービスは教材そのものの提供や その教材を利用した学習記録を行うN予備校のコアドメインといえる • 検討を進める内に教材と学習進捗についてモデルとして 別々の関心事を有するのではないかという発見があった 今後は教材と学習進捗について別々のマイクロサービスに分割しやすくする ためにもAPIインターフェイスの整理とそれぞれのモデルの分析・設計を

    推進していく
  70. 今後の展望

  71. 今後の展望 • N予備校をより教育的にも価値のあるサービスにしていく ◦ より開発を効率的に行うためにも継続した改善を実施する ▪ 直近で行いたい改善: • 教材・学習進捗管理サービスのマイクロサービスへの分割 •

    BFFとなるAPI Gatewayサービスの改善 ▪ Railsでの開発における課題を解決するためにも技術選定のゼロベースでの見直し ◦ 学力が正確に測定できる・効果的に学習を行えるサービスを目指した企画開発を行う • N高・S高の教職員や教材制作スタッフの業務改善をシステム化で支援し より質の高い教育の提供へ ◦ 教育のインフラとして要望されている機能の実現やエンジニアリングによる課題解決で 教育の品質を向上させていく ◦ ユーザーへのN予備校における学習体験の向上により「未来の当たり前の教育」の実現へ
  72. こんな人と一緒に働きたい • 「教育」というドメインにおいて高い関心や課題感を持っている ◦ N予備校が目指す実現したい未来は単純 「利用するユーザーが目標に向かい学習を行いその目標に対して どれくらい到達できているかを正確にフィードバックし最適な学習を促したい」 ◦ 実現したい未来や 現状の課題の解決や

    N予備校の今後を一緒に創る仲間を探しています! • 業務フローの改善や効率化といったキーワードにピンとくる ◦ N予備校はリリースから 5年が経過し教材制作や運用の面において 業務フローの改善・効率化といったポイントが明らかになってきた ◦ N高・S高の堅調な生徒数の増加というバッググラウンドの中で技術支援によって より効率が良く質の高い教育を提供できるのではないかという仮説の提案や 実証のためのPoCを経てエンジニアとして主体的に取り組んでいただける方!
  73. 「未来の当たり前の教育」を創っていきたい! • 「改善」にチカラをいれています ◦ ボトムアップで改善や機能追加の提案をプロジェクト化していくという営みがある ◦ 現在進行形で進めている改善プロジェクトにおいても意思決定のため プロジェクトメンバーの合意形成の大事にし納得感のある改善を推進 • これまでの技術選定に縛られずゼロベースで検討を行う風土

    ◦ 「技術が好き」というメンバーが集まり これまでチャレンジを恐れていたということを反省し適材適所の技術選定を実施し 提供するサービスの品質向上を目指す! 「教育」「改善」「効率化」に共感してくれる仲間を探しています!
  74. 教務システムについて

  75. これまでの流れ・概観

  76. None
  77. None
  78. None
  79. None
  80. None
  81. None
  82. None
  83. 技術について

  84. 旧技術基盤とは • 外部パッケージで使われ、つくられたもの ◦ 開発 ▪ Java8 / jQuery ▪

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

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

  87. 旧 ⇒ 新技術基盤への「ゆるやかな移行」 • データベースは旧/新で共有 ◦ データの寿命はシステムより長い • 100画面以上ある全ての JavaAction

    と HTMLテンプレートを 一気に移行することは不可能 ◦ そもそもユーザーの要求の捉え直しをせずにやっても意味はない • したがって既存画面の改修は旧基盤のまま躊躇なく行いつつ 新たな要求(新規画面追加、既存業務の見直しなど)を新基盤で実現 ⇒「ゆるやかな移行」 • 並行して開発者もサーバサイド Java メインから TypeScript / Next.js を修得、レベル上げしていく
  88. 今後について & なかま募集

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

    多くのユーザーに、軽快で使いやすいシステムを 新技術基盤を武器に提供していく 今後について
  90. なかま募集 たとえばこんな方... • 抽象的な業務課題を吸い上げて、システムに落とし込む上流工程やりたい ◦ 年々進化する学校なので課題も多いが、やりがいもあります • 業務システム開発で TypeScript /

    Next.js / コンテナ技術が できる・やりたい・やれるようになりたい ◦ いまはJavaしかできないけど…な人も歓迎 • いままで受託だったけど、内製やっていきたい ◦ ユーザーの感謝が得られますし、生徒数が増えたりコストが下がるのも嬉しいです まずはカジュアル面談からお待ちしています! 🙏