🌄

overman - 超人エンジニアへの道

に公開

のっけから「超人」というワードを使っており、「あまり強い言葉を使うなよ...」とツッコミを受けそうです。
ですが、ここでいう超人は何でもできるスーパーマンのことではありません。

現状に満足せず努力・挑戦し、新しい価値を作り出そうとする人。
ドイツの哲学者・ニーチェはそんな存在を「超人(overman)」と名付けました。

ここ数年のAIの進歩によってITエンジニアの仕事の仕方は大きな転換点を迎えていると感じています。

これまでの価値観が覆る瞬間は、ニーチェが考えた「神の絶対性が揺らぐ時代」と少し似ているかもしれません。

今回は少しニーチェの言葉を借りながら、わたし(たち)が目指していくべき姿を考えてみたいと思います。

AIがコードを書く時代、エンジニアはどこへ向かうのか

「AIがコードを書く」という状況が日常になった昨今、スペースマーケットでもとある機能をAIで生成したコードのPRの数が増えています。

とあるリポジトリでは直近100件のPRのうち、およそ66%がAIで生成したコードになっています。

PR例
これは、対話を通じてエンジニアが作成したコードではなく、修正自体もAIが行ったPRの数を示しています。
AIコーディング使用というラベルを付与しています。

ここまでAIが開発に入り込んでくると、エンジニアの当たり前だった価値観も大きく変わっているのが現状です。

  • ドキュメント生成も、テストコードも、実装もAIが書く
  • 新しい技術の調査も、AIが要点をまとめてくれる
  • レビューもAIが行い、重要な問題点を指摘してくれる

わたしも普段から「良いコード」を書くことが「良いプロダクト」につながる一因であると思っていました。
しかし、良いコードをAIでも生成できるようになったいま、新しい問いが生まれてきています。

「自分の価値はどこにあるのか?」
「AIがコードを書く時代、エンジニアに何が求められるのか?」

便利さの裏で、みんな一度は考えたことがあるんじゃないでしょうか。

超人と末人

末人エンジニアとは何者か: 停滞してしまった姿

ニーチェが描く「末人」とは、挑戦せず、現状に満足し、停滞してしまった人を指す言葉です。

エンジニアに置き換えると、こうなるのではないでしょうか。

  • AI任せでプロダクトの理解を深めなくなる
    • 実装はすべてAIが書く
    • なぜこうなるのか考えなくても動く
  • 学ぶ理由がなくなる
    • 設計判断は「AIが提案した案」をすべて採用
    • 自身で判断しなくても困らない

AIに頼ると実装や調査の時間を短縮でき、効率が上がります。
設計からコードを起こす作業もかなりの正確性で行ってくれます。

しかし、慢性的にこの状態が続くことで、「挑戦しなくても仕事はこなせる」ようになり、本質的な価値(=事業を前進させる創造性) を生み出すことができなくなります。

これが、ニーチェが警告した「末人化」と言える状態です。

超人(overman)エンジニアとは: 走り続ける姿

一方、ニーチェが語る「超人」は以下のように解釈できます。

既存の価値観に依存せず、
自らの価値基準を作り、
それに従って努力・挑戦し、創造し続ける人

ポイントは「走り続けられる」ことです。
学習は終わりません。学び、アウトプットをし続ける姿勢そのものです。

(実際には既存の価値を作り変えるくらいのより高みな姿として書かれていますが、ここでは「目指す」という姿勢が大事であると捉えています。)

AIを前提にしつつ、自分で考え、判断し、動けること。
このスタンスが“走り続ける”ということなのだと思います。

① AIに任せる領域と、任せない領域

現状ではコードは書けても価値判断・設計思想をAIに任せるのはまだ早いかと思っています。

  • 事業課題を解決するために、どのような全体設計を立てるか
  • 一般的なベストプラクティスが自社のシステムとマッチしているのか
    • 自社にとってはベストでは無いかもしれません。しっかりと検討が必要です。
    • そのうえで、より良い形にしていくための工夫を加えていく。「ここはこうする」という判断は、人間が行うべきものです。
  • 延長線上ではなく、ときには破壊する行動をとる
    • 延長線上の改善ではなく、時には0から作り直すことで新しい解決策を生み出す。こういった判断も必要になります。

これらはやはり、まだ人が判断する必要あり、上手く役割分担を行うことがひとつです。

加えてコミュニケーションを取れるのも人の強みです。
要求の分析や課題の整理、それらを踏まえた判断・選択。
これらは代替されにくい性質のものだと思います。

② AIをパートナーとして認識し、自分の成長につなげる

AIに任せれば楽ですが、それで挑戦をやめてしまっては末人に近づきます。

AIがあるからこそ、もっと挑戦できる

そう定義づけていきましょう。

  • AIで学習速度を効率化し、その時間を事業の未解決問題に還元する
  • プロトタイプを10倍の速度で作ることで検証を回しやすくすることでリターンを最大化する
  • 設計レビューの観点をAIから補完したり、コードの改善アイデアをAIに何案も出してもらい選択することで、より良い設計を生み出す

AIとともに自らを成長させ、価値を作っていく。
もしAIがより進化し、上記で書いたことができるようになったら?

その時はまた、自身の考え方を更新し、努力する。
これこそが超人になるための道だと言えます。

おわりに: 怠惰のための努力

偉そうなタイトルの割に言っていることは当たり前だよなと思われたかもしれません。

しかし、エンジニアの世界で長年言われてきた「怠惰のための努力(楽をするために、良い仕組みを作る)」は、まさにこの超人を目指す姿勢を表しているものと言えます。

超人となれる瞬間はずっと来ないかもしれません。
ですが、そこへ向かって走り続ける姿勢には、間違いなく価値があります。

私たちは、「末人」として現状に安住し停滞するのか、それとも 「超人」として創造し続けるのか

あたなはどちらの選択をとりますか?

<参考図書>

  • 武器になる哲学
  • 教養として学んでおきたいニーチェ
  • ニーチェ[超]入門 生きるための哲学
  • ツァラトゥストラはかく語りき
  • 図解でわかる!ニーチェの考え方
スペースマーケット Engineer Blog

Discussion