Vibe Coding(バイブコーディング)会を開催しました

こんにちは。AIソリューショングループに所属している山田です。

今回から、私たちが開発している生成AIソリューション「Know Narrator(ノウナレーター)」を実際に開発しているメンバーによるコラムをお届けしていきます。

開発の進め方や考え方、チーム運営、利用しているツールなど、プロダクト開発を行うチームならではの視点からお伝えしていく予定で今回はその第一弾の記事となります。

先日、AIソリューショングループでは「Vibe Coding(バイブコーディング)会」と称して、マネジメント層のメンバーまで参加して開発メンバーと一緒にコーディングエージェントを使って開発をしてみるというプチイベントを社内で実施しました。

本記事ではその内容や得られた知見などを紹介していこうと思います。

開催の背景と目的

開催の背景としては、開発者に限らずステークホルダーが集まって、話題となっている「Vibe Coding(バイブコーディング)」を実際に実践してみることで、双方が同じ視点で議論できる場をつくりたいというものがありました。

会のねらいを整理すると以下のようになります。

  • 新しいトレンドの理解を深める
    • 実際に開発をしているプロダクトのコードベースに対し、Vibe Codingを実践することで業務でどう活かせるのかを考えながらキャッチアップする。
  • ステークホルダー間の共通認識を深める
    • 開発者とマネジメント層の間で、新しい手法やアプローチに対するギャップが生じることがあるため、会を通して現実的にできることの目線を合わせる。
  • プロダクトへのフィードバックの反映
    • Vibe Codingによって、プロダクトに対するフィードバックや要求をより効果的に反映する方法を模索する。

対象プロダクトと利用したAI Codingツール

今回、Vibe Codingを実践する対象は私たちが開発している「Know Narrator(ノウナレーター)」です。

電通総研の生成AI活用プラットフォーム: Know Narrator

電通総研の生成AI活用プラットフォーム Know Narrator(ノウナレーター)は、生成AIの活用業務を拡げるために電通総研が独自開発した生成AIプラットフォームです。ビジネス…

実際のプロダクトのコードベースに対し、Vibe Codingで手を加えるということで少しチャレンジングな試みでもありました。

また利用したAI Codingツールは「GitHub Copilot コーディング エージェント」です。

GitHub Copilot:新しいコーディングエージェント - GitHubブログ

機能実装はかつてないほど簡単に:タスクやIssueをGitHub Copilotに割り当てるだけ。GitHub Actionsを利用してGitHub Copilotがバックグラウンドで実行し、作業をプルリク…

GitHub Copilot コーディング エージェントは、GitHub上のIssue上で作業内容を指示し、Copilotをアサインすることで、コーディングタスクを実施します。

実際にやってみて

実際にVibe Coding会をやってみた結果としては、かなりポジティブなものでした。

ここからは実践して得られた学びについて紹介します。

思っている以上に「指示を出す」のが難しいということ

「指示を出す」という行為は、実際には前提知識が多く必要です。特に既存のプロダクトのコードベースに手を加える際は以下のような点を押さえていないと、何を指示として与えれば良いかもわからない状態になります。

  • 対象のプロダクトの既存機能についての理解
  • 既存のコードベースの構成についての理解

今回の対象のリポジトリの規模は全体で40万行程あり、この規模のコードベースに対し、適切に指示を出すには以下のような点を意識すると効果的であることが改めてわかりました。

  • 作業スコープを小さくする
    • 当たり前ですが作業スコープを絞り、限定して指示をする方が良い成果が得られます​。またレビューをする際も作業スコープが小さいと差分が少なく済むので、レビュー→修正のプロセスを効率的にこなせるようになります。
  • 綿密な指示よりも、大枠を共有してやらせてみる
    • 先の「作業スコープを小さくする」と逆ではないか?と思う方もいると思いますが、こちらは指示内容の粒度の話です。コーディングエージェントはとにかく手が速い訳なので、動かし得なところがあります。事前に細かく決め指示を出す部分で時間を使うよりも、実際にコーディングエージェントに書かせたコードに対し、レビューを通してフィードバックをすることで方向性が固まってくるので大枠を与えてやらせてみるというのが効率的だったりします。
  • 既存実装に手を加えるよりも新規実装へ
    • これは今回の実践の性質上、既存のコードを何でも書き換えて良い訳ではないため、既存実装に手を加える指示よりも改善した新規実装をするように指示を出すと効率的かつ安全に作業を進められました。

コーディングエージェントは開発者を代替するものではない

ここは「現時点では」という注釈が必要かもしれませんが、コーディングエージェントは開発者を補完する強力なツールであり、開発者の役割を置き換えるものではありません。

「指示を出す」という行為の難しさの部分でも触れましたが、指示を出すためにはプロダクトやコードベースに関する深い知識を必要とします。この前提知識を持つ部分は開発者の役割です。

実際、今回の会では普段開発に参加していないメンバーも含めて実践をしましたが、最初の指示を出す部分、つまりIssueを書く部分は開発者が担って進めました。これはコードレビューの部分も同じです。

コーディングエージェントを活用することで、開発者がより作業に集中できる可能性を感じました。開発者は自身の知識とコーディングエージェントの活用によって、より効率的で高品質なプロダクト開発が実現できると期待しています。

まとめ

今回のVibe Coding会を通じて、AI Coding(エーアイコーディング)ツールを活用した新しい開発手法の可能性を実感することができました。特に、コーディングエージェントを活用する際の指示の出し方や、既存コードベースへの適用方法について多くの学びがありました。

今後も、こうした新しい技術や手法を積極的に取り入れながら、より良いプロダクト開発を目指していきたいと思います。


AITCでは一緒に働いてくださる方を募集しています!

詳細は以下のページをご覧ください!

執筆
AIソリューショングループ
山田 侑樹