0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AIエージェント時代のチーム開発③】AIに任せたらコンフリクトだらけになった話

0
Last updated at Posted at 2026-05-12

はじめに

この記事は、AIエージェントを使ったチーム開発について考える全8回の連載の第3回です。

AIを使った開発では、コードを書く速度がかなり上がります。

ただ、その速度がチーム開発では別の問題を生むことがあります。
その一つが、コンフリクトです。

今回は、複数人でAIを使って開発していたときに、マージ時のコンフリクトがかなり大変になった、という話をもとに考えます。

起きたこと

あるプロジェクトで、フロントエンドを複数人で開発していました。
そのうち、同じフロントエンド領域を2人で並行して触っていました。

2人ともAIを使っていました。

それぞれの作業自体は進みました。
AIは画面修正も、コンポーネント修正も、状態管理の変更も、かなり速く進めてくれます。

しかし、マージの段階で問題が出ました。

コンフリクトが多い。
しかも、単純な行の衝突ではなく、AIが広い範囲を修正しているため、どちらの変更を残すべきか判断しにくい。

結果として、マージ作業がかなり大変になりました。

なぜAIを使うとコンフリクトが増えやすいのか

AIは、人間よりも広い範囲を一気に直すことがあります。

人間が手で修正する場合、目的の箇所だけを最小限直すことが多いです。
もちろん人によりますが、作業コストがあるため、無関係な箇所まで大きく触ることは比較的少ないです。

一方、AIは違います。

「この画面を直して」と依頼すると、AIは関連するコンポーネント、hooks、API呼び出し、型定義、状態管理、スタイルまでまとめて修正することがあります。

それ自体は便利です。
しかし、複数人が同じようにAIを使うと、変更範囲が重なりやすくなります。

たとえば、AさんのAIが共通コンポーネントを少し直す。
BさんのAIも同じ共通コンポーネントを別の目的で直す。
どちらも「良い修正」に見えるが、マージすると衝突する。

こういうことが起きます。

コンフリクトの本質は「同じファイルを触ったこと」だけではない

Gitのコンフリクトだけを見ると、問題は「同じファイルを触ったこと」に見えます。

しかし、実際にはそれだけではありません。

問題は、AIが変更した意図が見えにくいことです。

人間が小さく修正していれば、コンフリクトしても判断しやすい場合があります。

しかし、AIが複数ファイルを一気に直していると、マージ時にこうなります。

  • この変更は仕様上必要なのか
  • これは単なるリファクタなのか
  • これはAIが勝手に直しただけなのか
  • どちらの実装方針を採用すべきなのか
  • 両方の変更を統合しても壊れないのか

この判断が難しくなります。

つまり、AI時代のコンフリクトは、単なる行単位の衝突ではなく、意図の衝突になりやすいのです。

AIは「ついでに直す」

AIを使っていてよく感じるのは、AIが「ついでに直す」ことです。

たとえば、こちらはボタンの動作だけを直したい。
しかしAIは、ついでにコンポーネントの分割や命名変更、スタイル整理までやることがあります。

AIとしては、より良いコードにしようとしているのだと思います。

ただ、チーム開発では、この「ついでに直す」が危険です。

特に、複数人が同じ領域を触っている場合、ついでの修正がコンフリクトを増やします。

本来の目的とは関係ない差分が増えるほど、マージもレビューも難しくなります。

対策1:AIに変更範囲を明示する

まず必要なのは、AIに変更してよい範囲を明示することです。

たとえば、以下のように指示します。

今回の修正では、以下のファイルだけを変更してください。
それ以外のファイルは変更しないでください。

- src/pages/UserListPage.tsx
- src/components/UserSearchForm.tsx

共通コンポーネント、APIクライアント、状態管理、ルーティングは変更禁止です。
既存コードに問題を見つけた場合は、勝手に直さず、別途修正候補として報告してください。

この指示で完全に防げるわけではありません。
しかし、何も言わないよりはかなり効果があります。

特に重要なのは、「問題を見つけても勝手に直さないで」と伝えることです。

AIは親切なので、問題を見つけると直そうとします。
しかし、チーム開発では、それを今の差分に混ぜてよいとは限りません。

対策2:同じ領域を同時に触らない

これは従来の開発でも同じですが、AI時代はより重要です。

同じ画面、同じ状態管理、同じ共通コンポーネント、同じAPIクライアントを、複数人が同時にAIで修正すると、コンフリクトしやすくなります。

AIは一気に広い範囲を触るため、従来より衝突範囲が広がる可能性があります。

そのため、チーム内で作業領域を分ける必要があります。

  • Aさんは画面A
  • Bさんは画面B
  • 共通コンポーネントは別作業にする
  • 状態管理の変更は先に合意する
  • APIクライアントの変更は一人が担当する

このように、AIに任せる前に人間側で境界を引く必要があります。

対策3:リファクタと機能追加を分ける

AIを使うと、機能追加とリファクタが混ざりがちです。

しかし、チーム開発ではできるだけ分けた方がよいです。

  • 先にリファクタだけを行う
  • その後に機能追加を行う
  • あるいは、機能追加を先に行い、リファクタは別PRにする

どちらでもよいですが、とにかく混ぜないことが重要です。

混ぜると、レビュー時に「この差分は仕様変更なのか、整理なのか」が分からなくなります。

対策4:AIに差分レビューをさせる

実装後に、AI自身に差分レビューをさせるのも有効です。

たとえば、こう依頼します。

今回の差分を確認し、以下の観点でレビューしてください。

- 目的外のファイルを変更していないか
- 仕様変更と関係ないリファクタが混ざっていないか
- 既存の責務を変更していないか
- 共通コンポーネントを不要に変更していないか
- 他メンバーの作業と衝突しやすい変更がないか

もちろん、最終判断は人間が行う必要があります。
しかし、AIに差分の棚卸しをさせることで、不要な変更に気づきやすくなります。

まとめ

AIを使うと、開発速度は上がります。
しかし、複数人が同じ領域でAIを使うと、コンフリクトが増えることがあります。

原因は、AIが広い範囲を一気に修正しやすく、ついでのリファクタも混ぜやすいからです。

対策としては、以下が重要です。

  • AIに変更範囲を明示する
  • 同じ領域を複数人で同時に触らない
  • リファクタと機能追加を分ける
  • 実装後に差分レビューを行う

AIが悪いのではありません。
AIに広すぎる作業範囲を渡したまま、複数人が同時に作業することが危険なのです。

次回は、「AIにこのファイル以外触らないで」と指示するのは正しいのか、もう少し掘り下げます。

今後

以降の連載予定になります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?