最終更新日:
AI NOW アドベントカレンダー19日目です。
クロノスでITエンジニアを育成する事業(企画・運営・テキスト開発・講習など)を担当している大石宏一です。
12月8日に弊社の鈴木が「AIのシステム開発はこう変わる」と題し、AIを含んだ製品やサービスを作るシステム開発が、どのように変わるかという内容の記事を本アドベントカレンダーに寄稿させていただきました。
今回は私が「AIでシステム開発はこう変わる」と題し、製品やサービスを作るシステム開発が、AIによってどのように変わるかについて皆さんと共に考えていけたらと思っています。
AIの普及に立ちはだかる“日本人の投資文化”
私は全国あちこちで主に企業の経営者の方々に「AIとは何か」「AIビジネスの可能性」といったテーマで講演をいたしました。講演には、IT業界ではない企業の経営者の方々も多く、AIが今とても注目度が高いことが実感できます。
しかし、講演後の懇親会でお話を聞いてみると、具体的なアイデアがあっても、AIを含んだ製品やサービス・システムを作る(作ってもらう)行動にはなかなか移せないといった反応が多いのが現状です。
そもそも日本は世界に比べると保守的な考え方が多く、目の前の課題を優先し、先行的な投資は後回しになる傾向があります。
また、AIのようにやってみないと効果がわからないようなものは、予め「何が・いつまでに・いくらでできるのか」を明らかにできません。そのため、従来のシステム開発のような開発ベンダーに発注する際の請負契約を結ぶことが困難なことも、AIを含んだ製品やサービスの開発にブレーキをかけている要因の1つと考えています。
冒頭からAIの現状や未来について、少々ネガティブな内容を書いていますが、決して悪いことばかりではありません。それは日本が先進国の中で 人口減少が特に著しいことです。人口減少はネガティブに捉えられることが多いのですが、AIの普及にとっては決してマイナスではないと思っています。むしろプラスかもしれません。
人口減少によって、やらなければならない仕事の量に対してこなせる人が少なければ、何かで補わなければいけませんが、定年を伸ばしたり、女性や外国人労働者を増やしたりといった選択肢もある中、AIやロボットを活用したITシステムも選択肢に十分入ってくると考えられています。つまり、日本はAIを含んだ製品やサービスを作っていかなければならない状況に置かれる可能性があるのです。
品質に関する考え方
さて、「AIを含んだ製品やサービスの開発が当たり前になってきたとき、システム開発はどのように変わっていくか」ですが、ハード面からお話すると新しい契約形態を整える必要があると考えています。先に述べたように「何が・いつまでに・いくらでできるか」を明らかにできないことも理由の1つですが、AIを含んだ製品やサービスが何を目的としたものかを定義し、開発するAIの製品やサービスが目的(課題やニーズ)をどれだけ満たせているかを測っていく必要があります。(作っては試してみるような、アジャイル型の開発スタイルが合っていると思います。)
しかし、日本のシステム開発において主流である請負契約は成果物責任であり、ある課題を抱えたユーザ企業が開発ベンダーにシステム開発を請負契約で発注しても、開発ベンダーはバグ(欠陥)がほとんどないシステムを納品(リリース)すれば契約を履行したことになり、納品(リリース)したシステムをユーザ企業が使って、もともと抱えている目的(課題やニーズ)を達成しなかったとしても契約不履行にはなりません。(納期や費用が予め決まっているため、要件を固め、設計をし、実装・テストをした後リリースするようなウォーターフォール型が主流です。国内のシステム開発の96%以上がウォーターフォール型というIPAの調査結果もあります。)
そのため、このまま請負契約でAIを含んだ製品やサービスの開発を発注/受注することは品質の観点から問題が生じる可能性が高いのです。日本がこのままユーザ企業とIT企業の間で、システム開発を受発注する関係を維持するのであれば、新しい契約形態を整える必要があると考えています。今ある契約形態の中では、サブスクリプション契約が近いのかもしれませんが、単純な使用権だけではなく、ユーザ企業に改変要望を認めたり、販売権を別に定めたりといったことが必要になるでしょう。
新しい契約形態では、「ITベンダーはユーザ企業(お客様)の課題やニーズを満たす努力をすること(私は、これを”価値共創責任”と言っています)」を前提としたものである必要があると感じています。現状、AIを含んだ製品やサービスの開発の契約は、ユーザ企業とITベンダーが個別に契約を結んでいますが、今後品質の問題をクリアにするためには、標準となる契約フォーマットが必要でしょう。また、標準的な契約フォーマットができれば、AIを含んだ製品やサービスの開発が日本でもっと盛んになると思います。
AIエンジニアの育成
ソフト面では、AIエンジニアの育成が必要です。AIを含んだ製品やサービスの開発は、大手IT企業が提供するフレームワーク(フレームワークに含まれる既成のアルゴリズムのライブラリ)を使うことが一般的であり、そのためにはPython言語を学ぶ必要があります。(厳密にはPython言語である必要はないのですが、AIのライブラリを使うフレームワークの多くは、Python言語をサポートしていて、また情報もPython言語のものが多いのが実状です。)ただし、AIを含んだ製品やサービスは、フレームワークに備わっている既成のいくつかのアルゴリズムの中から目的に合ったアルゴリズムを選んだり、そのアルゴリズムに渡すパラメータやその組み合わせ方を変えるくらいであり、結果的に数百行程度のプログラムで済むため、例えばPython言語を選んだとしてもPython言語をすべて知る必要はありません。
むしろ機械学習のアルゴリズム・数学的な理論を学ぶ必要があります。数学的な理論は本当に難しいため、正確に理解するのは困難ですが、どのアルゴリズムがどういった特性があるのか、他のアルゴリズムとはどう違うのかといったことを理解しておく必要はあります。
また、受発注関係においてAIを含んだ製品やサービスを開発していくには、先にも書いたユーザの課題やニーズを正確に捉え、満たすためのアプローチを考えられなければならず、これはITスキルに加え、経営的なスキルや視点がないとなかなか難しいことであると考えています。
システム開発の受発注関係の解消!?
ここまでシステム開発をITベンダーに依頼するやり方を前提とした話をしてきました。日本人は失敗をしないために、事前に打ち合わせを何度も繰り返し、最良な方法を頭で考えてから、行動に移します。(欧米ではやってみて、ダメだったら計画を変える考え方が一般的なんだそうです)
システム開発もまさにそのとおりで、日本では打ち合わせを何度も繰り返し、最良な方法を頭で考えて設計し、それを時間をかけて作るというウォーターフォール型が一般的ですが、欧米では作って試して、ダメなら変更するというアジャイル型が主流なんだそうです。
私は、受発注関係においてユーザ企業の課題やニーズを満たすことを目的とするのであれば、ウォーターフォール型は限界があると感じています。かと言って、失敗をしたくないが故の堅実なアプローチを取ろうとする日本人の考え方もわかります。そのため受発注関係においてアジャイル型を成立させることは困難だと思います。先にも紹介しましたIPAの調査で、国内のシステム開発の96%以上がウォーターフォール型なのは納得ができます。
とすると、「何が良いの?」という話になりますが、システム開発の受発注関係の解消がポイントだと考えています。開発を他の企業に頼むのではなく、自ら開発するのです。
実は、総務省が2025年までにIT人材を200万人にしようとしています。2011年は約100万人(ユーザ企業の情報システム部門が約25%、システム開発するITベンダーが約75%)を、2025年には約200万人(ユーザ企業の情報システム部門が約50%、システム開発するITベンダーが約50%)にしたいんだそうです。またこの数字の意味は、ユーザ企業は自分たちが欲するシステムは自分たちで作り、IT企業はシステム開発を受注して作るのではなく、製品やサービスを作って世の中に売っていきましょう。イノベーションを起こしていきましょう。という数字なんだそうです。(ちなみにアメリカは、ユーザ企業の情報システム部門はIT人材の内の約75%、IT企業は約25%という比率なんだそうです)
総務省が言うとおりの日本になったとき、ユーザ企業の情報システム部門では、自社で欲するシステムをウォーターフォール型で開発するでしょうか?イノベーションを起こそうとするIT企業は、製品やサービスをウォーターフォール型で開発するでしょうか?いずれも必然的にアジャイル型なアプローチを取ることになると思います。
もし、そうなったときは今回書いた「AIでシステム開発はこう変わる」はまったく別の内容になるはずです。
お知らせ
AIの導入をサポートする研修 「Kronos AI トレーニングシリーズ」
日本の生産性向上のため、人とAIが協働することを目指した研修「Kronos AI トレーニングシリーズ」を2017年東京、大阪で開講しています。経営者、マーケティング担当、エンジニア等、様々な職務に合わせたカリキュラムを提供し、主に中小企業のAI導入を促進させることが目的です。
http://www.kronos.jp/news/3886.html
編集後記
私はITエンジニアの育成に携わっていますが、特にIT業界の新入社員研修では、人事部や育成担当の方から「AIを見据え、Python言語をやらせたい」という声をときどき聞くようになりました。
しかし、AIをやるために必ずしもPython言語をやらなければならない訳ではありません。それよりも、先にも書きましたが、機械学習のアルゴリズム・数学的な理論を学ぶ必要があり、これはプログラミング以上にセンスが問われることになりそうです。
これまでは未経験の方にもプログラムを教え、プログラミングができるようにという研修をしてきましたが、数学が入ってくると、IT未経験の方は文系の方が多く、特に数学嫌いの方もいらっしゃるので、そもそもIT業界への就職を敬遠するようになるかもしれませんね。