要件定義が危ない!

2023年7月14日

新井紀子「AI vs. 教科書が読めない子供たち」(東洋経済新報社)を読んで思ったのは、「要件定義が危ない!」ということである。
本書はベストセラーになり、Web上を探せば書評や感想などが沢山出ている。従って、AIが専門でない私が今更本書について書いてもしょうがない気もするが、いくつか感じたところを記す。AI vs. 教科書が読めない子どもたち
本書で述べられているのは、現実のAI(本書によればAI技術というべき)の限界や問題点、日本の中高生の読解力が危機的状況にあること、そして今後AIが普及していくなかで人間はどのような仕事をなすべきなのか、である。冒頭で書いた「要件定義が危ない」とは、中高生の読解力が低下していることからの推測である。本書を読むと読解力に問題があるのは中高生だけではなく、成人にも問題がある人がいるようである。(従って、私自身も例外ではないのだが・・・)
著者は「こんな状況でプログラミング教育を導入できるでしょうか」と憤っているが、問題になるのはプログラミングよりも要件定義や基本設計の方だろう。
小学校のプログラミング教育はビジュアル言語を使って行われ、プログラムの実行結果(アウトプット)もたいてい目で見てわかるものだから、日本語の読解力が低くとも、見た目のイメージで理解できる可能性がある。
一方、要件定義(要求定義)ではそうはいかない。
要件定義(要求定義)とは、IT(情報システム)が満たすべき要件(要求)を、ユーザとベンダーとが合意して文書化する工程である。
要件定義書や、基本設計書の一部は日本語(自然言語)で記述することが多い。この日本語で記述するということに関しては、昔から批判があった。それは、主に自然言語で記述すると曖昧さが残る(厳密さに欠ける)だとか、記述しきれない、などの理由による。
このため、要求定義言語(仕様定義言語?)というプログラム言語のようなものを使って、ユーザの要求を厳密に記述する研究がなされた時期があったと記憶する。
しかし、いまいまのITプロジェクトを見ても、要求定義言語で書かれた仕様書は見かけないから、結局のところ日本語で書くことで落ち着いたということなのだろう。

要件定義に続く基本設計あたりでも日本語で書かれた設計書がベースとなり、それを補完する形でERDやDFDなどのダイアグラムやUMLなどが使われている。
なぜ日本語で記述するのかというと、ERDなどのダイアグラムはユーザ(特にエンドユーザ)が見ても良く分からない代物だから、結局ユーザとベンダーとのコミュニケーションは日本語で記載したドキュメントに頼らざるを得ないのである。
このような状況下で日本語の読解力が低下しているとなると、ユーザとベンダーのコミュニケーションは怪しいものにならざるを得ない。読解力が低下しているとなれば、正しい文章を書く能力も低下しているとみるべきだろうから。
ウォーターフォール型の開発では、今でも下流工程になって「出来上がったものが要件と違う」という問題がおこりがちである。この原因はいくつか考えられる。
ユーザーの要求事項が正しくベンダーに伝わっていないから、(ベンダーの業務理解が乏しいことにより)ベンダーの要求事項に対する理解が間違っているから、ユーザの要求が開発途中で変わったから、などである。
この他にもユーザ側の事情として、エンドユーザーの要求を取りまとめるIT部門に問題があるケースなどがある。
読解力と書く能力が低下しているとすると、日本語のドキュメントをベースにコミュニケーションしている限り、「出来上がったものが要件と違う」という問題は今後増えることはあっても減ることはないだろう。(もしかすると、すでにこの手の問題は起きているのかもしれない)
著者が指摘するように、小学校にプログラミング教育を導入するよりも、母語を正しく読み書きできる能力を養うことの方が優先度が高いようだ。

本書にはAIの限界がきちんと書かれている。AIの凄いことばかりがニュースになる現状に鑑み、この点はたいへん参考になった。
また、「コンピュータが数学の言葉だけを使って動いている限り、予見できる未来にシンギュラリティが来ることはありません」と断言している点も清々しい。
但し、本書に限らず最近の傾向として、AIが従来のITを包含した概念に変わりつつある(すり替わりつつある)ことには違和感をおぼえる。
すなわち、その文脈から
AI = AI技術 + 従来のIT
と読み取れるドキュメントが増えているように思う。本書で著者はAIとAI技術は区別するべきだと言っている。そうであれば、従来のITとAI技術の違いも意識すべきだと感じる。
そうでないと、AI技術とはどの範囲の技術のことを言っているのかがはっきりしない。それとも従来のIT技術のいくつかはAI技術に取り込まれているから、それらを区別することにあまり意味はないということだろうか。
具体的には、ワープロ開発などの日本語処理で培われた形態素解析などの技術はどっちなのだろう。AIでいう自然言語処理の一部なのだろうか? 正直なところ私にはAI技術の範疇が良く分からないのである。

本書には、今後AIに置き換わるであろう仕事のことが書かれている。
しかし、本書に書かれている文章の「AI」を「IT」に置き換えてみるとそれほどの驚きは感じない。
例えば、
「AIが薬の副作用の可能性をチェックしたり、ジェネリック薬の有無の情報を提供したり・・・」
という文章を
「ITが薬の副作用の可能性をチェックしたり、ジェネリック薬の有無の情報を提供したり・・・」
に置き換えてみる。実際のところ、このレベルのことであれば従来のIT技術(テーブル検索程度の処理)で実現できる。
また、証券業務における自動発注や、融資審査におけるスコアリングなどは、あるレベル従来のITのなかで実現されていたと記憶する(機械学習などの技術を使うことで、その適用範囲が広がったのかもしれない)。
すなわち、ここで書かれていることは、銀行のATMや駅の自動改札など、従来ITが実現してきたことの延長であり、多分、今後ITが導入される範囲と導入スピードが、より広くより早くなるということなのだろう。

なお、「近い将来AIに置き換わるであろう職業一覧」の類には注意が必要である。
一つは、現場を知らない研究者が頭で考えただけのものであるという批判があること、今ひとつは大企業と中小企業の違いが考慮されていないこと、である。
中小企業で働く労働者は全労働者の約7割だといわれている。さらに中小企業は設備投資資金が大企業より少ないから、IT投資にも慎重である。
特に間接業務に対するIT投資は、よほどの投資対効果がない限り実施されないだろう。
AIの導入で仕事(あるいは仕事の一部)を奪われるのは、全労働者の3割に相当するエリートなのかもしれない。

プロジェクト管理あれこれ
「プロジェクト管理あれこれ」のINDEX