はじめに
30代未経験からエンジニアに転職して、約1ヶ月が経ちました。
AIを使ってコーディングをする毎日の中で、他の方のコードを見させていただく機会も増えました。
そんな中で、ふと感じることがあります。
「このコード、AIが書いたのか、人間が書いたのか、わかるものなのか?」
少し前までは、出されたコードが読みやすい・綺麗であれば、それはその人の実力として素直に評価できていたと思います。だってAIじゃなく、その人が自分の力で書いていたから。
(もちろん他にもあるけど今回はこの観点で書きます)
でも今は、綺麗なコードが出てきても「これはAIが出したのか、自分で考えて書いたのか」が曖昧になりつつあります。
じゃあ、今の時代、エンジニアとしての自分の価値ってどこにあるんだろう?
自分なりに出した答えを書いてみます。
「意図のある実装」ができるかどうか
結論から言うと、「どうしてこうしたの?」に自分の考えで答えられるかどうか だと思っています。
なぜこう書いたのか。なぜこうしなかったのか。
別に完璧な実装じゃなくていいんです。正解か不正解かも、ぶっちゃけそこは本質じゃないと思っています。
大事なのは、AIが提案したコードをそのまま貼り付けたんじゃなくて、「このプロジェクトだとこうあるべきだよな、だからこの実装を選んだ」っていう 自分の考えがそこにあるかどうか。
与えられた指示をそのままこなすだけじゃなくて、その前後の背景まで含めて、自分の考えを持てているか。
自分も全然完璧じゃないです。でも、少なくとも「どうしてこうしたの?」って聞かれた時に、自分の言葉で答えられる状態でいたい。それだけは常に意識しています。
「"ここ"変えました!」だけでは足りない
ちょっと極端な例を出します。
レビューで「ここ変えて」と指摘をもらった。
「"ここ"変えました!」
確かにちゃんと対応はしています
でもその変更って他の箇所にも影響するはずなのに、そこは何も変わっていない。つまり言われたところだけ機械的に直しただけで、なぜ変える必要があったのか を理解していない。
これは「自分の考えがない」状態です。
つまり「この実装はこうだから、こうあるべきだよな」という考えを持てているかどうか。
さらに言うと、あなた自身に考えがあるなら、指摘に対して変えなくてもいいんです。そこに理由があるなら。「ここは変えない方がいいと思います。なぜなら……」と返せばいい。
疑問でもいいんです。「なぜですか?」と聞き返す。これが本当に大事。
『言われたから変えました』は理由じゃない。でも、『言われたけど自分はこう思う』と返せるなら、それはちゃんと自分の考えを持っている証拠です。
これってレビュアー目線でも同じじゃない?
ここまで開発者目線で書いてきましたが、最後にひとつ。
これってレビューする側も意識すべきことなんじゃないか? と思っています。
AI時代、コードの見た目だけでは実力を測りにくくなっています。だとしたら、レビュアーが見るべきなのも、コードの綺麗さや正しさだけじゃなくて 「この実装に自分の考えがあるかどうか」 なんじゃないかと。
「どうしてこうしたの?」と聞いてみる。
その答えに、その人の考えがあるかどうかを見る。
それがAI時代のコードレビューの、ひとつの軸になるんじゃないかなと思いました。