Zenn
📣

DevinとGitHubで始めるAI駆動Webアプリ開発 – 最新技術スタック活用ハンズオンガイド (2025年2月版)

2025/02/20に公開
2

DevinとGitHubで始めるAI駆動Webアプリ開発 – 最新技術スタック活用ハンズオンガイド (2025年2月版)

AIエージェントを活用したAI駆動開発が、2025年現在いよいよ現実的な手法になりつつあります (Webアプリ開発の変遷:2000年~2023年までの手動開発、2024年以降のAI駆動開発の普及(2025年2月) #ポエム - Qiita)。2024年3月にはCognition社が世界初の完全自律型AIエンジニア「Devin」を発表し、与えられた情報を基に開発プロセス全体を自律的に進められるAIエージェントとして注目を集めました (完全自律型AIエンジニア「Devin」が切り開くAI駆動開発の可能性 #生成AI - Qiita)。GitHub Copilotのようにコード補完するだけでなく、計画立案からコーディング、テストまで包括的に対応できる点が大きな特徴です。その結果、「ソフトウェア開発の民主化」が現実のものとなり、エンジニアが身近にいなくても誰でもアイデアを形にできる時代が来ています (ソフトウェアの民主化。誰でもアプリ開発が可能となる。Devinを見逃すな!!|ちょむのすけ)。

本記事では、ビジネスサイドの方(プログラミング基礎習得済み・生成AIによる開発経験あり)が、このDevinとGitHubを活用して最新モダン技術スタックによるWebアプリ開発を行う具体的な手順を提案します。AIエージェントを“開発パートナー”として迎え、Next.jsSupabaseといった2025年現在定番の技術を組み合わせ、Vercel等のモダンなデプロイ環境に展開するまでの流れを、ハンズオン形式で解説します。アプリ自体にはAI機能を組み込まずとも、開発プロセス自体はAIにドライブしてもらうことで、ビジネスアイデアの実現スピードを飛躍的に高めることができます。

各ステップでは具体的な手順を示します。本記事だけを読み進めれば、実際に手を動かしてプロダクト開発を開始できることを目指しています。それでは順を追って見ていきましょう。

1. 開発環境のセットアップ – Devin導入とGitHubリポジトリ準備

まずは AIエージェント「Devin」 を開発フローに組み込むための準備を行います。DevinはSlackやGitHubと連携して動作するため、これらの環境を整備しましょう (完全自律型AIエンジニア「Devin」が切り開くAI駆動開発の可能性 #生成AI - Qiita)。

以上で、Devinを開発メンバーに迎える準備が整いました。まるでリモートのエンジニアをオンボーディングしたような形ですが、違いは彼(Devin)は24時間高速に働き続けてくれるAIだということです。指示内容が曖昧な場合はDevin側から次に取るべきアクションの候補を質問してきたりと、適切に報告・連絡・相談を行ってくれるのも特徴です (完全自律型AIエンジニア「Devin」が切り開くAI駆動開発の可能性 #生成AI - Qiita)。それでは、具体的な開発作業に入っていきましょう。

2. 技術スタックの選定 – Next.js・Supabase・Edge Functions・デプロイ環境

次に、Devinに構築してもらうWebアプリの技術スタックを決定します。今回はフロントエンド~バックエンドまでフルスタックなWebアプリを、できるだけシンプルかつモダンな構成で実現する方針です。2025年現在のトレンドや相性を考慮し、以下の技術を採用します。

  • フロントエンドフレームワーク: Next.js (Reactベース)
    Reactコンポーネントを用いた開発が主流の中、Next.jsはSSR(サーバサイドレンダリング)やルーティング、ビルド済みの最適化を備えたデファクトスタンダードです (Webアプリ開発の変遷:2000年~2023年までの手動開発、2024年以降のAI駆動開発の普及(2025年2月) #ポエム - Qiita)。TypeScriptとの相性も良く、ページ単位のファイル構成と豊富な公式プラグインによって、初心者にも扱いやすいフレームワークです。Next.js 13以降ではApp Routerと呼ばれる新しいディレクトリ構造が導入され、より柔軟で高速な開発が可能になっています(React Server Componentsによるパフォーマンス向上など)。ビジネスサイドの方でも、UI/UX部分を中心に要件を伝えればDevinが適切なページとコンポーネントを生成してくれるでしょう。

  • バックエンド/BaaS: Supabase (PostgreSQL + サーバーレス機能)
    データベースにはスケーラビリティと開発効率からSupabaseを採用します。SupabaseはオープンソースのFirebase代替とも称され、フルマネージドのPostgreSQLデータベースに、認証・ストレージ・リアルタイム通知・エッジ関数などの拡張機能を統合提供するプラットフォームです (Supabase + Vercel Partnership)。特に認証(Auth)ファイルストレージ、データ変更時のリアルタイム通知など、多くのWebサービスで必要となる機能が組み込み済みで、バックエンドの実装負担を大きく減らせます (Supabase + Vercel Partnership)。また、SupabaseはEdge Functionsと呼ばれるサーバレス関数のデプロイ機能も提供しており、Postgresに近い場所(Supabaseのクラウド上、Denoランタイム)でカスタムロジックを実行可能です。これにより、必要に応じてデータ処理やサードパーティAPI連携のコードをサーバレスで走らせることができます。

  • デプロイ環境: Vercel (サーバレスプラットフォーム)
    開発したアプリをユーザに提供するためのホスティングには、Vercelを利用します。VercelはNext.js開発元が提供するクラウドプラットフォームで、Git連携による自動デプロイやグローバルCDN、サーバレス関数のホスティングに優れています (Railway vs Vercel)。GitHubリポジトリと紐付けておけば、コードをプッシュするたびにビルドとデプロイが走り、数十秒で世界中に変更が反映されたURLが公開されます (Railway vs Vercel)。Next.jsとの親和性は言うまでもなく高く、ビルド設定も自動で最適化されるため追加設定なしでSSRやAPI Routesが動作します。2024年にはVercelとSupabaseの公式パートナー連携も発表されており、Vercel上からSupabaseのデータベースをワンクリックで作成・連携できる統合も始まっています (Supabase + Vercel Partnership) (Supabase + Vercel Partnership)。このようにVercel+Supabaseはスタートアップからエンタープライズまで非常に人気の組み合わせとなっています (Supabase + Vercel Partnership)。

  • そのほかの技術:
    上記以外にも、フロントエンド開発を快適にするツールとしてTailwind CSS(ユーティリティファーストなCSSフレームワーク)や、コード品質を維持するためのESLintPrettier(静的解析と自動整形)などを導入すると良いでしょう。これらはNext.jsのプロジェクト作成時にオプション選択できたり、後から追加も容易です。また言語はTypeScriptを使います。型定義によるバグ検出と開発支援効果が高く、2025年時点でフロントエンド/バックエンド問わず主流となっています (Webアプリ開発の変遷:2000年~2023年までの手動開発、2024年以降のAI駆動開発の普及(2025年2月) #ポエム - Qiita)。Devinに依頼すれば、TypeScriptでの実装も問題なく行ってくれます。

以上が本プロジェクトの技術スタックです。この構成は2025年現在広く採用されている安定した技術群であり (Webアプリ開発の変遷:2000年~2023年までの手動開発、2024年以降のAI駆動開発の普及(2025年2月) #ポエム - Qiita)、AIエージェントによる自動コーディングとの相性も良好です。フロントエンド~インフラまでのセットアップに悩む必要が少なく、Devinのパワーをプロダクトロジックに集中させやすい点がメリットと言えます。では、選定した技術に基づき、Devinを使ってプロジェクトの初期化を進めましょう。

3. プロジェクトの初期化 – Devinによる雛形作成

技術スタックが決まったら、いよいよプロジェクトの骨組みを作ります。通常であれば開発者が自分でフレームワークの初期化コマンドを実行したり、設定ファイルを書いたりするフェーズですが、ここでもDevinに活躍してもらいます。Devinに**「Next.js+Supabaseでプロジェクトを初期化して」**と指示することで、自動的に雛形コードを生成しGitHubにプッシュしてもらいましょう。

具体的な手順は以下のとおりです。

  • Step 3-1: Slackでプロジェクト生成を依頼
    Slack上でDevinにメンションし、プロジェクトのベース作成を依頼します。例えば以下のように指示できます。

    @Devin 新規Next.jsアプリケーションを作成してください。  
    - フレームワーク: Next.js (最新バージョン)  
    - 言語: TypeScript  
    - 機能: Supabaseと接続しデータを読み書きする準備(環境変数やライブラリの設定)  
    - ページ: 仮のホームページを1つ作成("Hello World"と表示)  
    

    このように箇条書きで要件を伝えると、Devinはまずタスクの計画を立案します。「Next.jsプロジェクトのセットアップ -> SupabaseのSDK導入 -> .env設定 -> 簡易ページ実装」という段取りを考えてくれるでしょう。Devinは要求に対して自律的に詳細タスクを洗い出し、実行計画を立てる能力があります (Devin AI review: is it better than Cursor?)。その計画案はSlack上に共有されますので、ユーザーは実行前にそれを確認して「Proceed(進めて)」と返信します(自動進行も可能です)。

  • Step 3-2: Devinによるコード生成とコミット
    計画が承認されると、Devinは自身の開発用VM上でコマンドを実行し始めます。まずはNext.js公式の初期化コマンドであるcreate-next-appを実行し、プロジェクトの雛形ファイル郡を生成するでしょう。その後、指示に従ってSupabase JSクライアントライブラリ@supabase/supabase-js)を依存追加し、接続設定コードを追加するはずです。例えば、utils/supabaseClient.tsのようなファイルを作り、SupabaseのURLやAnonキー(公開用APIキー)を読み込んでcreateClientするコードを用意する、などです。

    💡 補足: SupabaseのURLとAnonキーは、あらかじめSupabaseのプロジェクトを作成して取得しておき、環境変数としてDevinに教えてあげる必要があります。機密情報ですのでGitHubにコミットせず、Devinの実行環境変数やVercelの環境設定に登録します。Devinに最初の指示を出す際、「SupabaseのURLは〇〇、Anonキーは〇〇です。この値を環境変数として設定してください。」と伝えておくとよいでしょう。

    Devinはコードを書き終えると、自動的にその変更をGitHubリポジトリにコミットします。初回であれば「Initialize Next.js app with Supabase setup」というコミットメッセージでプッシュされるでしょう。場合によっては新規ブランチを作り、プルリクエストをオープンする形になるかもしれません(設定によりますが、Devinはプルリク形式でコードを提案することが多いようで (Devin AI review: is it better than Cursor?) (Devin AI review: is it better than Cursor?)】)。どちらにせよ、GitHub上でコード差分を確認できるので、内容をチェックしましょう。プロジェクトの骨組みとして期待通りNext.jsの構成ができていること、pages/index.tsxapp/page.tsx(Next.jsのバージョンによる)に仮の「Hello World」が表示できるページがあること、Supabaseクライアントの設定が組み込まれていることなどを確認します。

  • Step 3-3: 初期化結果の確認と修正リクエスト
    Slack上でも「プロジェクトの初期化が完了しました。GitHubを確認してください。」とDevinから報告があるはずで (完全自律型AIエンジニア「Devin」が切り開くAI駆動開発の可能性 #生成AI - Qiita)】。GitHub上でファイル構成を確認し、必要があれば修正を依頼します。例えば、「Supabaseの設定ファイル名をutils/ではなくlib/ディレクトリに入れて」や「環境変数の名称を.env.localではなくNEXT_PUBLIC_プレフィックス付きに変えて」など、組織のコーディング規約や好みに合わせて指摘できます。修正依頼はSlackで直接伝えても良いですし、プルリクエスト上でレビューコメントとして残してもOKで (完全自律型AIエンジニア「Devin」が切り開くAI駆動開発の可能性 #生成AI - Qiita) (完全自律型AIエンジニア「Devin」が切り開くAI駆動開発の可能性 #生成AI - Qiita)】。DevinはSlack経由のメッセージもGitHub上のコメントもどちらも認識し、対応してくれます。例えばGitHub上でコードの該当行にコメントすると、Devinはそのコメントにリアクション(👀など)した上で、修正コミットをプッシュして再度プルリクを更新してくれることがあり (Devin AI review: is it better than Cursor?)7】。

以上で、プロジェクトの初期セットアップが完了しました。通常であれば数十分かかる環境構築作業が、わずかな指示と自動化によって数分で片付いたことになります。Devinは計画立案からコード記述、動作確認(必要に応じてローカルサーバー起動やテスト実行)、結果報告まで一気通貫で実施し (Devin AI review: is it better than Cursor?)7】。まさに有能な新人エンジニアがテキパキと準備を進めてくれたイメージです。次のステップでは、この基盤上に実際のアプリケーション機能を実装していきましょう。

4. AI駆動によるコード生成とGitHub運用 – 開発の進め方

プロジェクトの土台が整ったら、いよいよ具体的な機能実装に取りかかります。ここからは反復的に、ビジネスサイドのあなた(企画者)のアイデアや要件をDevinに伝え、コードに落とし込んでもらうフェーズとなります。従来であればエンジニアに要件を伝え、仕様検討・実装してもらうやり取りが必要でしたが、Devin相手でも基本的な流れは似ています。自然言語で要件を伝え、上がってきた成果物をレビューしてフィードバックを返すというコミュニケーションを繰り返しまし (完全自律型AIエンジニア「Devin」が切り開くAI駆動開発の可能性 #生成AI - Qiita)6】。

開発フローのイメージ:

  1. 機能の要件を定義(ユーザストーリー): まず実装したい機能を決め、簡潔に要件をテキスト化します。例として、「ユーザーが商品を登録し一覧表示できるCRUD機能」や「問い合わせフォームから投稿された内容を管理者が閲覧できる画面」など、具体的なユースケースを一つ挙げます。

  2. Devinにタスクを依頼: Slackで@Devinにメンションし、上記要件を伝えます。ポイントはできるだけ具体的に期待する動作や画面、データ項目を伝えることです。たとえば「@Devin ユーザーがTodoを追加・表示・削除できるページを作ってください。Supabaseに'todos'テーブル(columns: id, title, completed)があります。フロントエンドでフォームを作り、タイトルを入力して追加、下に一覧表示。各Todoは削除ボタンで消せます。」のように依頼します。todosテーブルなどデータベース側の準備も事前に行っておきます(SupabaseのWeb UIやSQLエディタでテーブル作成)。テーブルスキーマ情報も伝えてあげると、Devinが正しくCRUD処理を実装できます。

  3. Devinの開発・コミット: Devinは要件を理解すると、再び具体的な作業計画を立てて実行に移ります。計画には「Supabaseに接続してtodosテーブル操作するAPIルートをNext.jsに作成」「フロントにフォームと一覧コンポーネントを作成」「フォーム送信でAPI経由でDBにINSERT」「ページロード時にDBからSELECTして一覧表示」などが含まれるでしょう。順次コードを書き、ローカルでテストし、問題なければGitHubにコミット(またはプルリク)します。例えばpages/api/todos.ts(あるいはApp Routerの場合app/api/todos/route.ts)にサーバレス関数を実装し、SupabaseクライアントでINSERT/SELECTを行うコードを書くかもしれません。またpages/index.tsxにはフォームと一覧表示のUIを追加するでしょう。Devinはバグが発生した場合、自らデバッグして修正を試み (Devin AI review: is it better than Cursor?)8】。例えば型エラーや実行時エラーが出ればコンソールログを解析し、コードを修正して再実行する、といったサイクルも自動で行い (Devin AI review: is it better than Cursor?)8】。こうして実装+テストを繰り返し、完了すると「機能実装が完了しました」とSlackに報告が来ます。

  4. コードレビューとフィードバック: GitHub上でプルリクエストが作成されていれば、変更差分をレビューします。期待通りの動作になっているか、コードスタイルや設計上気になる点がないかチェックしましょう。例えば「UIの文言を変更したい」や「この部分のエラーハンドリングを追加してほしい」など改善点があれば、遠慮なくDevinに伝えます。方法は前述のとおり、Slackで指摘しても良いですし、プルリク上でコメントしても構いま (完全自律型AIエンジニア「Devin」が切り開くAI駆動開発の可能性 #生成AI - Qiita) (完全自律型AIエンジニア「Devin」が切り開くAI駆動開発の可能性 #生成AI - Qiita)6】。Devinは指摘を受けると再度コードを修正し、コミットを追加してくれ (Devin AI review: is it better than Cursor?)7】。例えばプルリクのコメントに「console.logが残っているので削除してください」と書けば、すぐにそのログ行を削除するコミットを行うでし (Devin AI review: is it better than Cursor?)9】。修正が完了すると「ご指摘の点を修正しました」と返信が付きます。

  5. マージとデプロイ: レビューの結果問題がなければ、プルリクエストをマージします。Devinは自動でマージまでは行わない(最終判断は人間に委ねる)設定になっている場合が多い (完全自律型AIエンジニア「Devin」が切り開くAI駆動開発の可能性 #生成AI - Qiita)6】。人間が内容を確認してOKであればMergeボタンをクリックしましょう。これでコードがメインブランチに反映され、次のデプロイステップで本番環境に適用されます。

このような流れで、新機能の追加や改良をタスク単位で繰り返していきます。まさに開発者とペアプロしているような感覚ですが、煩雑なコーディング作業はAIに任せ、人間は要件定義と最終チェックに注力できます。ポイントは一度に欲張りすぎないことです。人間のエンジニアと同様、あまりに大量の変更を一度に依頼するとミスの原因になります。機能は小さく区切り、動くものを早く作ってもらい、こまめに確認・修正を積み重ねるのがコツです。

また、Devinは作業中に迷ったことがあれば「○○についてはどのように実現すべきか?」とこちらに選択肢を提示して尋ねてくることがあり (完全自律型AIエンジニア「Devin」が切り開くAI駆動開発の可能性 #生成AI - Qiita)6】。例えばUIデザインの詳細や、既存データがない場合の初期表示などです。そうした場合はSlack上で適宜回答し、一緒に方針を決めていきます(Devinが自律的に相談してくれるのは非常に心強い点 (完全自律型AIエンジニア「Devin」が切り開くAI駆動開発の可能性 #生成AI - Qiita)6】)。

Devinとの開発サイクルに慣れてきたら、次のようなことも可能です:

  • ドキュメント生成: 「この機能の簡単なマニュアルを書いて」と依頼すれば、READMEや別ドキュメントにユーザー向け説明を書いてくれるかもしれません。
  • テストコード作成: 「主要な機能に対するユニットテスト/統合テストを書いて」と依頼すれば、Jestなどを用いたテストコードを追加させることもできます。AIはテスト生成も比較的得意なので、安心材料として活用しましょう。
  • リファクタリング: 「コードの重複をリファクタして」「パフォーマンス改善して」等の依頼にも対応できます。ただし大規模なリファクタリングは一度に変更範囲が広くなるため、部分的に依頼して段階的に行うのがおすすめです。

以上、AI駆動での実装フローを見てきました。プログラミングの生産作業をAIが担い、人間はディレクター兼プロダクトマネージャーのような立ち位置になります。これにより、今までエンジニア不足で着手できなかった多くの開発タスクが大幅に加速できる可能性が見えてき (完全自律型AIエンジニア「Devin」が切り開くAI駆動開発の可能性 #生成AI - Qiita)2】。必要なのは明確なビジョンと適切な指示を出すコミュニケーションスキルであり、コードそのものはDevinが高い生産性で生み出してくれるのです。

では、出来上がったアプリケーションをユーザーに届けるため、最新のデプロイ方法を設定しましょう。

5. モダンなデプロイ環境 – Vercel等を用いた自動デプロイ

開発したWebアプリを社内やユーザに公開するには、デプロイ(ホスティング)環境が必要です。ここでは先述のとおりVercelを使ったデプロイ手順を解説します。他にもRailwayやRenderといった選択肢がありますが、それらとの比較も交えつつ、2025年現在最も開発フローに適した方法を提案します。

  • Vercelを用いたデプロイ:
    Next.js製アプリのデプロイにはVercelが最もシームレスです。まずVercelにログインし、「Add New...」からGitHubリポジトリをインポートします。対象のリポジトリを選択すると、デプロイ設定画面になります。基本的にはデフォルト設定で問題ありませんが、環境変数(SupabaseのURLやAnonキーなど)はここで設定しておきます。Environment Variablesの項目に、例えばNEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYを追加し、値をSupabaseのダッシュボードからコピーして入力します。これでビルド時・実行時にSupabaseへの接続情報がアプリに組み込まれます。

    設定が完了したら「Deploy」ボタンを押すだけで、Vercelが自動的にビルドを開始します。クラウド上でアプリをビルドし、グローバルCDNにデプロイしてくれます。初回は1分ほど時間がかかることがありますが、完了するとyour-project-name.vercel.appといったURLでアプリが公開されます。以降、GitHubのメインブランチに変更が加わるたびにVercelが自動再デプロイを行い、常に最新コードがデプロイされた状態になります。GitHub→VercelのCI/CDパイプラインは標準で組まれているため、追加の設定やサーバ管理は不要です。

    Vercelを使うメリットは、デベロッパーエクスペリエンスの良さです。「git push」するだけで数秒後には世界中でホスティング完了という手軽さは特筆もの (Railway vs Vercel)2】。Next.jsや他のフロントエンドフレームワークの公式サポートも充実しており、カスタムドメインの設定などもAPIや管理画面から簡単に行え (Railway vs Vercel)2】。また各プルリクエストごとにPreview URL(プレビュー環境)が自動生成されるため、開発中の機能を本番反映前にステークホルダーに共有してフィードバックを得ることも容易です。実際、Devinが開発を進める中でもプレビュー用に勝手にデプロイリンクを用意してくれたという報告があり、その便利さが伺え (Devin AI review: is it better than Cursor?)6】。

  • RailwayやRenderとの比較:
    他のモダンホスティングとしてRailwayRenderも人気があります。RailwayはDockerコンテナを用いたバックエンドサービスのデプロイを簡易化しており、データベースやRedisなどもワンクリックでセットアップできるプラットフォーム (Railway vs Vercel)6】。一方、RenderはキャッシュやDB、CronジョブやバックグラウンドWorkerまで幅広いマネージドサービスを提供し、無料枠も比較的手厚い (Render vs Vercel)8】。両者ともVercelに比べてサーバフルなサービス(常時稼働するサーバプロセス)に向いており、Node.jsやDjangoの常駐バックエンド、WebSocketサーバなどを構築したい場合に適してい (Railway app Vs vercel pricing : r/nextjs - Reddit)2】。しかし、本記事のようにNext.js(=フロントエンド)とSupabase(=マネージドDB&BaaS)という構成では、特別な常駐サーバは不要です。サーバレス関数で事足りるため、よりシンプルなVercelが合致しています。加えて、VercelはNext.jsにファーストクラスサポートがあり公式テンプレートも豊富 (Supabase + Vercel Partnership)1】。2024年のSupabase連携パートナーシップにより、Vercel上からSupabaseプロジェクトを管理できる統合も進んできてい (Supabase + Vercel Partnership) (Supabase + Vercel Partnership)7】。以上の点から、本プロジェクトではVercelを採用するのが最適と判断しました。

  • 本番環境での動作確認:
    Vercelデプロイ後、実際に公開URLにアクセスしてアプリが期待通り動作するか確認します。例えば先ほど実装したTodo機能であれば、フォームから新しいTodoを投稿し、ページを再読み込みしてもデータが保持されて一覧表示されるか試します。Supabaseのデータが正しく読み書きできていれば成功です。もしここでバグが見つかった場合も慌てる必要はありません。すぐにDevinに「本番環境で○○の不具合が起きている」と伝えれば、原因を調査して修正コードを上げてくれるでし (Devin AI review: is it better than Cursor?)8】。修正をマージすれば数分後にはデプロイが更新され、不具合が解消されるはずです。

以上で、開発したWebアプリケーションを本番環境に公開する手順が完了しました。サーバやインフラ構築に煩わされることなく、最新のクラウドサービスを組み合わせてデプロイまで自動化できました。AI駆動開発とサーバレスプラットフォームの組み合わせは、お膳立てから公開までを飛躍的にスピードアップしてくれることがお分かりいただけたと思います。

6. 運用・改善の自動化ワークフロー – GitHub ActionsとDevin活用

プロダクトがひとまずリリースできたら、次は運用フェーズです。運用段階でもAIと自動化の力を最大限活用し、継続的な改善を効率よく行いましょう。

  • GitHub ActionsによるCI/CD強化:
    Vercelで基本的なCI(ビルド&デプロイ)は自動化されていますが、プロジェクトの品質を保つために追加のチェックを導入することをおすすめします。GitHub ActionsはGitHubに組み込みのCIツールで、コードのビルド・テスト・静的解析などあらゆるワークフローを自動実行でき (About continuous integration with GitHub Actions)6】。例えば、コードをプッシュするたびに自動でユニットテストを実行し、テストが落ちたらデプロイしない、といったガードを入れることが可能 (About continuous integration with GitHub Actions)6】。これもDevinに任せてみましょう。Slackで「@Devin GitHub Actionsのワークフローを追加してください。内容は、プルリクエスト時にnpm ciとnpm run buildを実行し、続けてnpm testでテストを走らせる。」と依頼します。するとDevinは.github/workflows/ci.ymlのようなファイルを作成し、Node.js用のActions設定を記述してくれます。典型的には以下のようなYAMLになるでしょう。

    name: CI
    on: pull_request:
      branches: [ main ]
    jobs:
      build-and-test:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v3
          - uses: actions/setup-node@v3
            with:
              node-version: 18
          - run: npm ci
          - run: npm run build --if-present
          - run: npm test --if-present
    

    コミットされたこのワークフローにより、以降はプルリクが作成されるたびにGitHub上で自動的にテストが実行されるようになります。万一テストが失敗した場合、GitHubのプルリク画面に赤いバッジが表示され、問題解決までマージできないようにすることもできます。生成AIが書いたコードとはいえ、人間の目+機械的なテストの両面で品質をチェックする体制を整えるのは重要です。

  • Dependabotやコード分析ツールの導入:
    依存ライブラリのアップデート提案にはGitHubのDependabotが便利です。リポジトリ設定で有効化しておけば、npmパッケージに更新があるたびに自動でプルリクが作成されます。これもDevinを使えば、アップデート内容への対応(例えばBreaking Changeがあった場合の修正)も自動化できるでしょう。セキュリティスキャンやLintチェックも、Actions上でCodeQLやESLint用のアクションを設定すれば自動実行できます。最初から完璧に整える必要はありませんが、徐々にCIを強化して「人手による見落とし」を減らす工夫をしていきます。

  • 機能追加・改善の継続:
    運用中に新たな機能要求や改善点が出てきた場合も、引き続きDevinが強力な味方になります。例えばプロダクトの利用者からフィードバックを受けたら、それをもとに新機能の仕様をまとめ、Devinに実装を依頼しましょう。小さな改良であれば、GitHubのIssueに要件を書き、Devinに「Issue #10 を解決してください」と伝えるだけでも対応してくれるかもしれません。実際、Devinをチームの一員として扱い、タスク管理ツール上のチケットを割り当てて開発させるケースも考えられます。Slack経由の指示でもIssueベースの指示でも、最終的にコードをコミット・プッシュしてくれるので、通常の開発フローと変わりません。違いがあるとすれば、タスク完了までのサイクルが驚くほど短くなることでしょう。Devin導入前は数日かかっていた修正が数十分で終わる、といったことも十分起こり得 (完全自律型AIエンジニア「Devin」が切り開くAI駆動開発の可能性 #生成AI - Qiita)2】。

  • 人間とAIの協調:
    AIエージェントがこれだけ活躍するようになると、「人間のエンジニアはもう不要なのか?」という声もあります。しかし実際には、人間の洞察や創造力は依然として重要です。Devinはあくまで与えられた指示に忠実に従う存在ですので、何を作るか、どのようなユーザ体験にするか、といった本質的な部分はビジネスサイドの企画力にかかっています。また、AIが出力したアイデアではなくオリジナリティのある機能や、まだ学習データにない新規性の高い実装などは、人間がリードしなければなりません。したがって**「AIに任せる部分」と「自分で考える部分」を明確に分けて、生産性と独創性のバランスを取る**ことが大切です。その上で、任せられる部分はどんどんDevinに任せてしまうのが賢明でしょう。著者の体感としても、Devinを利用することで開発生産性が飛躍的に向上してい (完全自律型AIエンジニア「Devin」が切り開くAI駆動開発の可能性 #生成AI - Qiita)2】。

最後に、DevinのようなAIエージェントを最大限活用していくことは、エンジニアリングの理想形にも近づいていくと言えます。それは「ビジネスサイドが実現したいことを、可能な限りコードを書かずに迅速に実現する」 (完全自律型AIエンジニア「Devin」が切り開くAI駆動開発の可能性 #生成AI - Qiita)2】です。コードを書くこと自体は目的ではなく手段である――この考えに立てば、手段は人間が書いたものであれAIが書いたものであれ、達成すべき価値さえ実現できていれば問題ありません。むしろAIによって開発が民主化されることで、これまでエンジニア不足で埋もれていたビジネスアイデアがどんどん形になる世界が訪れようとしてい (ソフトウェアの民主化。誰でもアプリ開発が可能となる。Devinを見逃すな!!|ちょむのすけ)6】。

本記事で提案したAI駆動開発のフローは、2025年2月時点でのベストプラクティスの一例 (Webアプリ開発の変遷:2000年~2023年までの手動開発、2024年以降のAI駆動開発の普及(2025年2月) #ポエム - Qiita)5】。まとめると:

となります。これからAI駆動開発を始める方は、ぜひ本記事の手順を参考に、まずは小さなプロジェクトからDevinとの開発を体験してみてください。最初は戸惑うかもしれませんが、AIエージェントとの共同作業に慣れれば、その効率の高さに驚くはずです。「コードはAIに書かせて、あなたはビジネスロジックを考えることに集中する」——そんな新時代の開発スタイルをぜひ体感してみてください。きっとプロダクト開発のスピードと質が大きく向上することでしょ (完全自律型AIエンジニア「Devin」が切り開くAI駆動開発の可能性 #生成AI - Qiita)2】

2

Discussion

ログインするとコメントできます