AIはスピードアップできるがショートカットはできない
AI 入れてもやってることは変わっていない説
筆者は AI を活用した開発を積極的に進めているが,じつは「開発でやっていること」自体はあまり変わっていない.AI を使うことで「スピードアップ」はできるが,開発の本質的な部分は変わっていない.
開発フローの変化
AI を使う前と後で,開発フロー(概略)は以下のように変化した.変化した?
↓AI なしの場合
1. 【人間】要件定義
2. 【人間】設計
3. 【人間】レビュー
4. 【人間】タスク分解
5. 【人間】issue 作成
6. 【人間】レビュー
7. 【人間】実装
8. 【人間】プルリクエスト作成
9. 【人間】レビュー
10. 【人間】マージ
11. 【人間】リリース
↓AI ありの場合
1. 【人間 + AI】要件定義(Claude)
2. 【人間 + AI】設計(Claude)
3. 【人間】レビュー
4. 【人間 + AI】タスク分解(Claude)
5. 【AI】issue 作成(Claude Code + GitHub MCP)
6. 【人間】レビュー
7. 【AI】実装(Claude Code)
8. 【AI】プルリクエスト作成(Claude Code + GitHub MCP)
9. 【人間】レビュー
10. 【人間】マージ
11. 【人間】リリース
AI で何が変わったか
開発の流れは変わっていない
AI を使った開発でも,従来の開発でも「本質的に大事なポイント」は大きく変わらない部分が多い.例えば:
共通して重要なポイント
-
要件定義と目的の明確化
AI を使うかどうかに関わらず,「何を解決したいのか」「誰のためのものか」が曖昧だと成果物の質が下がる. -
設計とアーキテクチャ
拡張性・保守性を意識した設計は常に重要である.AI 部分はあくまで開発におけるコンポーネントの一つに過ぎない. -
テストと品質保証
単体テストや結合テストの重要性は変わらない.AI の場合は加えて「出力の不確実性」を考慮したテストが必要になる. -
セキュリティとプライバシー
データを扱う以上,基本的なセキュリティ設計・権限管理・ログ管理は必須.
つまり「開発の土台」は変わらず,AI を導入するときはその土台の上に「データ品質」や「倫理性」といった追加要素を積み上げていくイメージ.
AI はスピードアップできるがショートカットはできない
AI ができるのは実装のスピードアップやタスクの自動化であって,開発プロセスのショートカットではない.
「スピードアップ」と「ショートカット」の違い
-
スピードアップ
- AI は既存の開発プロセスを効率化する.
- 例:コード補完,テストコード生成,リファクタ提案,ドキュメント整理など.
- 人が本来やることを「速く」してくれるので,開発サイクル全体を短縮できる.
-
ショートカット(=省略やスキップ)
- 要件定義を曖昧にしたり,設計を飛ばしたりすることはできない.
- むしろ AI が生成したものをそのまま信用して進めると,後で大きな手戻りになることが多い.
- 実装しなくて良くなるわけではなく,レビューをやらなくて良くなるわけでもない.
実装〜プルリクエスト作成など連続して行えるが,それでもやっている作業自体が変わっているわけではない.
たとえるなら…
AI は「自転車の補助モーター」みたいなもの.
- ペダルを漕ぐ(要件定義・設計・判断)は人間が必須.
- モーター(AI)が力を加えてくれることでスピードが増す.
- でも漕ぐことをやめたら前に進めない.
注意すべき落とし穴
- 過信:「AI が答えてくれるから大丈夫」と思って確認を怠ると危険.採用技術の設計思想や制約を理解していないと AI がパワープレイで生み出したコードが負債となる可能性もある.
- 責任の所在:生成結果に誤りがあっても最終的な責任は人間にある.「AI が生成したのでわかりません」は通用しない.
- 基盤力の低下:設計力やコーディング力を「AI 任せ」にしすぎると,開発者としての基礎が弱くなる.出力されたコードを理解せず,問題が発生したときに修正の当たりをつけられなくなる可能性がある.
こう考えると「AI は開発をショートカットする魔法の杖ではなく,開発者の能力を拡張する加速装置」と捉えるのがちょうど良さそうである.つまり開発者自身の能力が高くないと,AI を使っても効果が薄いということだ.
結局開発者が自力でできないとキツイ
AI を「うまく活用できるエンジニア」とは,裏返せば AI がなくても自力でやれる実力を持ったエンジニア である.
なぜそう言えるのか
-
判断力が必要だから
AI が提案した設計やコードが「良いか悪いか」「今の要件に合っているか」を判断する力は,基礎的なスキルと経験に依存する.判断力がないと誤った方向に進んでしまう. -
本質は変わらないから
要件定義,アーキテクチャ設計,セキュリティ,テストなどの工程は AI が肩代わりできない領域.ここを理解していないと,AI の出力をうまくはめ込めない. -
AI の出力を補正・発展させる力が必要だから
AI は「平均的な解答」を早く返すのは得意だが,「本当に現場で役立つ形」にするには人間の知見が要る.「役立つ形」を出力させるためには,AI の出力を理解し,必要に応じて修正・補完できるスキルが求められる.
AI は「強力な武器」みたいなもの.
- 武器を正しく使う知識・経験がある人なら,すごい戦果を生む.
- でも戦い方を全く知らない人が持っても,怪我をするか,むしろ損害が増す.
開発者自身が知識・経験を持ち,開発フローや開発ルールを整備していれば「どの工程にどの AI を使えばよいか」が明確になる.様々な AI ツールが発展する中でも適切に取り入れることで開発を加速させることができるだろう.
開発者は今後どのような領域に投資すべきか
AI の進化に合わせてエンジニアがどこに力を注ぐべきかを考えると,むしろ 基礎力 と 推進力 がより重要になる.まずは AI の有無にかかわらず自力で開発できる力を身につけることが大事.
1. 技術の基礎力
-
アルゴリズム・データ構造・設計原則
- AI がコードを補完しても,設計の良し悪しや性能のボトルネックを見抜ける力は基礎学力にする.
-
セキュリティ・ネットワーク・OS の理解
- 「どこに注意すべきか」がわからないと AI の出力を正しく評価できない.
-
計算思考・抽象化能力
- 問題をどうモデル化し,どう分解するかというスキルは時代が変わっても普遍的.
2. 開発をリードする推進力
-
要件定義・意思決定
- 「何を作るべきか」「どこまでやるか」を決める力は AI に任せられない.自分のプロダクトの価値を設計する力とも言える.
-
チームビルディング・コミュニケーション
- 開発は一人で完結しないので,関係者を巻き込み推進する力が重要.
-
品質保証・リスク管理
- AI が生んだアウトプットをどの基準で採用し,どう担保するかを判断する責任は人間にある.
3. AI との共創スキル
-
AI の限界を理解する力
- 「ここまでは AI に任せられるが,ここからは人間が補う必要がある」という線引きをできる力.
-
AI の出力を編集・評価する力
- そのまま使うのではなく,改善・発展させて成果物に昇華するスキル.
AI が発展しても,エンジニアに求められるのは「道具に依存しない地力」と「チームやプロジェクトを前に進めるリーダーシップ」.
AI に指示を出すときに,想定される出力イメージが頭の中で明確に描けることが重要である.むしろ AI が便利になればなるほど,「道を決める人」と「責任を負える人」の価値は高まる.
まとめ
AI は開発のスピードを大幅に向上させるが,開発プロセスの本質的な部分は変わらない.AI を使いこなすためには,基礎力と推進力を高めることが重要である.
AI を使いこなすエンジニアは,もともと基礎体力がしっかりしている人.AI はその能力を何倍にも拡張するが,ゼロから作り出す魔法の代替品ではない.理解していなくても作れないことはないが,プロダクトは作って終わりではない.中身の構造や開発自体を理解していないと安全に運用・拡張できない.
教育の現場で「AI は練習をサボる近道ではなく,練習を積んだ人がさらに伸びるための道具」と伝えると,理解が深まりそうである.練習や訓練は裏切らない.
以上だ( `・ω・)b
Discussion