AIが「読める」状態をつくる——プロジェクトの情報をリポジトリに集める理由【AIネイティブ開発シリーズ 第1回】

AIネイティブ開発シリーズ 第1回|準備

AIは「読めるもの」しか理解できません。
だから私たちは、プロジェクトの情報をほぼすべてリポジトリに集めることから始めました。シリーズ第1回は、AIが力を発揮するための「準備」のお話です。

この記事でわかること
  1. AIが期待どおりに動かない、いちばんの原因
  2. リポジトリに「置くもの」と「置かないもの」
  3. 設計リポジトリと、3つの言語で読める設計書
  4. 判断の理由まで残すドキュメント
  5. AIへのルールをファイルで共有する方法と、始め方のチェックリスト

AIが期待どおりに動かない、いちばんの原因

AIに実装を頼むと、もっともらしいコードは返ってきます。ところが、よく見るとプロジェクトの決まりに合っていない、既存の仕組みと二重になっている、前に却下した方法が使われている——。こうした「惜しい」結果に悩まされた経験のある方は多いのではないでしょうか。

私たちも最初は、AIの性能やプロンプトの書き方を疑いました。しかし原因の多くは、もっと手前にありました。AIに渡している情報が足りなかったのです。

人のチームであれば、設計の背景や過去の経緯は、会議の記憶やチャットのやり取り、ベテランの頭の中に残っていて、必要なときに聞けば分かります。けれどもAIは、その場で読めるものしか知りません。情報があちこちに散らばっている限り、AIは足りない部分を推測で埋めるしかなく、それが手戻りの原因になっていました。

AIの出来は、AIに渡せる情報の質と量で決まる。だから最初にやるべきは、ツール選びではなく情報の整理でした。

原則:プロジェクトの情報は、ほぼすべてリポジトリへ

そこで私たちが決めたルールはシンプルです。アカウント情報やアクセスキーといった秘密以外は、プロジェクトの情報をほぼすべてリポジトリに置く。

リポジトリ(ソースコードを管理する場所)を選んだ理由は3つあります。

AIが作業する場所と同じ AIはリポジトリの中でコードを読み書きします。情報も同じ場所にあれば、余計な連携なしに読んでもらえます。
変更の履歴が残り、レビューできる ドキュメントの変更もコードと同じように履歴が残り、レビューを通して取り込めます。「いつ、なぜ変わったか」を後から追えます。
コードと一緒に更新できる 仕様を変えたら、同じ変更の中でドキュメントも直す。置き場所が同じなので、古い情報が残りにくくなります。

リポジトリに置くもの

01

ソースコード

アプリやバッチに加え、インフラの構成もコードとして管理します。

02

設計書

アーキテクチャ、現状の設計、既知の課題。全体像をAIに渡すための土台です。

03

手順書

ビルドやデプロイ、運用の手順。実際に動かして確かめた内容を残します。

04

判断の理由

なぜこの構成にしたのか、どの選択肢を捨てたのか。AIが同じ議論を繰り返さないために欠かせません。

05

AIへのルール

コーディングの決まりや作業の進め方。誰がAIを使っても同じ前提で動くようにします。

06

テスト

単体テストから画面操作のテストまで。「正しく動く」の基準そのものもリポジトリに置きます。

置かないもの

アカウント情報、アクセスキー、パスワードなどの秘密は、リポジトリには置きません。専用の保管庫で管理し、万一混入しても登録の時点で自動的に止まる仕組みを入れています。この「安全の仕組み」については、次回くわしくご紹介します。

製品ごとに「設計リポジトリ」をつくる

ソースコードは製品ごとに複数のリポジトリに分かれていることが多く、1つのリポジトリだけを見ても全体像はつかめません。そこで私たちは、製品ごとに設計専用のリポジトリを用意しています。

  • 1. AIが現状の設計書を起こすソースコードと、実際に動いている環境の構成(参照だけを許可)をAIが読み取り、現状の設計書の下書きを作ります。
  • 2. 人がレビューする書式や禁止事項はルールとして決めておき、内容の正しさは人が確認します。
  • 3. 開発のたびにAIが参照する新しい機能を作るときも不具合を直すときも、AIはまずここを読んで全体像をつかんでから作業します。

この作業の副産物として、これまで担当者の頭の中にしかなかった既知の課題が一覧になりました。製品によっては100件を超える課題が整理され、優先順位をつけて計画的に手を打てるようになっています。

設計書は「HTML」で、3つの言語に切り替えられるように

設計書は、AIのためだけのものではありません。最終的にそれを読んで判断し、実装を確かめるのは人です。そこで私たちは、設計書をHTMLで書いています。

人が見やすい 図や表、色分けを使って、ブラウザで開くだけで読める形にしています。長い文章だけの資料より、全体像がずっとつかみやすくなります。
AIも読み書きできる HTMLは文字で書かれたファイルなので、AIがそのまま読めて、更新も任せられます。リポジトリで変更の履歴も追えます。
日本語・英語・インドネシア語を切り替えられる 1つの設計書の中で、ボタンひとつで言語を切り替えられるようにしています。

3つの言語に対応しているのは、私たちの開発チームにインドネシアのメンバーがいるからです。設計は日本のメンバーが行い、実装はインドネシアのメンバーがAIと一緒に進める。そのとき、同じ設計書をそれぞれが母語で読めることが、読み違いや手戻りを減らす大きな助けになっています。翻訳もAIが担うので、言語ごとに別の資料を管理する必要はありません。

