エンジニアと生成AIの共存方法を考えてみた

はじめに

2022年12月に、ChatGPTが世に放たれてそこから一気に生成AIという言葉が浸透して今やAIが彼女だったりAIと結婚して幸せだぜという人もいるという、テクノロジーと価値観の進化をひしひしと感じているここ3年。

自分がエンジニアのキャリアをスタートさせたのが2022年夏頃、ChatGPTが出てくるまではおそらく他のピヨピヨエンジニアと同様、Stack OverflowだったりQiitaだったりのいわゆるTech系サイトで問題解決をするのがほとんどでした。

しかし生成AIがガッと世に浸透してきてからは、調べ物やアイデア出し、技術系インプットもほぼAIに任せた方が早いんじゃね?というトレンドになり漏れなく私もその波にのまれていました。

ただそれと同時に、このブログの運営をユルく続けながら、ふとあることを思う。

「やっぱり、もう人間が記事書く必要ないんじゃね?」と。

わざわざググらなくても生成AIにPrompt投げればほぼ正解の答えが返ってくるし、もうTech系サイトとか個人ブログの存在意義がなくなるのではないかとAIが浸透してきた2024年頃は感じていました。

そこで今コラムでは個人的なアウトプット自体は引き続き価値を持ち続けるのかも含めて、自分が今どう生成AIと共存しているかを共有できればと思います。

とっても便利?生成AI 🤖

一般的な使い方

おそらく大多数は、こんな感じではないかと予想。

  • わからないことがわからない状態だけど、とりあえずコードそのままコピペしてPromptに投げる
  • AIから返ってきたコードをそのままコピペ、よくわからんけど動いてるからヨシ
  • 自分で考える前にとりあえずAIに丸投げ

👆のような使い方に関しての私の意見は、「個人開発とか、個人だけで何かやるだけならまあいいんじゃね」という感じです。

生成AIのおかげで、とりあえずの正解に辿り着く速度は格段にスピードアップしていると思います。

確かにそれっぽい回答は確かに返ってくるし、実際にそれをコピペするだけで解決することが多いですし。

ただこのスタイルには、落とし穴もあるかなと感じています。

なんでもAIに丸投げ?

前述の通り、個人開発なり個人で何かやるなら、別にコードの質がどうであれとりあえず動いて自分が満足するものが作れればヨシなので問題ないと思います。

ただこのマインドセットを、チーム開発にも持ってきてしまうと正直苦労するのではないかと私は感じています。

現場の開発というのは、ただ動けばヨシではないんですよね。

  • そのコードは既存のアーキテクチャ、コーディングガイドラインに沿っているのか
  • 自分以外にも、そのコードを見ている人がいるということ
  • 今後の保守性に繋がるのか

ただ実装するだけじゃなくて、その背景まで含めて初めて一個の実装となることが多いです。

なのでタスクを任されて、わからんからとりあえずAIに丸投げ、それをコピペして実装、動いたからヨシ、レビューよろしく

これをされると、チーム開発ではとても困るわけです。

正直こういうタイプの人は、その場しのぎでそれっぽいことはできてもAIの回答を自分の頭で理解・消化することをしていないことが多いので当人の成長にもならないし、実装を見れば「あ、これAIに丸投げだな」って大半のケースは見透かされます、そして余計にレビューが増えるという悪循環。

なので人材育成という面でも、その人がどれくらい今の理解度があるかも見極められないという副作用も発生するのでチームビルディングに影響が出てしまうという可能性も秘めています。

じゃあ生成AIを全く使わずにやれと言うのか、というわけでは全くなく、ここでどうAIと共存すればいいのかという考えが出てきます。


上手な生成AIの使い方 (たぶん)

  • 最近はAIをカスタムできることが多いので、目的に沿ったデフォルトのプロンプトを埋め込んで使用する
  • コーディングのPromptは英語で投げる、AIの学習モデルは確実に英語ベースが圧倒的に多いので質が高い
  • わからないことがわからない状態でAIは使わない (これは多分賛否両論)

