以前はウォーターフォール開発でITツール開発が行われるのが一般的でしたが、昨今はアジャイル開発が利用されるシーンが増えています。
アジャイル開発は機能ごとに計画から開発や検証を繰り返し、最終成果物を完成させる開発手法で、仕様変更に柔軟な対応ができ開発におけるコストも抑えられるため、AI開発に最適です。
今回のテーマはAIのアジャイル開発。
AIの開発を検討している方、コストを抑えた開発方法を知りたい方の参考になれば幸いです。
アジャイル開発とは?
アジャイル開発とは、近年よく利用されるシステムやソフトウェアなどITツール開発における手法の一つです。
開発における以下の工程を、各機能ごとにスピーディーなサイクルで繰り返すのが特徴です。
◾️|計画
◾️|設計
◾️|実装
◾️|テスト
ITツールはさまざまな機能の集まりで、アジャイル開発では優先順位の高い機能から開発を行い、最終成果物を完成させます。
リリースまでの期間を短縮し、開発途中での仕様変更にも対応可能。
ここからは、ウォーターフォール開発との違いや必要とされてきた歴史的背景について詳しく解説します。
アジャイル開発が必要とされてきた歴史的背景
アジャイル開発とウォーターフォール開発の違い
アジャイル開発が利用される前はウォーターフォール開発が一般的でした。
ウォーターフォール開発とは、開発するITツール全体像における以下の工程を、上から順に滝が流れるように行う手法です。
◾️|要件適宜
◾️|設計
◾️|開発
◾️|実装
◾️|テスト
◾️|運用
各工程が終わらなければ次の工程に移らないため、仕様が固まった後に開発がはじまり予算やスケジュールが立てやすい特徴があります。
ただ、開発をはじめるまでに期間を要し、また途中で顧客から要望があった場合も、簡単に仕様変更ができるわけではありません。
一方、アジャイル開発は各機能ごとに開発を行うため、スピーディーに対応でき、途中の仕様変更にも柔軟な対応がしやすいのが特徴です。
アジャイル開発が必要とされてきた歴史的背景
アジャイル開発の考え方は、2001年にアメリカ・ユタ州で17人の技術者やプログラマーたちが、システムの効率的な開発手法を議論する中で生まれました。
現代のビジネス環境は変化が激しく将来予測が簡単ではありません。
不確実な時代のビジネスをサポートするITツールも、変化に対して柔軟な仕様変更ができなければ、開発が完了した際にすでに陳腐化してしまう可能性があります。
開発企業が素晴らしいITツールを開発する方法を模索する中、技術者たちはビジネスをサポートするという本来の意義を見失っているのに気づき、アジャイル開発を提唱しました。
発表された「アジャイルソフトウェア開発宣言」では、以下が提唱されています。
◾️|顧客の要望を優先する
◾️|価値のあるソフトウェアをスピーディーに開発する
◾️|各機能を短期間でリリースし続ける
◾️|開発途中で仕様が変更する場合も積極的に受け入れる
◾️|開発後期に仕様変更が発生した際も柔軟に対応する
◾️|顧客とのコミュニケーションを大切にする
つまり、アジャイル開発は変化の激しいビジネスをサポートするITツールの開発手法を目指して生まれたものです。
AI開発でのアジャイル開発のメリット・デメリット
昨今のビジネス環境にあわせ生み出されたアジャイル開発には、良い面だけでなく悪い面が存在するのも事実です。
アジャイル開発で行うか、ウォーターフォール開発で行うかは、特徴を押さえ選択するのが重要でしょう。
ここからは、アジャイルで開発する際のメリットとデメリットについて詳しく解説します。
アジャイル開発のデメリット
アジャイル開発のメリット
アジャイル開発の最大のメリットは変化に対して柔軟な対応ができることです。
冒頭で解説した通り、アジャイル開発では各機能ごとに以下を実施しリリースします。
◾️|計画
◾️|設計
◾️|実装
◾️|テスト
AIなどの開発は短期間で終わらないケースも少なくありません。
ビジネス環境や最新のテクノロジーが生み出され続けている昨今、開発期間が長期化するほど、ニーズ変化により仕様変更が発生する可能性が高まります。
ウォーターフォール開発の場合、仕様変更などがあれば一から設計が必要。
しかし、アジャイル開発は機能を細分化しスピーディーなPDCAを回すため、仕様変更に柔軟な対応ができ、顧客の要望とのミスマッチがなくなります。
また、細かいPDCAを回すため修正に工数がかからないのも魅力の一つです。
AI開発において、リリース後不具合を発見するケースもあります。
不具合の修正には多くの工数がかかり、開発期間の延長やコスト増加の原因ですが、仕様変更同様スピーディーに対応可能。
このように、アジャイル開発では顧客のニーズを満たしたAIを、短期間・低コストで開発できます。
≫≫【2023年最新】AIシステム開発の費用相場と失敗しない外注先の選び方を解説
アジャイル開発のデメリット
アジャイル開発にはメリットがある一方、デメリットも存在します。
具体的には、アジャイル開発の場合、仕様変更が前提のため開発の全体像が把握しにくくスケジュール管理が難しく、場合によっては開発期間が延びるケースもあります。
また、機能を細分化するため開発しているAIの全体像を把握するのが困難です。
アジャイル開発をする際には常に開発の目的を確認し、それをもとに仕様変更の検討やスケジュール管理を行うのが重要です。
また、期間が延長した場合は、携わるメンバーの入れ替わりなどにより、開発するAIの品質が変動するケースもあります。
メンバーの入れ替わりがあれば、信頼関係の構築や目的の共有などを行う手間も発生するでしょう。
AI開発におけるアジャイル開発の流れ
メリット・デメリットが存在するアジャイル開発ですが、柔軟な変化が求められるAI開発には有効で、開発コストも抑えられます。
ここからは、AI開発におけるアジャイル開発の以下の流れについて詳しく解説します。
プロトタイプの作成
AIモデル開発を行う
AIモデル検証から再度繰り返す
現状分析を行う
アジャイルでAIを開発する際は、まず現状分析から入ります。
アジャイル開発に限らず、AIを開発する際は目的や解決したい課題を明確化するのが非常に重要です。
AI開発には多額の費用がかかるため、開発後利用できなければ大きな損失につながります。
自社内の課題を整理し、開発目的を明確にしましょう。
そもそもAI開発を行うかの判断をする際は、目的が達成できるか、費用対効果が得られるかの検討が重要です。
AI開発が有効であると判断できれば、現状分析をもとに仕様を決定し、その仕様をAIで実現できるか検証します。
プロトタイプの作成
目的の達成をAIでできる確証が得られれば、PoC(Proof of Concept)と呼ばれるフェーズに移り、プロトタイプを作成します。
実際のAIモデルを開発し、期待通りの成果が得られるかの検証や課題の洗い出しを実施。
また、AIの精度を高めるために必要な機械学習用のデータが十分あるかなども確認します。
AIモデル開発を行う
期待するAIの成果が得られるかの検証がプロトタイプにてできれば、いよいよAIモデルを開発します。
開発をする際は、プロトタイプ作成時に発生した課題に対するチューニングも行いながら進めます。
AI開発の初回は期待する成果が出ないケースもあるため、開発から評価を細かく実施し、完成に近づけるのが基本です。
AIモデル検証から再度繰り返す
AIの開発が完成し現場に導入した後も、検証や評価を行い、必要に応じて再学習を実施します。
AIは一度開発して終わりではなく、現場で出た課題の修正や、新たに取得したデータをインプットし精度を上げるのが重要です。
定期的に最新のデータをインプットさせなければ、出力される回答が正しいものになりません。
アジャイル開発が向いているプロジェクト
前述の通り、アジャイル開発はメリット・デメリットの両面があるため、必ずしもすべての開発で有効なわけではありません。
最後に、アジャイル開発に向いている、以下のプロジェクトについて詳しく解説します。
継続的に新機能をリリースしたい
ナレッジや顧客の声をすぐに反映させたい
正解がなく新しいものを生み出したい
継続的に新機能をリリースしたい
AIのように、一度開発すれば完成するわけではなく定期的なアップデートが必要であるITツールの場合、アジャイル開発が有効です。
アジャイル開発は、運用・評価・改善を繰り返し、仕様変更前提で行われるため、より現場で有効活用できる機能の実装が可能。
また、仕様変更に必要なコストが抑えられる開発方法である点も、継続的に機能をリリースしたいサービスや製品開発に向いている要因です。
ナレッジや顧客の声をすぐに反映させたい
アジャイル開発は、完成品を決めてから開発に入るのではなく、開発・検証・改善のPDCAを回しながら完成を目指す方法です。
ビジネスの環境変化が激しい昨今において、サポートするITツールも柔軟な変化が必要です。
アジャイル開発であれば、ナレッジや顧客からの要望をすぐに反映させられるため、変化が予測されるサービスや製品を開発する際に向いています。
正解がなく新しいものを生み出したい
正解がなく新しいものを生み出したいケースでもアジャイル開発が向いています。
前述の通り、アジャイル開発は開発・検証・改善を繰り返しながら完成を目指します。正解がなく新しいものを生み出す場合は、そもそも要件定義が困難で設計・開発フェーズに入れません。
しかし、アジャイル開発はすべての要件定義が終わっていなくても、設計・開発に進み、その過程で調整を行います。
まとめ
本記事では、アジャイル開発の概要や、AI開発をアジャイルで行うメリット・デメリット、流れ、適しているプロジェクトについて詳しく解説しました。
アジャイル開発は機能ごとに計画から開発や検証を繰り返し、最終成果物を完成させる開発手法で、途中で仕様変更があった際も柔軟な対応ができ開発におけるコストも抑えられます。
AIのように、継続的に新機能をリリースしたいケースや、ナレッジ・顧客の声をすぐに反映させたいケースに有効な開発方法です。
AI開発をする際は、長期的に新機能の実装や、再学習をするのを見越し、アジャイル開発で実施するとコストも抑えられるでしょう。