イメージはこんな形です(下のボタンで切り替えられます)。

設計書の例

注文処理の流れ

注文を受け付けると、在庫を確認してから決済を行います。在庫が不足している場合は、決済を行わずにお客様へ通知します。

Order Processing Flow

When an order is received, the system checks inventory before processing payment. If stock is insufficient, the customer is notified without processing payment.

Alur Pemrosesan Pesanan

Saat pesanan diterima, sistem memeriksa stok sebelum memproses pembayaran. Jika stok tidak mencukupi, pelanggan akan diberi tahu tanpa memproses pembayaran.

※ 内容は説明用のサンプルです。

設計を日本で行い、実装をAIとオフショアで進める体制については、次回あらためてご紹介します。

ドキュメントには「判断の理由」まで残す

手順書は「どうやるか」を書くものですが、私たちはそれに加えて「なぜそうしたのか」を残すようにしています。たとえば社内のあるプロダクトでは、リポジトリを分割せずに1つのまま運用する判断をしました。その際、分割した場合に増える手間と、分割しなくても失わないものを比べた理由を、そのままドキュメントに書いています。

理由が残っていれば、AIも人も、同じ議論を一からやり直さずに済みます。前提が変わったときに「どこを見直せばよいか」もすぐに分かります。

もうひとつ、思わぬ効果もありました。そのプロダクトでは、構成をドキュメントにまとめる過程で、開発環境の確認だけでは表に出ていなかった「本番の起動時に必ず失敗する不具合」が見つかり、事前に直すことができました。書くことそのものが、点検にもなるのです。

こうしたドキュメントは、AIへの前提情報であると同時に、新しく加わったメンバーのオンボーディング資料にもなります。人のために書いたものがAIにも役立ち、AIのために書いたものが人にも役立つ。この「兼用」が、書く手間を正当化してくれます。

AIへのルールも「ファイル」で共有する

AIへの指示を毎回チャットで伝えていると、人によって伝える内容がばらつき、結果の品質もばらつきます。そこで、コーディングの決まりや作業の進め方は、リポジトリの中のルールファイルとして書き、チーム全員で共有しています。

ポイントは、ルールを1つの巨大なファイルにまとめず、階層で管理することです。リポジトリ全体の方針は最上位に、画面や部品ごとの決まりはそれぞれのフォルダに置く。こうすると、AIは作業している場所に必要なルールだけを読めばよくなり、ルール同士の衝突も減ります。

さらに、こうしたルールの「ひな形」を全社共通のテンプレートとして用意し、新しいプロジェクトでもすぐに同じ前提でAIを使い始められるようにしています。

「何を作るか」を先に決める

情報を集めることと並んで大切なのが、実装の前に仕様を言葉にすることです。シリーズ第0回でご紹介した「12〜15倍」の案件では、期間の半分以上を設計に充て、型や役割分担といった骨組みを人が決めてからAIに実装を任せました。

社内では、インフラ担当のメンバーが「仕様を先に書き、AIがそれに沿って実装を進める」タイプのツールを試し、自分ではコードを書かずに半日で業務用のWebツールを作り上げた例もあります。仕様が明確であれば、AIは驚くほど速く、正確に動きます。

やってみて分かったこと

01

完璧を目指さず、まず置く

最初から整ったドキュメントを作ろうとすると止まります。走り書きでもまずリポジトリに置き、AIと一緒に育てるほうが続きます。

02

AIに書かせて、人が直す

現状の設計書の下書きはAIが得意な作業です。人は「正しいか」の確認に集中すれば、書く負担は大きく減ります。

03

「なぜ」を書く習慣が財産になる

判断の理由は、時間がたつほど誰にも分からなくなります。書いた瞬間は手間でも、後から何度も助けられます。

チェックリスト:まずはここから

  1. リポジトリの直下に、プロジェクトの概要を書く
    何のためのシステムか、主な構成、よく使うコマンド。AIが最初に読む「入口」になります。
  2. 直近の大きな判断を1つ、理由ごと書き残す
    「なぜこの技術を選んだか」「なぜこの方法をやめたか」。1つからで十分です。
  3. AIに守ってほしい決まりを、ルールファイルにまとめる
    命名規則、使ってよいライブラリ、テストの書き方など。チャットで毎回伝えていたことを書き出します。
  4. 秘密情報の置き場所を決める
    リポジトリには置かない、と決めて専用の保管場所を用意します。情報を集める前に、ここだけは先に決めておきましょう。

関連する記事

シリーズの全体像は第0回でご紹介しています。AIを活かすための情報整理やドキュメント整備のご相談もお気軽にどうぞ。

シリーズ第0回を読む

次回は「第2回 仕組み:ルール・品質・セキュリティを標準化する」。AIへの指示とテストの共通化、情報漏えいを防ぐ自動の仕組み、そしてオフショア開発との相性についてご紹介します。


Recruit

ディーメイクでは各ポジションで一緒に働く仲間を募集中! エンジニア、デザイナー、ディレクターなど、多彩な職種があります。
一緒に成長していきましょう!

  • URLをコピーしました!

コメント

コメントする