FURYU Tech Blog - フリュー株式会社

フリュー株式会社の開発者が技術情報を発信するブログです。

AIとバイブコーディングを実践して見えてくるもの

この記事は 2025 Furyu Advent Calendar の4日目の記事です!

みなさん、こんにちは。
部署が色々変わって、今はプリントシール機事業部に所属している盛岡です。

みなさんはAIを使って開発を進めていますか?
世間では「バイブコーディング(Vibe Coding)」が広く話題になっていますが、私も実際に試してみたので、その雑感をまとめてみます。

経緯と今回の取り組み

  • バイブコーディングを使って実際に成果物を作ってみた
  • 現時点では “正しい使い方” は自分の中でも固まりきっていない
  • ターミナルから指示を出す、アシスト型のAIツールを利用し、ゼロからプロジェクトを立ち上げ

「とりあえず触ってみて、どこまでいけるのか?」という探索的な位置づけです。

1. 仕様の整合

まずは新規プロジェクトとして、実装の初期段階からAIに任せてみることにしました。

使用技術は以下のとおりです(が、今回の記事にほぼ影響はありません)

言語 : Python
Webフレームワーク : Flask
フロント:React

まずはAIにプロジェクトの作成指示を出し、最初の “Hello World” を含む最小限のアプリを生成してもらいました。
そのうえで、システム仕様書やADRなどのドキュメント類もAIに作成させ、 AIとのコミュニケーションが円滑になるようにコンテキストを整備する 方針を取りました。

仕様を明確に記述しながら進めていくスタイルは、どちらかというとウォーターフォール的にも見えますが、AIに正しく意図を伝えるためには、初期の情報整理は必要そうです。

今回生成された成果物
- 最低限動作するプロトタイプ
- 基本的なコードベース
- 各種ドキュメント(仕様書 / ADR など)

2. 開発スピードへの注力

AIの実装力は高く、依頼内容が適切であればどんどん実装が進みます。
ただ、適切なタイミングで構成の見直しなど実施しないとコードの断片化やDRY原則違反が見受けられました。

このあたりで、設計の見直しやテスト導入に少し工数を取って実施してみることとなります。
DRYではなくても、AIなら何とかしてくれるかと思ってましたが、AIが詰まってしまったり意図しない動作を生み出したりすることが多くなるので、適度に実施した方が効率は上がりそうな印象でした。

コードの保守性や負債について意識し始めるフェーズです。作業のスピードを落とさないために、出来ることを実施します。

このあたりになってくると、指示の出し方やサポートの仕方に若干経験や知識が必要になると考えます。

今回生成された成果物
- コンポーネント設計されたコードベース
- テストコード
- テストハーネス

3. 自動化

自動テストも揃ってきて、テストケースのコードだけでなく、テスト要項を仕様としてドキュメント化してテストケースの漏れや重複などもチェックするようにしました。E2EテストもそこからAIに作成させて動作させます。
CIについても導入を考えましたが、AIアシストツールを利用していると別ツールで実装するより、仮想環境 + コマンドラインで実施出来たほうが便利かもと感じました。ラウンドトリップがオーバーヘッドになってしまうなぁと少し思ったところです。
もちろん人間が複数人居たり、AIも複数走らせている環境ではCI/CD環境を整備する方がベターではあると思います。

今回生成された成果物
- 適度にリファクタリングされたコードベース
- テストドキュメント
- IaCコード

4. 気づき

結果、1週間程度でそれなりに複雑なサービスと運用ツール郡が出来上がりました。
今回の取り組みでは、これまでの開発経験、特に開発リーダーとしてプロセス管理を行ってきた知識を比較的うまくAI開発に適用できたと感じています。 事前準備が万全というわけではありませんでしたが、 コーディングルールの整理、仕様の読み合わせ、テストプロセスの構築 など、従来開発で培ったノウハウをそのまま流用するだけで、生産性を大きく落とさずに進められました。

全体としては、以下のような所感にまとめられます。

AI開発で「バイブ感(Vibe)」が乗ると自然に進むもの

