全3616文字

 生成AI(人工知能)をプログラミングで利用する動きが広まっています。生成AIにプロンプトを入力してコードを生成するのはもちろんのこと、システム開発工程全般での活用にも期待が高まっています。生成AIの急速な発展と普及はソフトウエア開発にどのような影響を及ぼすのかを具体的な事例に基づいて示すのが、『上流から下流まで生成AIが変革するシステム開発』(酒匂寛著/日経BP)です。本書から抜粋、再構成して、「生成AIにどこまで期待できるのか」についてお届けします(日経BOOKSユニット 第2編集部)

 ソフトウエア開発に限りませんが、問題を解決するには、まず「何が問題なのか」をはっきりさせなければなりません。問題解決を望む人は、ある環境の中で何らかの課題(悩み、願望、問題)を抱えていて、それを何とかしたいと思っています。

 「悩み」や「願望」や「問題」の中には、性質が明らかで解決も簡単なものもあります。たとえば「カップ麺を食べたい」という願望ならば、すぐに解決できそうですね。しかしここで取り上げるのはもう少し複雑な問題です。何だかもやもやとした悩みはあるのだけれど、何が問題なのかズバリと言えない状態、問題が的確に言えないので解決策もなかなか決まらないような状態を想像してみましょう。

 最初のステップはこのもやもやした状態から、何が問題なのか(解くべき対象なのか)をはっきりさせることです。こうしたら、ああしたらと単発的なアイデアは出るのだけれど、結局問題がはっきりとしていないために具体的な解決策に踏み出せません。

 ただ「問題解決」ではあまりに一般的過ぎるので、もう少し話の範囲を絞りましょう。ソフトウエアを使って何らかの仕事(ビジネス)の問題解決をしたいのですから、もやもやした悩み、問題、願望をどのような業務(ビジネス)で解決していくのかをまず考えることになります。

 ソフトウエアを使って問題解決をするときのステップを以下に示します。

  1. 悩みや問題を検討し話し合ううちに生まれたアイデアを、どのようなビジネスの形で解決するかをまず整理します。ここでは対象とする顧客層や主要な活動、生み出される価値、必要な資源などを検討します。

  2. どのようなビジネスにするかを整理できたら、それを「誰が、いつ、どこで、何を行うのか」というシナリオに落としていきます。ここではシステムとの最上位の接点も描かれます。先に検討したビジネスの形を、どのような業務フローとシステムで実現するのかを決めていくとも言えます。

  3. そして決まったシナリオが要求するシステムの「機能、データ、振る舞い」を決めていきます。ここで決められたものは「仕様」と呼ばれます。

  4. 仕様が決まったら、それに従ってシステム(ソフトウエア)を作ります。多くの場合、仕様から設計し実装を行います。

  5. 上のすべての段階で検証は必要です。