はじめに
昨今の生成AIの目まぐるしい速さの成長には、驚かされてばかりです。
5月13日にOpenAI社が発表した「ChatGPT 4o」、そして6月20日にAnthropic社が「Claude 3.5 Sonnet」、これらをはじめとする生成AIは驚くべき自然言語処理能力を持ち、様々なプログラミングタスクを効率化するツールとして重宝されており、コードの自動生成や補完、バグ修正、リファクタリングなど、多岐にわたる機能を提供することで、エンジニアの生産性を劇的に向上させてくれます。
エンジニアにとって、コーディングしてくれる生成AIは「お金を産んでくれる相棒」になりつつあると考えています。
かくいう私も、日頃から生成AIにはお世話になっており、コードを書くときはセカンドモニターに常に表示させているほど愛用させていただいており、生成AIに稼いでもらっている1人と言えます。
そんな私は最近、スティーブン・R・コヴィー著「完訳 7つの習慣」を読んでいて、ふと思いました。
「生成AIは、黄金の卵を産むガチョウなのか?」
ガチョウと黄金の卵 (イソップ寓話)
(要約)
昔々、ある貧しい農夫が一羽のガチョウを飼っていました。
このガチョウは毎日一個の金の卵を産んでくれました。
農夫は最初、その贈り物に満足していましたが、もっと多くの金を手に入れたいと欲張るようになりました。
ある日、農夫は「ガチョウの体の中にはもっと多くの金があるに違いない」と考え、ガチョウを殺して中を調べました。しかし、ガチョウの中には何もなく、結局、毎日得ていた金の卵も失ってしまいました。
生成AIは「黄金の卵を産むガチョウ」ではない
文字通り捉えたら、生成AIは「黄金の卵を産むガチョウ」であると思います。
しかし、この童話の教訓として、「完約 7つの習慣」にてスティーブン・R・コヴィーは、以下のように述べています。
黄金の卵だけに目を向け、ガチョウを無視するような生活を送っていたら、黄金の卵を産む資産はたちまちなくなってしまう。逆にガチョウの世話ばかりして黄金の卵など眼中になければ、自分のガチョウも食い詰めることになる。
この二つのバランスが取れて初めて効果的なのである。
そこで最近生成AIについて調べて、得意げになっている私は思いました。
生成AIは世話が必要なく、死ぬこともないな。
ガチョウと違い、回答という黄金の卵にだけ目を向けていても、生成AIの健康状態(?)を無視しても、24時間いつでも何度でも、黄金の卵を出してくれます。
(時々ハルシネーションという金メッキの卵を出す、お茶目な一面もありますが)
また、黄金の卵を眼中にないエンジニアは、まず生成AIの世話などしません。
強いて言えば、エンジニアが生成AIを世話(RAG、ファインチューニング)をするときは、さらにお金を産むことができます。
つまり、生成AIは「黄金の卵を産むガチョウ」ではなく、「黄金の卵をいくらでも産む不死身のガチョウ」だと言えます。
エンジニアは、「貧しい農夫」にはなってはいけない
生成AIは「黄金の卵を産むガチョウ」ではないのなら、この童話と生成AIは全く関係ないと思ったら大間違いです。
我々エンジニアがこの童話から得るべき教訓、それは
「貧しい農夫」にはなってはいけない
この「黄金の卵を産むガチョウ」という話が、「童話」なりえた原因は、
「貧しい農夫」は知力と知識も貧しかったからだと考えられます。
知力が貧しかった -> 目先の成果にとらわれてガチョウを殺してしまった。
知識が貧しかった -> 「ガチョウの体の中にはもっと多くの金があるに違いない」と考えてしまった。
農夫が知力と知識を兼ね備えていたら、この童話ははただの作り話になっていました。
ここで、生成AIの文脈で「貧しい農夫」を「貧しいエンジニア」に置き換えると、
知力が貧しかった -> コピペエンジニアとなってしまい、ハルシネーション(金メッキの卵)であることにも気づかず、
コードの品質をどんどん下げていってしまう。
知識が貧しかった -> 適切なプロンプトが書けず、エンジニアを凌駕するコーディング能力(黄金の卵)を得ることができない。
「貧しいエンジニア」によって、いっとき成果を出せたとしても、その成果が後々の負債になることは、想像に難くないです。
将来、このような負債によって生まれた全く面白くない「失敗話」を話すのではなく、生成AIとうまく共存したエンジニアとしての「逸話」を話したいものですね。
エンジニアの「黄金の卵をいくらでも産む不死身のガチョウ」との共存戦略
私が好きなQiitaの記事の1つ、「GPT-4時代のエンジニアの生存戦略」には、結論として以下のように書かれています。
私が上述している最高のエンジニアリングとは「コードを可能な限り書くことなくビジネスサイドが実現したいことを迅速に実現すること」に繋がりますね。
また、「エンジニアリング組織論への招待」にて広木大地は、以下のように述べています。
エンジニアリングは、日本語で「工学」と訳されます。
(中略)
「工学」はそれらに依拠しながらも、「何かに役立つものを」「実現していく」学問です。
私たちエンジニアの目的は、コーディングをすることではありません。
コーディングという「手段」によって、ビジネスサイドやユーザー、クライアントが求めるサービスを実現していくことが、目的だと思います。
また、エンジニアを凌駕するコーディング力を有する生成AIも「手段」でしかありません。
エンジニアは「貧しい農夫」にならず、知識と知力によって、この「手段」を上手く扱う。
そうすることで、ビジネスサイドやユーザー、クライアントが求めるサービスを迅速に実現することが、エンジニアにとっての目的であり、「黄金の卵をいくらでも産む不死身のガチョウ」である生成AIとの共存戦略であるといえます。
最後に
お読みいただきありがとうございました!!
もっともっと勉強して、この記事を読んでくださっているみなさんのように、
素晴らしいエンジニアになれるよう、精進したいと思います!!
これからもよろしくお願いいたします!!!!