1
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との協業による効率的な開発 - Overview Firstアプローチの実践

Posted at

はじめに

AIアシスタントとの協業が一般的になってきた今日、より効率的な開発プロセスを確立することが重要になっています。本記事では、Overview Firstアプローチを中心に、AIとの効果的な協業方法について、実践から得られた知見を共有します。

本記事で得られること

  • AIアシスタントと協業する際の具体的な手順
  • 効率的な開発を実現するためのプロジェクト構造化の方法
  • 知識を継続的に蓄積・活用するためのドキュメント管理手法
  • トラブルを未然に防ぐためのテスト戦略

Overview Firstアプローチとは

Overview Firstとは、「実装を始める前に必ず概要の確認から始める」というアプローチです。

このアプローチには以下のような利点があります:

  1. 実装前に不明点や欠落を発見できる
  2. 自身の要件の曖昧さに気づける
  3. AIとの認識齟齬を早期に解消できる
  4. 全体の見通しを立ててから実装に入れる

プロジェクト構造の整理

1. 明確なディレクトリ構造

プロジェクトの開始時に、以下のような点に注意してディレクトリ構造を確立します:

project/
├── src/           # ソースコード
│   ├── components/  # 再利用可能なコンポーネント
│   ├── modules/    # 機能モジュール
│   └── utils/      # ユーティリティ関数
├── tests/         # テストコード
├── docs/          # ドキュメント
│   └── adr/       # アーキテクチャ決定記録
└── config/        # 設定ファイル

2. モジュール分割のポイント

  • 機能ごとに適切な単位でファイルを分割
  • 1ファイルは400行程度に抑える
  • 依存関係を明確にし、循環参照を防ぐ
  • インターフェースを明確に定義

AIとの効果的な協業プロセス

1. 設計フェーズ

Overview Firstアプローチに基づき、以下の手順で進めます:

2. 実装フェーズ

AIの得意分野を活かしつつ、以下の点に注意して進めます:

  • 単体機能の実装はAIに任せる
  • 複雑な統合部分は人間が主導
  • コードレビューはAIに依頼
  • 継続的な改善サイクルを回す

知識の継続的な記録

1. ADR(Architecture Decision Record)の活用

重要な設計決定を以下の形式で記録します:

# ADR 1: Overview Firstアプローチの採用

## 状況
- AIとの協業において、実装前の認識合わせが不足
- 要件の曖昧さによる手戻りが発生

## 決定
- 実装前に必ずAIに概要説明を求める
- 概要の確認後にコード生成を行う

## 結果
- 実装前の課題発見が可能に
- AIとの協業がスムーズに

2. ドキュメント管理のコツ

  • プロジェクトの文脈を常に文書化
  • 長いチャットは適宜マークダウンに保存
  • APIドキュメントなど仕様書を整備
  • テスト仕様も文書として管理

トラブルを防ぐためのテスト戦略

1. テスト設計のポイント

  1. テスト駆動開発を基本とする
  2. AIを活用してテストケースを生成
  3. カバレッジ目標を設定
  4. エラーケースの網羅的なテスト

2. 安全性の確保

  1. GETなど安全な操作から着手
  2. データ変更操作は慎重にテスト
  3. 本番データへの影響を防止
  4. テストの分離と独立性を確保

AIの限界を理解する

AIの得意分野

  • 単体機能の実装
  • テストコードの生成
  • コードレビュー
  • ドキュメント作成支援

人間が主導すべき領域

  • アーキテクチャの決定
  • 複雑な状態管理
  • セキュリティ要件の判断
  • ビジネスロジックの実装

効率的な開発の実現

1. 開発速度の向上

  • AIによる定型作業の自動化
  • テンプレートとボイラープレートの活用
  • 再利用可能なコンポーネントの蓄積
  • レビュープロセスの効率化

2. 品質の確保

  • 一貫した命名規則の適用
  • コードスタイルの統一
  • 適切なエラー処理
  • パフォーマンスの考慮

3. コミュニケーション

  • 設計意図の明確な文書化
  • チーム内での知識共有
  • レビューコメントの活用
  • 問題点の早期発見

まとめ

  1. 構造化された設計: 明確なプロジェクト構造と設計方針を確立
  2. AIの適切な活用: AIの得意分野を理解し、効果的に活用
  3. 継続的な文書化: ADRとドキュメントによる知識の蓄積
  4. 安全なテスト: 段階的なテストと安全性の確保
  5. 役割の明確化: AIと人間の適切な役割分担
  6. 効率的な開発: 自動化と再利用による生産性向上
  7. 品質の重視: 一貫性のある高品質なコードの維持
  8. 知識の共有: チーム全体での設計知識の活用

参考資料

1
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
1
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?