AIと対話しながら開発を進めると、以下の要素は特に相性が良く、自然と整備が進みました。

  • ドキュメント化
    • AI側の理解が深まり、やり取りがスムーズになる。
  • 自動テストの整備
    • テストコード生成との相性が良く、追加機能の検証が高速化。
  • IaC(Infrastructure as Code)化
    • 設定関連をコード化するとAIがより正確に編集・生成できる。

逆に、ボトルネックになるため排除したいもの

AI開発では“待ち時間”や“分断”があると途端に効率が落ちます。以下はなるべく排除したい要素です。

  • 開発のサイロ化
    • フルスタックで内容を俯瞰できるエンジニアが伴走するほうが、AIとの情報ギャップが減る。
  • プロジェクト外でのドキュメント管理
    • 設定ファイルも含めて、なるべく1つのプロジェクトリポジトリに集約したほうがAIが把握しやすい。
  • プロジェクト外の処理待ち
    • CI/CD やクラウドサービス連携などの結果は、AIがその場でフィードバックできる状態にしておくと作業効率が上がる

AIとの協働スタイルについて

今回は、AIには主にアシスト役として伴走してもらう方針を取りました。
個人的には「優秀で、こちらの意図を的確に汲み取ってくれるエンジニアが常に横にいる」ような感覚で、まさに バイブコーディング(Vibe Coding) の体験そのものだったと思います。

一方で、AIに逐次タスクを依頼したり、実装方針をある程度固めておかないと先に進みづらい場面もありました。
開発効率だけを考えると、目的が明確な場合には自律的にタスクをこなしてもらうエージェント型AIの活用も選択肢に入りそうです。

現状のAIの応答精度や実装品質を踏まえると、2025年時点では以下のような使い分けが適していると感じます。


エージェント型(タスクが明確・大規模開発向き)

  • バグ修正
  • ライブラリ変更
  • 明確な仕様や完了条件があり、処理を一括で任せられるタスク

アシスト型(探索的・インクリメンタルな開発向き)

  • 機能開発
  • 複雑で創造性が求められるタスク
  • 実装を段階的に確認しながら進めたいケース

エージェント的な動きを別のAIで監視させるみたいなTIPSも出回っていたりして精度の向上は著しいですが、現状では適応するタスク選定が重要なイメージがあります。

AIとともにある開発の姿

AI開発の時代において、開発のあり方はどのように変化するのか考えてみます。 弊社ではアジャイル開発を取り入れ、価値を小さく素早く届けるインクリメンタルな開発とフィードバックサイクルを重視しています。この開発スタイルにおいて、AIが登場したからといってエンジニアの役割が劇的に変わるわけではなさそうです。

AIは“何か”を高速に実装してくれますが、“何をつくるか”という本質的な仕様策定や動作確認、判断といった部分は引き続き人間が担う必要があります。むしろ、アジャイル開発が解決しようとしてきた領域こそ、より重要性が増すと感じています。

一方で、AIによる生産性向上により、チーム内の必要人数は一定程度減るかもしれません。その逆に、新しい仮説検証やトライ&エラーを高速で回せるようになるため、小規模な開発チームの数自体は増えていく可能性があります。

求められるスキルセットも変わりつつあります。
単に与えられたタスクを早く実装する能力ではなく、タスクを定義し、適切に評価し、AIを活用しながら進められる能力がより重要になるでしょう。AIは、使いこなせる人の生産性を大きく押し上げるため、その前提となるエンジニアの思考力・設計力が一層問われるようになります。
全体設計やアーキテクチャの重要性も、今後一層高まっていくはずです。

結局のところ、エンジニアの生存戦略は「自分で課題を発見し、解決できる力」を磨くこととになりそうです。単にAIの操作に習熟するだけでは限界があり、日々の地道な努力や学習がこれまで以上に求められると感じています。

まとめ

これが一番言いたかったことになりそうですが、もし経験が無いのであれば、エンジニアからマネージャーになった方こそ、とりあえず1週間ほどAIを使ってバイブコーディング開発を一回やってみましょう。
何が出来て何が出来ないかを身を持って知ってほしいです。そして、めちゃくちゃおもしろいものを生み出すエンジニア集団を創造していきたいですね。(AIも仲間です!)