自分はChatGPT派ですが、コーディング専用のMyGPTにはあらかじめアーキテクチャ思想や、コーディングルール (命名規則とか)をデフォルトプロンプトとして保存しておいて使っています。

これのメリットは、そもそもデフォルトプロンプトを作るためにどういう情報をAIに与える必要があるのかを自分で考える必要があって、それを上手くPromptとして落とし込むという作業で思考の整理ができるという点ですかね。(この作業もAIに任せればと言われたら元も子もないですが)

英語プロンプトに関しては、今は便利な翻訳ツールもたくさんあるので、まずは日本語でPromptを作ってから英語変換してAIに投げるのもいいですし、英語達者は改めて英語での文章構成力 & 回答も英語で返ってきてリーディング力が維持できるのでWin-winではないかという実体験を元にした感想。

わからないことがわからない状態に関しては、これは正直人によるというところではありますが、私は懸念しているのはそれが常態化してしまうと自分で考える力を失ってしまうということです。

わからない状態だからこそ一旦わからないを具現化するためにAIを使う、という意見もあると思うのでこれは自分の性格を分析して上手く向き合っていけばいいかなと思います。


個人アウトプットが持ち続ける価値

私が導き出した結論:

  • 知識は検索できるけど、思考は蓄積からしか生まれない
  • 個人アウトプットはその思考の蓄積にはベスト

と言う感じです。

実装も全部AIに丸投げ、動いたからヨシはその場しのぎで、実際自分の思考の蓄積になることはほとんどないです。

正直なところ、最近は私もブログ記事も簡単な構成はAIに任せることは多いですが、中身は自分で考えて書くようにしています。

なぜなら、「自分の頭で考えてアウトプットすること」が最終的に一番の知識のストックになることがほとんどだと感じているからです。

毎度AIに回答を探しに行くこと自体も完全に間違っているとは言えませんが、

一人のエンジニアとして自分自身の市場価値を高めていきたいというのであれば、多少は生成AIも使いつつ自分の頭で何か情報をまとめてアウトプットすると言う習慣を持つことがこれからも自分のためになり、市場価値が高い人間になれるのではないでしょうか。

まとめ

まだまだ執筆力が発展途上レベルなので、拙い文章で申し訳ありません。

今後もおそらく加速的に生成AIは進化していくと思われます、その時代の中で一人の人間として価値を持つためにどうすればいいのかという方向性を考える一助にこのコラムがなれればいいかなと思っています。

ただやっぱり、今後のエンジニアはどうなるんでしょうね、海外では大量リストラも現実として始まってるし。

ITに限らず、海外のトレンドが遅れて日本にやってくるって傾向は相変わらずあるのでその辺りを上手く観察しながらしぶとく生きていくしかないのかという思いも持ったり,,,

その中でざっくりとした自分なりに考えた、価値あるエンジニア / 堕落していくエンジニアを最後に共有して終わろうと思います。

堕落していくエンジニア:

  • 全て受け身で、降りてきた仕様通りに作るだけ → 正解のあるタスクは完全に生成AIの独壇場
  • とりあえず動いてるからヨシ、仕事に刺激ないけど金もらえてるからヨシ (生成AI以前の問題な気もしますが)
  • 今後もっとAIが便利になるから、今のスキル以上の自己学習はしない → 世の中は現状維持 = 後退という構図を理解してない

価値あるエンジニア:

  • 生成AIを脅威として扱うのではなく、自分の脳の拡張版みたいに捉えて上手く共存する
  • 正解のないタスクに積極的に取り組む、提案する → この過程で会社のドメイン × エンジニアリングを組み合わせたアイデア出しで生成AIとか使うのは全然OK (な気がする)
  • 世の中がその時代, 近い未来で何にワクワクを感じるのかの嗅覚を磨く、今後はおそらくXR市場が伸びてくる気がするのでそのあたりかも?

🙅‍♀️ 生成AIに仕事を奪われる

🙆 生成AIを使いこなす人材に仕事を奪われる

これがおそらく正しい気がします、ワープロ出てきた時も人類は同じようなこと言ってたでしょうし。

というわけで今回は以上です、今年は9月ですでに若干涼しいので久々に秋を感じるこの頃。