見出し画像

【テクノロジーの裏側】:英国郵便局の冤罪事件とプログラミングの課題

今日は、今朝(2024年1月18日)の日本経済新聞の春秋で、機械の正確性に依存することのリスクと、それに伴う冤罪の可能性について述べられていたので、それに関して思うことを書きたいと思います。




英国郵便局の冤罪事件

冤罪事件に関する記事を要約すると以下のとおりである。

1.記事では、英国郵便局での冤罪事件を例に、富士通の会計システム「ホライゾン」の欠陥により、700人以上が冤罪に遭ったケースが紹介されている。

2.このシステムの問題は1999年に始まり、窓口の現金とシステムの残高が合わないことで多くの局長が起訴され、中には自殺する者もいた。後にシステムの誤りが明らかになり、富士通の責任が問われている。

※日本経済新聞より編集

ニューズウィーク日本版にも以下のような記事が掲載されている。


富士通は1990年に英ICL(現富士通サービシーズ)を買収。ホライゾンは同社が開発し、保守・運用も担ってきた。裁判などを通じて、ホライゾンの欠陥により窓口の現金とシステム上の残高の不整合が生じていたことが明らかになっている。

しかしながら、英ICLを買収した富士通の責任は重大である。


プログラマー・システムエンジニア経験者が思うこと

プログラマー・システムエンジニアを経験した身としては、大規模なシステム構築では、バグや不具合を100%取り除くことはできないと思う。ただし、絶対に不具合の発生が許されないプログラムは存在するため、正確性をいかに担保するのかは課題として残る。

昨今のChatGPTなど生成AIの浸透により、生成AIが自動でプログラムコードを生成することが可能となった。プログラムコードの自動生成によるリスクは以前のプログで書いたので確認いただきたい。


ChatGPTや生成AIもプログラムコードであり、バグや不具合が潜んでいるかもしれない(きっと潜んでいる)。それらが生成したアウトプットは果たしてどこまで信用できるのか、それが正誤を判断するのは最終的には人間なのである。


プログラムの正確性を保証するための方法

過日のブログでも「テスト駆動開発(TDD)」について書いたが、

TDDは、プログラムの小機能ごとにテストを行いながら開発を進める方法であり、AIを利用しても効果的です。この方法は、プログラムの仕様を正確に反映させ、誤りを減らすのに役立ちます。将来的には、すべてのプログラムがAIによって生成される時代が来るかもしれませんが、その際にもTDDの考え方が重要になる。

※日本経済新聞より抜粋

と述べられています。

「テスト駆動開発(TDD)」の参考サイト


「テスト駆動開発(TDD)」が有効なのであれば、すべての開発をTDDで行えば誤りを減らすのに役立つが100%バグや誤りを無くすことは難しく、皆が同じ開発手法を行うことはもっと難しい。

結局どうすれば良いのでしょうか。

プログラムの正確性を保証する方法は開発されるのでしょうか?

それとも、すでに存在するのでしょうか?

この記事が気に入ったらサポートをしてみませんか?