alms.dev

Aidemy の開発者ブログです。

Aidemy のリーンな開発思想と,なお必至な技術的負債への向き合い方

このサイト alms.dev は,株式会社アイデミーが開発するソフトウェア Alms に関する技術情報などを発信するサイトです.この投稿では,Aidemy のリーンな開発思想と,なお必至な技術的負債への向き合い方を紹介します.

10万人超に価値を提供する Aidemy

Aidemy は AI 学習 / 組織の DX 支援のための e-learning プラットフォームとして,2017年より多様なニーズに応えるサービスを次々とリリースし,そのユーザ数は提供開始からわずか3年ほどで10万人を超えました.Aidemy では日々膨大な量の Python コードが実行され,多様な動画が再生され,活発な多くのユーザの学習を支えています.

f:id:aidemy-blog:20210910172610p:plain

Aidemy の歴史

Alms とは,これらの急成長する Aidemy サービスの提供を一手に担うソフトウェアです.しかし Alms は,最初からこれら全てのサービスを担っていたのではありません.2021年3月まで Aidemy のサービスは,全く異なる3つのソフトウェアによって提供されていました.

MVP による科学的ソフトウェア開発

スタートアップ企業でソフトウェア開発をする人であれば,MVP (実用最小限の製品) という言葉を聞いたことがあるかもしれません.MVP とは,製品開発に役立つフィードバックをユーザから得られるだけの「最小限の機能」を備えた製品のバージョンのことです (Wikipedia).MVP を小さく作り,繰り返しユーザからフィードバックを得ることで,最少の手戻りで製品を「正しい」方向に導くことができます。

f:id:aidemy-blog:20210910172650p:plain

MVP の解説図

MVP の考え方を分かりやすく表現した図として,H. Kniberg 氏が描いた絵が有名です.最初から自動車が答えだと決めつけて製品開発を始め,あとから「ユーザのニーズは自動車でなかった」と判明してしまったら,埋没費用は膨大です.そうした悲劇を避けるためには,まずスケボーという最小限の製品 (MVP) でユーザの反応を確かめ,次にスクーターで確かめ,... と繰り返し,ニーズを読み誤るリスクを最小化するのです.

"スケボー" が製品を正しく導く

資源の限られたスタートアップでは,ユーザのニーズの読み誤り等で時間やお金を浪費するのは特に致命的です.Aidemy も他のスタートアップの例に漏れず,浪費や失敗のリスクを最小化するために,MVP を使って小さな検証を積み重ねる「リーンな開発」を心がけてきました.

Aidemy はまず Aidemy Premium のために Fastpyter を開発しました.Fastpyter は機械学習に重宝される Python パッケージや Jupyter Notebook がインストールされた Aidemy Premium の受講者専用の仮想環境で,Aidemy が最初に開発した MVP です.Fastpyter から得られたノウハウとフィードバックは,次に開発した RUN Server (Aidemy Free で使用) に活かされており,RUN Server の学びを反映しさらに発展させたものが Alms です.

Fastpyter や RUN Server を各段階での MVP として,Aidemy サービスを担うソフトウェアは小さな検証と堅実な改善を繰り返し Alms へと辿り着きました.この道のりが決して誤りでなかったことは,冒頭に述べた実績が証明しています.しかしその一方で,わずかな技術的負債を残してきていることもまた事実でした.

置いてきた "スケボー" の回収

3番目のサービス Aidemy Business のために開発した Alms が完成したとき,Fastpyter と RUN Server は既存サービスの提供を担うシステムとして活躍していました.しかし先進的な機能を搭載した Alms が新サービスで高い付加価値をユーザに提供するにつれて,先行していた2つのソフトウェアが相対的に「レガシー」としてのニュアンスを強めていきました.Fastpyter と RUN Server を Alms で置き換えることで,既存サービスの品質向上が望めるだけでなく,分散してしまったシステムの保守コスト削減にも繋がります.このことは次第に切実な課題となっていきました.

f:id:aidemy-blog:20210910172733p:plain

Alms がサービスを刷新した

 

Aidemy ではこの課題に対し,周到な計画を立てて取り組みました.システムの置き換えによる影響範囲を検証し,互換性を維持できない一部の教材の提供終了を1年以上前もって予告するなど,必要に応じビジネスサイドとも緊密に連携しました.そして予告から十分な猶予を経た2021年4月に Aidemy Free のシステムの刷新を行い,Aidemy Premium でも同様に,影響を最小限に抑えた円滑な移行を実現したのでした.

Alms を形づくる「価値観」

2021年7月現在,ごく一部の例外を除き,すべての Aidemy サービスで Alms が共通基盤として提供されています.こうしたことが実現できた背景には,失敗を最小化するための徹底した科学的アプローチがあり,機動的かつ有機的に協働する組織があり,何よりユーザに最高の価値を届けたいと思う熱意があります.Alms 開発のあらゆる場面で,Aidemy が共有する価値観が重要な役割を演じたことは間違いないでしょう.

Alms はより高みを目指し,これからも改善を継続していきます.開発者ブログの今後の更新にご期待下さい!Twitter @AlmsDev も是非フォローお願いします.