上流から下流まで生成AIが変革するシステム開発

どうしてこの本を選んだか
概要
本書は、システム開発の上流から下流まで生成AIを活用し、正しいシステムを効率よく実現するための方法を解説しています。
システム開発、つまりソフトウェアによる問題解決には以下のステップがあります。
- 問題をはっきりさせる
- 問題の解法に合意する
- 解法を実装する
- 実装した解法を運用する
これらの各ステップには様々な手法が提案されてきましたが、本書の特徴は生成AIをこれらの手法に組み込む新しいアプローチを提示している点です。本書では、(1)ソフトウェア開発の各ステップが満たすべき性質を俯瞰しながら、(2)生成AIをどのように活用するべきかを具体的に説明しています。
さらに重要なポイントとして、生成AIに用いられる大規模言語モデル(LLM)は自然言語だけでなく、プログラミング言語の解釈や生成にも高い能力を持つことが挙げられます。この能力を活用することで、ソフトウェア開発チームは有能なエンジニアを確保したかのような効果を得ることが可能です。その結果、ソフトウェア開発プロセスの大幅な効率化が実現します。
つまり、生成AIの登場はソフトウェア工学の実践方法そのものを見直す契機でもあるのです。
感想
この本は、IT業界に勤める主人公が商店街のシステム構築を行うという設定から物語がスタートする。要件定義から相手の要望を引き出し、要件を設定し、それを設計に落とし込み、実装して最終的に納品するという一つのプロジェクトのプロセスをストーリーベースで構成している。ストーリー仕立てになっているため、プロジェクトがどのように始まり、進行していく中でGPTをどう活用できるのか、そのユースケースが分かりやすく描かれていた。
書かれている内容では、どのようなプロンプトを投げればChatGPTが返答してくれるのか、また、どのように聞けばより効果的な返答を得られるのかといった点について、ITプロジェクトの中でChatGPTをどう活用するかを具体例を交えながら説明している点が良かったと思う。
ただし、気になった点として、この本で説明されているレベルの内容であれば、すでに業務でChatGPTを使っている人であれば十分に到達できるものであり、新たな発見は少ないと感じた。また、結局ChatGPTが正しいかどうかの判断は人間が行うため、この本に書かれているストーリー形式のChatGPT活用が実際にうまくいくかどうかは保証されないように思う。ストーリーベースでナレッジを紹介する本は、多くの場合、ご都合主義的な展開で「なんとなくうまくいった」という結末を迎えることが多い。この本も例外ではなく、「ChatGPTを使えば大成功する」といったニュアンスで書かれている印象を受けたが、実際にはそう簡単にうまく活用できるものではないと感じた。
総評としては、すでにChatGPTを業務で活用している人にとっては多くの新しい学びが得られる本ではない。ただ、これまでChatGPTを具体的にどう活用すれば良いかイメージが湧かなかった人にとっては、プロジェクトの流れに沿った具体例が示されており、活用のイメージが湧きやすい本だと感じた。
今後への活かし
感想で書いた通り、すでに業務でChatGPTを使っている場合、この本から得られることはそれほど多くないかもしれない。しかし、自分が知らなかったChatGPTの使い方を一部知ることができたり、ChatGPTに対するプロンプトの具体例として参考になる部分もあった。そのため、活用できそうな文面をピックアップして、実際に業務で試してみようと思う。
Notes
- これに対して生成AIを駆使して矛盾を発見させるというやり方も将来的には可能かもしれないですが、現在の生成AIは基本的に意味を「解釈」せず、「表現」上の辻褄合わせの方が得意です。このため、作成している仕様の妥当性や一貫性を仕様作成時にもっと厳密に検証したい場合には、仕様をもっと厳密に記述して検証するというやり方の採用が必要になってきます。
- 提案の内容が物足りない、もしくは間違っていると思った時には、さらに詳細化を促したり前提条件を変えたり、タスクの内容を変えたり、出力の例を与えたりすることで欲しい内容を引き出せます。
- ChatGPTにコード生成のための知識をさらに与えたGrimoire(グリモア)という名前のGPTsを紹介しましょう。Grimoire(グリモア)はチャットGPTのGPTを探すメニューの中から探せます。
- ここまで生成した時点でこの最終結果を一度に生成するようにするにはどんなプロンプトを投入すれば良いか質問としてみるのです。 「少しずつ改良してきましたが、もし上記最新版のプログラムを一度のプロンプト投入で入れようとした場合にはどのようなプロンプトを導入するべきだったでしょうか。」
- 一度に生成できないアプリケーションでもプロンプトを重ねて少しずつ作成していくことができる。
- 一通り形ができたところで使用としてプロンプトを逆生成することもできる。
買ってねー
おすすめ度:⭐️⭐️⭐️☆☆