遅ればせながらDevinを使ってみました。DevinはCognition AI社が開発した自律型AIソフトウェアエンジニアで、ソースコードなど必要に応じて取得、読み込んでコンテキストを理解したうえでソースコードを書いてくれます。
試しにAPI定義書と設計内容を共有したうえで、簡単なAPIの作成をお願いしてみたところ、数分でAPIを実装してくれました。指示文にSpec(テスト)まで書いてくれ、とお願いしたらこれもちゃんと書いてくれます。
最近のAIの進化にはみなさん驚いていると思いますが、こうしたコーディングまでできるようになってくると、将来的にはITエンジニアが仕事を奪われるのではないかという懸念がでてきます。すでに色んなところで語られている部分ではあると思いますが、自分の視点に立って考えてみたいと思います。
文脈を理解して伝える力
最も大事だなと思ったことが、文脈を理解して、それを伝える力だということです。
AIに与えるインプットには「プロンプト(指示文)」と「コンテキスト(文脈)」の2種類あります。
コンテキストにはドメイン知識、既存のソースコードやAPI仕様書、設計書などが含まれます。AIにコンテキストを渡すには、まず自分自信がそれを理解する必要があります。そうでないと必要ない部分も含めて渡してしまい、正確なアウトプットを得られない可能性がありますから。また、この渡すためのコンテキストは人の手で作る必要があります。
最近は要件定義などもAIと伴走して作ることもできますが、「何を作ればいいのか」を自分なりの文脈に沿って整理してAIに伝えることができなければ、AIからのアウトプットは的外れになります。これがプロンプトとしてAIに伝えるための文章(もしくは音声)をきちんと文章としてまとめる必要があります。
よく「何をしたいのかがわからない」「何がわからないのかがわからない」というのが特に若手から来ることがありますが、それは何をしたいのか、何がわからないのかをきちんと言語化できていないから。いくらAIが優秀であったとしても言語化できなければ伝わりません(将来的に脳に直接つなぐとかいう未来もありえるかもしれませんが・・・)
対人スキル
AIがいくら優秀だからといっても、何かを成し遂げるには人の力が必要です。また、作ったものを買ってもらうのも人間です。
作ったものを顧客にいかに理解してもらい、買ってもらうか。
会社、チーム内のメンバーと協力して、プロジェクトを完遂させるか。
そのあたりのコミュニケーション、ソフトスキルは今後も必要です。
自分で判断して選択し、結果に責任を持つ
AIはあくまでも判断材料を提示するだけです。冒頭のDevinも「こうした実装ができますが反映しますか?」と尋ねられ、人間がそれを決定することで実装内容が組み込まれます。
判断材料がない、もしくは少ないと判断できません。AIはその選択肢を提示するためのツールとして有能です。しかし、最終的な決定は人間が行うものです。
その人がどういう決定基準、判断基準、選定基準をもって、その選択をしたのかをきちんと言語化する必要があります。そうでないと他の人から説明を求められたときに困るからです。「なんとなく選択した」では済まされません。
そして、最終的に選択したものには責任をともないます。役職や年齢関係なく、なにかを決める、実行するときには責任がともないます。
AI時代こそ、「自分のケツは自分で拭く」姿勢がより求められるようになると思います。