メルマガ登録
私は、IoTや機械学習が可能にする先進的なデータ分析・データ活用を支える分析システムを、エンジニアとして最新のIT技術を用いて設計・開発しています。
機械学習に関わっているという点で、良く似た役割にデータサイエンティストがありますが、データサイエンティストと私が、開発のどの過程で必要とされているかを意識すると、違いがわかりやすくなります。
データサイエンティストは機械学習モデルの構築やデータを実際に利用して精度を上げていく段階の仕事がメインになり、そうした機械学習によって作成されたモデルを、ITシステム(業務アプリケーション)として問題なく運用できる形に実装するのが私の役割になります。
よって、機械学習を活用した業務アプリケーション構築の進め方は上図となり、私は、このうち②と③を主に担当しますが、①の段階でも最終的な運用をイメージしながら関わることも一般的です。
販売管理や生産管理など、従来の業務アプリケーション構築では、何をどうやって作るか、つまりシステムの要件を先にしっかりと合意し、前の工程には戻らない前提の「ウォータフォール型」の進め方が一般的でした。品質を要件の達成度合いと考えると、ウォータフォール型の進め方には、品質保証がしやすい(わかりやすい)というメリットがあります。
一方、需要予測や数理最適化など機械学習技術を活用した業務アプリケーションの構築では、そもそも要件を明確にすることが難しい面があります。したがって構築したあともPoCを何度も繰り返し、検証環境へのデプロイを頻繁に行うアジャイル型のシステム構築が一般的です。この場合、だいたい2~3カ月といった短期間にイテレーション(アジャイル型開発における1回のサイクル)を実施することになります。
私たちが開発する機械学習システムは、不確実性が高く、業務上の要望を満たすとは限りません。プロトタイプを作っては、業務に必要なモデルとしての精度・処理速度をユーザと何度も検討することになります。そのためアジャイル型の開発が向いています。
しかし最終的には受発注システムなどの基幹業務システムと結合することで、企業システムとしての価値を生み出す必要があります。そうしなければ、いつまでもPoCだけをしている、いわゆる「PoC貧乏」になってしまいます(ちなみにプロトタイプを作る期間は通常イテレーション3回分ぐらいです。つまり6~9カ月ぐらいが標準的です)。
つまりアジャイル型で開発したシステムでも、最終的にはウォータフォール型で開発したシステムと結合をする必要があるということです。このことは意外と見落とされがちです。ウォータフォール型のシステムは、複数の業務に関わるトランザクションが一元的に管理されているモノシリックな(一体型の)構造となっていることがほとんどです。モノシリックな構造のシステムにアジャイル型のシステムを結合する際には、さまざまな注意が必要となってきます。
例えば、マイクロサービスという機能毎に独立したシステムはアジャイル型の最たるものですが、こうしたものと結合する際には、ITシステム全体で既存の業務システムとの整合性が取れるかどうかをしっかり見極めなければなりません。この点に関していえば、基幹システムと分離された新規の業務サービスを開発して提供するほうが難易度はずっと低くなります。
筆者自身、ブレインパッドで5年間開発をしてきましたが、正直にいうと失敗も数多く経験してきました。失敗のパターンは最後にまとめますが、失敗例として多いのが、お客様の業務を把握しきれていないのにシステムを作り込んでしまい、結局使われなくなったというものです。
例えばレンタルビデオの需要予測システムを開発した際に、分析企画部門と早い段階でUIまで設計したことがありました。しかし、それをいざ業務に使ってもらおうとすると、単純に予測結果を提示しても、それはメーカーへの交渉材料にならないと指摘されたのです。需要予測で2本買えばいいという結果が出ても、メーカーからは「これは人気映画なので最低4本は必要です」と言われるかもしれません。その際に「需要予測では2本と出ている」と言ってもメーカー側は聞きいれないでしょう。あるいは慣習として最低ロットが4本からということもあるかもしれません。
要するに今まで現場の人たちが培ってきたノウハウとの整合性が取れていなかったということです。業務ルールや慣習がしっかり組み込まれていない業務システムを提供しても誰も使ってはくれないのです。
しかしアジャイル開発だと短いスパンで次々と作ることができるので、とにかく要望に応えて作ればいいということになりがちです。その結果、現場業務との整合性を確かめずにシステムとして作り込んでしまい、修復が難しくなるケースが頻発します。いったん落ち着いて、お客様の業務サイドを交えてビジネスの青写真をしっかり決めていくタイミングをプロジェクトのマイルストーンとして設ける必要があるのです。前掲表の中に「この段階ではまだ仕組みを作り込みすぎず、適切なタイミングで業務サイドと業務要件を固める時間を取れる」とありますが、まさにこのことです。
後編では、データ分析を「システム実装」するための重要ポイントについてお話します。
この記事の続きはこちら
【後編】データ分析を「システム実装」するための重要ポイントとは ~機械学習を活用した業務アプリケーション構築~
あなたにオススメの記事
2023.12.01
生成AI(ジェネレーティブAI)とは?ChatGPTとの違いや仕組み・種類・活用事例
2023.09.21
DX(デジタルトランスフォーメーション)とは?今さら聞けない意味・定義を分かりやすく解説【2024年最新】
2023.11.24
【現役社員が解説】データサイエンティストとは?仕事内容やAI・DX時代に必要なスキル
2023.09.08
DX事例26選:6つの業界別に紹介~有名企業はどんなDXをやっている?~【2024年最新版】
2023.08.23
LLM(大規模言語モデル)とは?生成AIとの違いや活用事例・課題
2024.03.22
生成AIの評価指標・ベンチマークとそれらに関連する問題点や限界を解説