
実際にコードを書く作業の多くは、個人で進められます。開発者は既存のコードを読み、制約を把握し、ロジックを書いてテストします。
AIコーディングエージェントを使うと、こうした段階は一つひとつ会話になります。エージェントにコードベースとその制約を調べてもらう。最初の仕様が大まかなら、コードから分かったことをもとに仕様を詳しくしてもらう。何度かやり取りした後、エージェントが仕様を実装する。コードの生成に合わせて、自分かエージェントがテストを実行します。
開発者の会話は、まだ一人きりです。
仕事の多くが会話になったのなら、必要な専門知識を持つ人もその会話に参加できるはずです。それがcollaborative coding(共同でのコーディング)です。人とAIエージェントが同じスレッドで一緒に要件を定め、計画し、実装します。
1つのタスク、3人の専門家
次の開発タスクを考えてみましょう。営業チームが製品の利用指標を必要としています。指標は製品データベースにあります。目的は、そのデータベースから指標を読み取り、Salesforceのカスタムオブジェクトに書き込むcronジョブを作ることです。必要な知識は3人に分かれています。
- Salesforce管理者: 適切な項目レベルセキュリティを設定して新しいフィールドを作ります。この変更に必要な専門知識と権限を持つ人です。
- プロダクトエンジニア: テーブルの構造と、指標を読み取る適切な方法を知っています。
- インフラ担当エンジニア: データベースへの安全なアクセスとSalesforceの認証情報を用意し、cronジョブをデプロイします。
まず、会議を中心に進める場合です。
- 私がSalesforce管理者と会い、Salesforce側の要件を聞き取ります。
- 次にエンジニアと会い、データベースの読み書きに関する要件を伝えます。
- 実装が進むたびに、おそらくSlackで互いに状況を伝えます。
- エンジニアから質問が出たら、3人で集まって話します。
- 完了するまでこれを繰り返します。
一方、Slack Code channelとCodeRabbit Agent for Slackを使ったcollaborative codingなら、次のようになります。
- 私がCodeRabbit Agent for Slackに開発タスクの要件を伝え、Slack Code channelを開いてもらいます。
- Salesforce管理者を招待します。管理者はチャンネル内で要件を読み、一緒に仕様を詰め、CodeRabbitエージェントに必要なフィールドの作成を依頼できます。
- プロダクトエンジニアも招待します。それまでの仕様策定と作業の経緯を確認したうえで、製品データベース側の要件を一緒に検討できます。
- Salesforce APIの制限やバッチ書き込みについて疑問があれば、同じチャンネルでSalesforce管理者に直接確認できます。
- プロダクトエンジニアが、データベースから読み取りSalesforceに書き込む別のCodeRabbitコーディングタスクを開始します。
- デプロイの準備ができたら、インフラ担当エンジニアを迎えます。チャンネルの履歴を読むことも、CodeRabbitに要約してもらうこともできます。
誰もSlackから離れる必要はありません。必要なら、作業が置かれたGitHubリポジトリのブランチをクローンして、個別に取り組むこともできます。何より、人間の専門家とCodeRabbitのAIエージェントが協力して開発を進められます。
以下のデモでは、このワークフローの一例として、プロダクトマネージャー、Salesforce管理者、プロダクトエンジニアが、要件の整理からプルリクエストの作成、人による承認までを進める様子を紹介します。
collaborative codingは、思うほど特別なことではない
私たちがすでに行っていることを考えてみてください。
- 開発を始める前に会議で認識を合わせ、メモを取り、共通理解を作ろうとしています。
- しかし、企業のシステム全体を一人で深く理解している人はいません。Salesforce管理者はデータベースのスキーマを知らず、プロダクトエンジニアは項目レベルセキュリティの制約を知りません。それぞれが一部だけを理解したまま会議を終え、その理解をエージェントへの指示に変える過程で、さらに情報が抜け落ちます。
- 結局は全員の確認が必要です。最後には各関係者が成果物を承認しなければなりません。
collaborative codingでは、実装を進める会話の中で認識合わせも行うため、エージェントは関係者からの情報を直接利用できます。会議に出た一人が間接的にまとめた内容ではなく、それぞれの関係者からリアルタイムに情報を受け取れるのです。
得られるものと、変わること
メリット:
- 最初から明確な要件。 エージェントには、一人が要約した情報ではなく、各分野の担当者から具体的で多面的な情報が届きます。
- 進捗の共有。 状況確認の会議を開かなくても、全員が進み具合を把握できます。
- 必要に応じてローカルでも作業。 いつでもブランチを手元に取得し、一人で作業してからスレッドに戻れます。
- 途中からの参加。 マーケティング、営業、サポート、ドキュメントの担当者を適切な段階で加えられます。
- 残る文脈。 経緯が個人の記憶だけでなく、スレッドとチャンネルに残ります。
- 引き継ぎやすさ。 誰かが不在でも、別の人が引き継いで完了できます。
課題:
- 一番の課題は習慣です。このやり方には慣れておらず、新しく感じるでしょう。
- ローカル開発からクラウド上のコーディングエージェントへ移ることも、大きな変化です。
- Slack Code channelはまだ新しい機能なので、製品の進化に伴ってワークフローも変わることをチームは想定しておく必要があります。
CodeRabbit Agent for SlackとSlack Code channelで実践するcollaborative coding
Slackは最近、開発タスク向けのSlack Code channelを公開しました。計画を保存するアーティファクト、設計をまとめるキャンバス、コードの差分ビューなどの機能が備わっています。
数か月前に登場したCodeRabbit Agent for SlackもSlack Code channelに対応しました。この組み合わせによって、チームは次の作業を進められます。
- 課題や機能要望を調べる。 CodeRabbit Agent for SlackをJiraやLinearなどのチケット管理システムに接続し、課題や要望を取得・調査します。初期分析は、今対応すべきか後で対応すべきかを判断する材料になります。
- 仕様を作り込む。 適切な関係者と要件を検討し、必要なときにCodeRabbit Agent for Slackを会話に加えてコードベースを調査し、仕様を深めます。
- 適切な専門家を見つける。 CodeRabbitはコードレビューを通じて、コードの担当領域とその作者を把握しています。チームは関連する専門家を特定し、チャンネルに招待できます。
- コードを実装する。 現在ベータ版のCodeRabbitのクラウド型コーディングエージェントは、カスタマイズ可能な環境で変更を実装し、コミットしてプルリクエストを作成します。
- コードをレビューする。 プルリクエストが開かれると、CodeRabbitが自動的にレビューしてコメントを投稿します。実装とは別のレビュー工程として、チームが問題を発見する機会を増やします。
- マージに向けて仕上げる。 CodeRabbit Agent for Slackはレビューコメントを評価し、変更を準備または適用できます。指名された人間の承認者が結果を確認・承認し、チームがブランチ保護を含むリポジトリの通常のマージ手順に従ってマージします。
collaborative codingを始めるのは簡単です。次の3ステップで始められます。すでにCodeRabbitをご利用のお客様は、最初の2ステップを省略できます。
あとは次のように依頼するだけです:@Coderabbit <あなたのアイデア>のためのSlack Code channelを作成して!



