プログラムを開発をする際、AIを利用して開発をすることが一般的になってきています。
AIを使った開発として「バイブコーディング」と言うことがありますが、バイブコーディングは雰囲気(Vibe)のみをAIに伝えて開発をする手法をいいます。エンジニアでなくても、自分が必要とするアプリを作ることができるとして、非常に流行しています。
しかし、バイブコーディングにはさまざまな懸念点があります。
バイブコーディングの懸念点
最後まで作りきることができるか
バイブコーディングは、最初の2-3割の部分を作るのには、ものすごく早くてすぐに形になるので感動します。しかし、実際にプログラム開発ではそこからが大変で、完成まで持っていくのはなかなか骨が折れます。特にAIに指示を出す「プロンプトエンジニアリング」で、完成まで持っていくとなると、特に最後の方になるほど言うことを聞いてくれなくなるでしょう。
テストやセキュリティ的な懸念
バイブコーディングで作ったシステムは、脆弱性の検査やテストなどが十分に行われていない場合もあります。決まった操作であれば不具合が出ないとしても、いざ複数のメンバーで使おうとすると、さまざまな場所で不具合が出たり、セキュリティホールや脆弱性などが生まれてしまう場合もあります。
保守ができない
最初のシステムをAIに詳しい方がバイブコーディングで実装した場合、その後に担当者が変わったとか、他の人が引き継いで開発をしようとすると、うまくいかなくなるケースがあります。ちょっとした指示の出し方や全体を把握しているか否かなどでも、スムーズに開発できなくなることがあります。
H2O spaceでは、そんなAIによる開発で困ったお客様を「AI駆動開発」でサポートしております。
AI駆動開発とは
AI駆動開発(AI-Driven Development)とは、生成AIに「頼り切って」開発をするのではなく、AIを「パートナー」として、開発プロセスの設計そのものをAIの存在を前提として組み直す開発アプローチです。
通常、プログラム開発ではいきなりプログラムを作り始めるのではなく、要件定義や設計を行い、また実装後もテストや保守のための準備(仕様書の策定など)、一連の開発の流れに沿って行われていました。
AI駆動開発では、この通常のプロセスはそのままに、各工程でAIの力を利用して省力化や効率化を図っています。「人間が考え、AIが実装する」から「人間とAIが共に考え、高速に検証する」というAI駆動開発を実践しています。
AI駆動開発を前提にした要件整理の進め方
AI駆動開発を行うために、H2O spaceでは次のようなポイントで要件定義を行います。
開発環境やデータベースの構造を設計する
開発環境やデータベースの構造は、AIに任せることもできますが、ここをしっかり設計することがその後の保守性の確保につながります。そのため、この部分はAIに任せるのではなく、エンジニアがしっかりと設計をしてAIに伝えます。
コンテキストを意識する
AI駆動開発において重要なのが、「コンテキスト」と呼ばれるAIエージェントに渡す「文脈」です。どのファイルを編集してほしいのか、どのファイルを参照してほしいのか、どれを参考にしたら良いのかなど、AIエージェントが見るべきものを明確に指定することができるよう、コンテキストを常に意識して設計しています。
将来の拡張性を考慮
今必要なことをAIエージェントに伝えて実装してもらうと、その後にいざシステムの拡張が必要になったときに、システム内のさまざまな場所を編集しなければならなくなり、AIエージェントが迷ったり間違えたりすることがよくあります。
そのため、仕様の検討の際には将来の拡張性まで考慮して設計することが重要になります。
もし、AI駆動開発でなにか開発をしたいといったご相談がありましたら、いつでもお問い合わせいただければ幸いです。