0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

バイブコーディングの限界と、仕様駆動開発に行き着いた話

0
Posted at

はじめに

私はいわゆるエンジニアではありません。
コードが書けるかと言われると、正直 Hello Worldが限界です。

そんな自分が、生成AIの登場によって「アプリやツールを作れる側」に立てるようになりました。

いわゆる バイブコーディング です。

バイブコーディングは、間違いなく革命だった

最初は感動でした。

  • 「こんなツールを作りたい」と日本語で書く
  • 生成AIがコードを吐く
  • 動く

正直、「もうプログラミング学習いらないのでは?」とすら思いました。

実際、小さなツールや簡単なWebアプリなら 驚くほどのスピードで形になります。

ある規模を超えた瞬間に壊れる

問題はここからです。

機能が増え、

  • 画面が増え
  • 状態が増え
  • 分岐が増え

…ていくと、地獄が始まりました。

  • 修正すると別の場所が壊れる
  • 生成AIに直させると、さらに別の場所が壊れる
  • なぜ壊れたのか、自分でも分からない

コードを見ても理解できません。

今思えば当然で、 自分は「何を作るか」を言葉にしていなかった からです。

プロが見たら卒倒するコードになる理由

今なら分かります。

バイブコーディングでは、

  • 目的
  • 仕様
  • 制約

を頭の中のふんわりしたイメージのまま進めがちです。

生成AIはそれを補完してくれますが、 曖昧さまで含めてコード化してしまう。

結果、

  • 一貫性のない設計
  • その場しのぎの修正
  • 文脈を失ったコード

が積み上がります。

これはスキルの問題というより、 開発の進め方の問題 でした。

じゃあどうするか? → 仕様駆動開発

私が行き着いた答えはシンプルでした。

コードを書く前に、仕様を書く

いきなり実装を投げない。

まず生成AIに投げるのは、

  • このツールは何を解決するのか
  • 何ができて、何ができないのか
  • どんな操作フローなのか

という 文章の仕様です。

ド素人なりの仕様駆動開発

私はプロの設計書なんて書けません。

なので、やっているのはこれだけです。

  • 機能を箇条書きにする
  • ユーザー操作を順番に書く
  • 例外ケースを日本語で書く

それをそのまま生成AIに渡します。

すると、

  • コードが安定する
  • 修正指示が明確になる
  • 生成AIとの会話が「会話」になる

バイブコーディングはやめていません。
使い方を変えただけです。

おわりに

これは、

  • プロのエンジニアになる話ではありません
  • 生成AIを否定する話でもありません

むしろ逆で、

生成AIを本当に活かすために、人間側がやるべき仕事が見えた

という話です。

バイブコーディングは入口として最高です。
でも、ずっとそこに居続けると必ず詰まる。

その一歩先にあるのが、 仕様駆動開発 なのだと思っています。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?