社会課題解決型MLEチームを目指して 試行錯誤の末にたどり着いたフルスタックMLEとは
初めまして、エクサウィザーズで機械学習エンジニア兼構造化データグループのグループリーダーをしております小野晃司です。リーダーを務める以前から、組織のあり方やチームについて試行錯誤してきました。以前の記事はこちらになります。本記事では、今後のエクサウィザーズの1つのグループとして、どのようにエンジニアを育成していくのかを紹介しています。
エクサウィザーズが目指す社会課題解決
いきなりですが、エクサウィザーズが掲げるミッションは「AIを用いた社会課題解決を通じて、幸せな社会を実現する」です。社会課題といっても、その内容は千差万別です。1つの社会課題に対して解決方法を1つ提示できた場合、それが容易に他の社会課題に対しても適応できるということは稀です。
そのため、多くの社会課題を解決するためには、多くの解決方法を提供する必要があります。そしてそれら社会課題は、たいていの場合は時間的な制約が存在します。限られた時間内で、最もよいと思われる解決方法を提案することが重要になります。
では、限られた時間内で多くの社会課題解決をするためにはどうしたらよいでしょうか?そこでAIの出番です。AIは曖昧な入力に対して、確率的に該当する出力を提示することができます。簡単に言ってしまえば、「曖昧な入力=応用が効きやすい」とも考えることができます。つまり、1つの解決方法を発展・改変することで他の社会課題の解決に繋げることができるのです。
さらに踏み込んで考えてみましょう。私たちエクサウィザーズのメンバーは個々に解決したい社会課題を内に秘めて入社してます。2022年3月末時点で社員数が約350名なのですが、単純計算でもそれぞれが解決したい社会課題は350個ほどあると考えられます。
課題の先にいるエンドユーザーの幸福をいち早く届けるためには、高速に社会課題を解決する必要があります。そのための一つの方法がフルスタックMLEの存在となります。
フルスタックMLEとは?
構造化データグループが目指すフルスタックMLEとは、「Minimum viable product (MVP)、実用最小限の製品を高速に提供する環境を顧客に提供するMLEエンジニア」のことです。では、グループがどのような状態になっていれば、上記の目標を達成できるでしょうか?
この目標を見て多くの方が、「アジャイルソフトウェア宣言」※1と似ていることに気付くと思います。「アジャイルソフトウェア宣言」は、顧客との対話を重視し、顧客の日々変化する要望に素早く対応するための開発理念となります。具体的には以下のような宣言項目があります。
この宣言は以下の4つの価値観を示し、これらの価値観を有するソフトウェア開発を「アジャイルソフトウェア開発」と名付けています。
では、この開発理念に基づくチームを組成するためにはどうしたらよいか?この理念をそのままPoC(Proof of Concept)フェーズが多い機械学習のプロジェクトに応用できるのでしょうか?
ここで機械学習プロジェクトの概要を見てみましょう。多くのPoCフェーズの機械学習プロジェクトはある顧客の課題に対して、機械学習による解決策が有効かどうかを検討します。そのPoCフェーズをさらに分解すると以下のようになります。
データの準備、機械学習手法が検討できるかのデータの確認、モデルが必要ならモデル作成、KPI(やROI)の選定があげられます。このプロセスには多くのハマリポイントが存在します。
PoCフェーズの機械学習プロジェクトを成功させるために、最も重要な要素が「顧客との対話」です。顧客が検証したい内容を鮮明に具体化するためには、顧客の要望を網羅的に聞き出し、優先順位をつけ、実現可能な機械学習による解決策(必ずしも機械学習が必要とは限らない)を繰り返し提案する必要があります。
これはアジャイルソフトウェア開発宣言の「契約交渉よりも顧客との協調を」に合致します。 つまり、理想的にはアジャイルソフトウェア開発に基づく機械学習チームを組成し、PoCフェーズを担当する必要があります。 ※2
どうしてアジャイルチームを組成するのではなくフルスタックMLEなのか?
先述した通り、私たちが解決したい社会課題は千差万別です。お金が十分にあるプロジェクトがある一方で、マネタイズしにくく、十分に予算がかけられないような社会課題も多いです。
そうした中で、アジャイルソフトウェア開発を実施するためには多くのメンバーが必要となります。バックエンド、フロントエンド、DevOps、データサイエンティスト、デザイナー、プロジェクトマネージャーなど、開発体制を整えようとするとここに上げられる職種だけでは足りないかもしれません。
一方で、MVPを作りたいという目標に対して、上記のような開発体制はいささか大げさかもしれません。私たちエクサウィザーズのエンジニアが実現したいことは「最初に触れる見られるようなMVP」です。そのあとのシステム導入に伴う開発は、やはり上に述べたような開発体制をチームに任せて開発を進めるべきだと考えています。
なんでも出来るスーパーマンを育成? いいえ、違います
MVPを作るにしても、必要なスキルをもつメンバーを集めなければ、MVPで検証したいことが検証できなくなってしまいます。MVPで検証したいことを明確化するためにも必要なスキルを持つメンバーは必要です。
ならば、フルスタックMLEの役割はなんでしょうか?それはプロジェクトの先を見通す人材となることです。この記事で繰り返しお伝えしているように社会課題は千差万別です。それぞれの社会課題に対するMVPの検証内容の複雑度合いも異なります。
私が考えるフルスタックMLEは、MVP作成フェーズとPoCフェーズの切り替えが必要なのか?体制を変更する必要があるのか?などフェーズ間を繋ぎ合わせるような存在となることが大切です。そのためには、PdM、ソフトウェアエンジニア、デザイナーなどの役割を広く浅く知る必要があります。
エクサウィザーズでは、さらに一歩進んでフルスタックMLEが適切なチーム体制をアレンジした後、MVPを作成するフレームワークやプラットフォームを統一化することによってMVPの質を均質化することができると考えています。
エクサウィザーズが開発しているexaBase Studioもその一つです。このプラットフォーム上で提供できることを、MVPの検証できる範囲であることに限定すれば、MVPの質を均質化することができ、検証内容をより具体化できます。
もちろん、プラットフォームをAWSなどのクラウドサービスに広げてもよいと考えています。その場合は、MVPで検証したい内容を増やすことが出来るでしょうが、一方でMVPの質はそれぞれで異なりやすく、さらに複雑なことをやろうとすると、そのためのチーム体制も適切にアレンジする必要があります。
理想的には、PoCフェーズとMVPフェーズを明確に分け、それぞれの責任範囲も明確に分ける必要があります※2。 フルスタックMLEは責任範囲が広く、ややスーパーマンのような存在となっています。しかし、実際にやっていることは難しいことではありません。以下に述べるような具体的な施策のみになります。
具体的に取り組んでいること
では、実際にどのようなことをやっているのかをここで紹介します。私は、グループ内で勉強会を通して他のチームメンバーと積極的にコラボレーションすることを実施しています。
プロダクトチームを巻き込んだ「ソフトウェアアーキテクチャ」勉強会
AWS勉強会
PdMを巻き込んだPdM勉強会
グループ内でのプロトタイプの作成(それに対するレビュー)などなど
この回では、顧客課題と社会課題を単語的に入れ替えて読める部分が多々あります。これはあえてこのようにしています。顧客課題と社会課題の違いは規模、文化、ステークホルダーの違いにあると考えています。それらの違いを適切に整理し、機械学習で解くべき問題であることに定式ができるのであれば、フルスタックMLEが活躍できると考えています。
最後に
エクサウィザーズでは社会課題解決のための仲間を募集しています。ご紹介したフルスタックMLEで活躍したいと思った方、ぜひ力を貸してください。
まずはカジュアル面談を申し込みたいという方はこちらから。
※1
・藤井, 亮宏. 2021. 現場で活用するための機械学習エンジニアリング. N.p.: 講談社.
・安井, 翔太. 2021. 施策デザインのための機械学習入門: データ分析技術のビジネス活用における正しい考え方. N.p.: 技術評論社.
・Vaughan, Daniel. 2021. AI技術を活かすためのスキル: データをビジネスの意思決定に繋げるために. Translated by 高弘 長尾. N.p.: オライリー・ジャパン.
・Beck, et al. 2001. アジャイルソフトウェア開発宣言. https://agilemanifesto.org/iso/ja/manifesto.html.
※2 yurfuwa, and DeNA. 2022. “AI Project Management Flow and Build Trap Review.” https://speakerdeck.com/yurfuwa/ai-project-management-flow-and-build-trap-review.