コードを書くのをやめた。アプリは3日でリリースされた。

3ヶ月前、私はフルスタックのSaaSダッシュボードを構築した。認証、データベース、REST API、そしてUIを備えたものだ。

私が書いたコードは約200行。残りはすべてAIがやった。AIがコードを書き、レビューし、修正まで行った。

アプリは公開され、ユーザーは料金を支払っている。私は、理解もできないバグを直すために深夜2時に起きていることもない。

これは自慢ではない。警告だ。

開発者の役割は急速に変化している。勝ち残る開発者は、この変化に抗うのではなく、変化をリードする者だ。

AIを単なるオートコンプリート(自動補完)ツールだと考えるのはやめよう。それは古い考え方だ。

「AIネイティブ開発」は新しいメンタルモデルだ。AIを使う目的は、コードを書くスピードを上げることではない。実装をAIに任せ、自分はアーキテクチャと判断に集中することにある。

そのシフト(転換)は次のようなものだ:

  • 旧モデル:自分でコードを書く。AIはタイピングを速めるのを助ける。
  • 新モデル:「何を(what)」「なぜ(why)」を定義する。AIが「どのように(how)」を担う。人間は検証と舵取りを行う。

私はまさにこのワークフローを使ってアプリを構築した:

  1. Next.jsやPrismaなどの標準的なツールを使ってプロジェクトの雛形(Scaffold)を作る。
  2. データモデルを自然言語で記述する。
  3. AIにスキーマを生成させる。
  4. 詳細なプロンプトを使用して、サーバーアクションとロジックを生成する。

私は関数を書かなかった。レビューし、テストし、エラーメッセージを調整しただけだ。

それが新しい仕事の姿だ。

AIがコードを書くのであれば、あなたの価値は「メタスキル」から生まれる。AIはパターンを見つけるのは得意だが、意思決定は苦手だ。

AIには判断できないことがある:

  • サーバーアクションが必要か、APIルートが必要か。
  • ステート(状態)をどこに置くべきか。
  • モノレポを採用すべきかどうか。

これらの決定にはコンテキスト(文脈)が必要だ。AIにはコンテキストが欠けているが、あなたにはある。

今や、ジュニア開発者とシニア開発者の違いは「プロンプトの精度」にある。

  • 弱いプロンプト:「レートリミッターを書いて」
  • 強いプロンプト:「Next.jsのAPIルート用に、Redisベースのレートリミッターを書いてください。1つのIPにつき1分間に10リクエストまでに制限し、超過した場合は429エラーを返してください。管理者は除外し、イベントはPrismaにログとして記録してください。」

後者のプロンプトなら、即座に本番環境で使えるコードが得られる。

また、「サイレントな失敗」にも注意しなければならない。AIが書いたコードは、一見正しく見えても微妙なバグを含んでいることが多い。AIのアウトプットは、ジュニア開発者からのプルリクエストと同じように扱うべきだ。懐疑的な目でレビューすること。

「コードを書く量を減らすこと」を最適化してはいけない。「コードを取り巻くスキル」を最適化すべきだ。

開発者Aはすべてを手書きで行い、スピードが上がらない。 開発者Bは細かな部分にAIを活用し、システム設計に時間を割いている。

Developer B が新たなスタンダードです。

今週、ぜひこれを試してみてください:

  • コードを書く前に、機能の完全な仕様書を作成する。
  • その仕様書をプロンプトとして使用する。
  • シニアエンジニアがジュニアエンジニアをレビューするように、出力をレビューする。

目標は、開発者であることをやめることではありません。より優れた開発者になることです。

出典: https://dev.to/emma_schmidt_/i-stopped-writing-code-my-app-still-shipped-in-3-days-heres-what-that-tells-us-about-being-a-2ghp

オプションの学習コミュニティ: https://t.me/GyaanSetuAi