AIコードは手抜きか? 境界線という概念がバグってる説
「このコード、Copilotが書いたんだよね」
PRレビューで何気なく言ったら、微妙な空気が流れました。
まるでカンニングを告白したかのような罪悪感。
でも、ちょっと待ってください。
ググってStack Overflowをコピペするのと、何が違うんでしょう?
いや、そもそも「自分で書く」ことに、本当に価値があるんでしょうか?
これは、実際の現場で議論や摩擦を見てきた中で生まれた違和感から書いています。
この違和感の正体を掘っていくと、「手抜き」という概念そのものが、すでに時代とズレている可能性が見えてきたんです。
1. そもそも「手抜き」とは何だったのか
まずは、従来の定義を整理してみましょう。
手抜き: 求められる品質基準を下回る結果を出すこと。責任を回避し、必要な努力を省くこと。
生産性向上: 同等以上の品質を、より少ない時間や労力で達成すること。
一見明確に見えますよね。でも実は...
2. 境界線は「誰が決めるか」で変わってしまう
シナリオ:同じコード、異なる評価
// ユーザー認証を Supabase Auth で実装
import { createClient } from '@supabase/supabase-js'
const supabase = createClient(url, key)
const { user } = await supabase.auth.signIn({ email, password })
40代ベテラン視点:「自前で実装しないと仕組みを理解できないよね。これは手抜きかも」
スタートアップCTO視点:「車輪の再発明こそ無駄。これは最適化だね」
セキュリティエンジニア視点:「専門家が作ったライブラリを使うべき。自作の方が危険です」
ユーザー視点:「動けばどっちでもいいんだけど」
同じコードが、見る人によって「手抜き」にも「生産性向上」にもなるんです。
つまり、境界線は技術ではなく、価値観と責任の所在の問題なんですね。
3. エンジニアだけが背負う「自分で作る呪い」
医者は薬を自作しません。
料理人は小麦を育てません。
建築家はセメントを焼きません。
なのにエンジニアだけは、
「本当の理解は自作できてこそ」
「ライブラリに頼るのは甘え」
と言われがちです。
もちろん、低レイヤーを理解すること自体は価値があります。
ただ、それは 「常に自作すべき」という倫理とは別の話 なんですよね。
4. 技術の歴史は「手抜き」の歴史だった
| 時代 | 「真面目な方法」 | 「手抜き」 | 現在の評価 |
|---|---|---|---|
| 石器時代 | 素手で狩る | 石器を使う | 文明の始まり |
| 中世 | 手書き写本 | 印刷術 | 革命 |
| 1990年代 | アセンブリ | 高級言語 | 標準 |
| 2000年代 | ゼロから実装 | フレームワーク | ベストプラクティス |
| 2010年代 | オンプレ自前構築 | クラウド | 標準 |
| 2020年代 | 手書きコード | AI生成 | ← 今ここ |
昨日の「手抜き」は、明日の「あたりまえ」になっているんです。
5. AI時代で露呈した矛盾
Stack Overflow → OK
Copilot → 手抜き?
違いは出元が人間かAIかだけなんですよね。
本質的には同じ「外部知の再利用」なんです。
6.「努力の美学」というバグ
人間は、苦労したものほど価値があると思いこんでしまいます。
# 自作100行 → なんだか偉い気がする
# Copilot50行 → なんかズルい気がする
でもユーザーにとって価値があるのは動作・品質・体験であって、
苦労の量ではないんですよね。
7. 新しい境界線を引き直してみる
手抜きかどうかは「誰が書いたか」ではなく、
「責任を持てるか」で決まるんじゃないでしょうか。
- AIが書いたコードでも、レビューしてマージするのはあなたです
- ライブラリを使っても、バグ対応するのはあなたです
理解 = 責任を持てること。
自作 = 理解ではないんです。
8. 実務での落とし込み
PRテンプレ
コードレビュー(PR)で「なぜこの実装を選んだのか」を説明する時、
以下の3点を伝えるだけで、議論が建設的になります:
## Why: なぜこの方法を選んだか
認証を自作するより、Supabaseを使うことで実装2週間→2日に短縮し、
残りの時間をコア機能に投資できるため。
## Trade-offs
✅ 得られる: 安全性・速度
❌ 失う: カスタマイズ性
⚠️ リスク: 障害時影響(対策済)
9. この視点は「絶対解」ではありません
現場・文化・責任範囲によって、最適解は変わります。
ここで述べたのは私が見てきた現場からのひとつの提案であって、
あなたの経験から見える答えがあれば、それもまた正しいんです。
10. 結論
AIに書かせたコードは手抜きでしょうか?
→ その問い自体が、もう古いのかもしれません。
問うべきは、
その選択は、価値と責任を意識したものか?
それだけでいいんじゃないでしょうか。
Discussion