
AIは便利で、プログラミングもほぼ自動でやってくれるので、「エンジニアの技術力が落ちている」という会社さんの声をよく聞くようになりました。
AIプログラミングを解説する動画やWebページ、書籍などを見ていると、細かなプログラムのコーディングは、AIに任せて、人は「設計」をやるように言っています。
システムやサービスの設計って、実はまだ現時点(2026年4月時点)において、AIに丸投げしてしまうと、ほとんどの場合がまるで想定外のプログラムが出来上がってしまいます。
それを防ぐために、人がちゃんと設計をしてあげなければいけないんですね。
また、AIが間違った方向でシステムを構築しようとしていた場合に、適切に方向を修正してあげるのは人がやるべき仕事でもあります。
なので、今のエンジニアに必要なのは「設計力」なんですね。
これまで、if文とfor文をひたすら書く事がプログラマーの仕事でしたが、これからはもっと上流工程の事ができないといけないAI時代に突入してしまいました。
最近、この手の話ばかり求められるので、ブログに自分が考えるエンジニアの必要スキルについてまとめておきたいと思います。
設計力は、ただの「構造決め」ではない
まず最初に整理しておきたいのは、「設計力」という
言葉の正体です。
・画面構成を考えることではない
・テーブル設計だけの話でもない
・アーキテクチャ図を書けることでもない
設計力とはもっと抽象度が高くて、
・何を作るべきかを定義する力
・どこまで作らないかを決める力
・変化に耐えられる構造を選ぶ力
概念的なものも含めて、そのプロジェクトの進行を司どる事なんではないかと思います。
AIは「作る」ことは得意ですが、「何を作るべきか」を決めるのは苦手なんです。
だからこそ、この領域が
人間の価値としてやらなければいけないんですね。
AI時代のエンジニアは「翻訳者」になる
少し視点を変えると、これからのエンジニアは「翻訳者」に近くなります。
・ビジネス要件 → システム構造
・曖昧な要望 → 明確な仕様
・人間の意図 → AIが理解できる形
この
変換を行う役割です。
AIに雑に投げると、雑なものが返ってきます。
逆に、
・前提条件を揃える
・制約を明確にする
・期待する挙動を具体化する
これをやるだけで、AIの出力は一気に変わります。
つまり、AIでシステムを構築すると言うのは、
「AIの性能」ではなく
「入力する設計の質」が成果を決める世界
になってきています。
設計力を構成する3つのスキル
では、その設計力はどう分解できるのか。
自分の中では、大きく3つに分かれます。
1. 抽象化する力
・問題の本質を抜き出す
・共通パターンを見つける
・余計な情報を削ぎ落とす
コードを書いているだけではなかなか伸びない領域です。
例えば、
・「ユーザー管理機能」なのか
・「認証と権限管理」なのか
この切り出しだけで設計は全く変わります。
2. 分解する力
・大きな問題を小さく分ける
・責務を適切に分離する
・依存関係を整理する
AIに丸投げすると破綻しやすいのがここです。
分解が甘いと、
・謎に巨大なクラス
・責務が混ざった関数
・後から触れないコード
が量産されます。
逆に、分解がきれいだとAIでも良いコードが出てきます。
3. 意思決定する力
・トレードオフを理解する
・完璧を目指さない
・状況に応じて選択する
設計は「正解を当てるゲーム」ではなく、
・スピードを取るか
・拡張性を取るか
・コストを抑えるか
こういう判断の連続です。
ここは完全に人間が判断する領域なんですね。
「コードが書ける」はむしろ武器になる
ここで
よくある誤解があります。
「AIがコードを書くなら、もう実装力いらないのでは?」
これは半分正しくて、半分間違いだと思うんですよ。
コードを書ける人ほどAIをうまく使えるし、
内部構造を理解しているほど設計が強くなるからですね。
例えば、
・この設計だとパフォーマンスが落ちる
・ここはN+1問題が出そう
・このAPI設計は後で詰む
こういう勘は、
実装経験からしか出てきません。
なので、「コーディング力は不要になる」のではなく、
「設計に活きる形に昇華される」というのが正しい捉え方です。
これから伸ばすべき具体アクション
じゃあ何をやればいいのか。
これまでは、現場経験での失敗がもっともスキルアップになり、エンジニア力がアップする手段でしたが、
AIを使ったプロジェクトなどで以下のような活動ができるといいのではないかと考えられます。
・設計レビューに積極的に参加する
・既存システムの構造を読み解く
・なぜこの設計なのかを言語化する
・AIに雑に投げて失敗する経験を積む
・設計→AI→修正のループを回す
特におすすめなのは、
「AIにあえてダメ設計をさせて、どこがダメか考える」
自分でプロジェクトを立ち上げて、思った通りのシステムが出来上がるか、またまるでダメなものを作らせて、それを設計し直すみたいなのも、実際の仕事現場で生きるスキルに繋がりますからね。
AI時代は「楽になる」だけの話
ココが一番大事な話なんですが・・・
AIプログラミングが主流になってきた現在では、
エンジニアが不要になる話ではないし、
・スキルがリセットされる話でもないです。
むしろ、雑で細かな作業から解放され、本質的な設計に集中できる上、面白い部分だけやれると言うメリットある開発ができるようになるんじゃないでしょうか?
そう考えると、AI開発って、かなりポジティブな変化なんですよね。
これまで、「とりあえずif文書いて整えるか…」みたいな時間に使っていたエネルギーを、
・構造を考える
・価値を考える
・より良いシステムを考える
こういう箇所に思考を時間を使えるようになるはずです。
あとがき
AIは「作る」のが得意だけど、仕様は決められない。
そして、人間は「決める」のが得意(なはず)なので、設計力はその橋渡しを行う。
これが、今の時代に求められるエンジニアの設計色だと思うんですよね。
そして、これからのエンジニアは、「コードを書く人」ではなく「価値を設計する人」になっていくハズです。
時代が変わったというより、「エンジニアの本来の仕事に戻ってきた」そんな感覚の方が近いのかもしれません。
0 件のコメント:
コメントを投稿