1. はじめに
先日のAWS Summitのセッションにて、AI駆動開発推進のために重要な考え方として「Everything as Code」というものがあると知った(下記セッションレポート参照)。
このセッションを聞いた際、「部分的ではあるけれど、うちのプロジェクトで導入したtblsによるテーブル定義書生成は、Everything as CodeによるAI駆動開発推進の第一歩とも言えそうだな」と感じた。
2. tblsの概要と導入背景
tblsは、DBスキーマ定義をもとにテーブル定義書やER図を自動生成できるツールだ。
たとえば、DBのスキーマ情報からMarkdownやHTML、Mermaid形式のテーブル定義書やER図を自動で作成できるほか、設定ファイル(.tbls.yml)を使って日本語化や物理名・論理名の併記、テーブルのグルーピングも柔軟に行える。
また、DBスキーマと設定ファイルの整合性をlint機能でチェックできるなど、ドキュメントの品質維持にも役立つ。
さらに、生成物はGit管理可能な形式で出力できるので、チーム開発や顧客説明にもとても便利だ。
(詳しい機能や使い方は公式リポジトリを参照)
自分のプロジェクトはアジャイル的な開発スタイルで、追加のテーブルやカラムが頻繁に発生し、テーブル数も多く構成も複雑になりがちだった。
そのため、チーム内の認識合わせや顧客への説明のために、常に最新のテーブル定義書やER図が必要だった。
また、成果物として顧客に提供可能な日本語形式のドキュメントが求められていた。
私はtblsを導入することで、これらの課題をクリアしつつ、ドキュメントの自動生成や管理の効率化を実現しようとした。
3. tbls導入による効果
tblsを導入したことで感じた効果は、大きく4つある。
-
ドキュメントと実装の同期の実現
多少のメンテナンスは必要だが、少ない手間でドキュメントと実装の内容をしっかり揃えておけるようになった。これによって、ドキュメントが古くなってしまうリスクもかなり減ったと感じている。 -
内部・顧客との認識合わせのしやすさ
生成されたテーブル定義書やER図は見やすく、チーム内の認識合わせや顧客への説明もスムーズにできるようになった。 -
変更管理の効率アップ
ドキュメントをGitで管理できるので、どのタスクでどんなアップデートがあったのかも簡単に追えるようになった。 -
生成AIエージェントの回答精度/速度向上
生成したテーブル定義書やER図をAIエージェントに渡すことで、SQLの修正やAPI追加のときのコーディング支援がとてもスムーズになった。AIの回答速度も向上し、内容もより的確になったと感じている。
1〜3については、tbls導入当初に期待していた通りの成果だった。
しかし、4については導入時点では予測していなかった副次的な効果であり、それでいて開発効率の向上という点で大いに役立っている。個人的には、tbls導入によるメリットの中でも特に実感度が高いポイントだと感じている。
4. Everything as Codeを目指すうえで感じたこと・考えたこと
Everything as Codeを実現するためには、tblsのような実装をもとにしたドキュメント定義ツールがとても役立つと感じている。特にアジャイル開発のように日々変化が多いプロジェクトでは、実装とドキュメントのズレを防ぐためにも、こうしたツールの存在は心強い。
また、実装に入る前の設計や仕様のドキュメントについても、既存の要件定義書や議事メモなどをAIエージェントに渡して、MarkdownやMermaid形式で整理してもらうのが良いのではないかと思う。図もMermaidやSVGで作っておけば、AIも理解しやすいし、後から見返すときにも便利だ。
さらに、日々の議論やタスク管理も、なるべく管理しやすい仕組みを考えたい。たとえば自分のチームではAsanaを使っているが、AsanaのMCPを使ってAIエージェントにタスクの情報を確認してもらうことができたら、もっと便利になりそうだなと感じている。(この辺はこれから調査&検証したい)
それから、AWS Summitのセッションでもあったが、IaC(Infrastructure as Code)もEverything as Codeの考え方には欠かせない。
誰が作業しても同じ環境をすぐに作れるのは本当にありがたいし、仕様をもとにAIとやりとりしながらアーキテクチャ図をMermaidで描いて、それをもとにIaCファイルを作る、なんてことができれば、開発効率もぐっと上がるはず。自分のようなフロントエンドが得意じゃないエンジニアでも、IaCの世界に気軽にチャレンジできる気がしている。
5. 最後に
「Everything as Code」や「AI駆動開発」という考え方は、プロジェクトの知識や設計を「AIでも・よわよわエンジニアでも・サルでも」だれもが理解できる形で残し、属人化を防ぐための大きなヒントになると感じている。
tbls単体では「生成AI」というキーワードはすぐには思い浮かばないかもしれない。tblsを導入したことで、ドキュメントの鮮度や説明のしやすさ、変更管理のしやすさといった当初の期待はもちろん、AIエージェントとの連携による開発効率の向上という思わぬメリットも得られた。
私にとっては、単なるドキュメント自動生成の枠を超えて、AI活用やチーム開発の効率化にもつながる存在だ。
「Everything as Code」の実現にはまだまだ程遠いが、tblsの導入経験を通じて「AI駆動開発の推進」がより身近になったと感じている。
今後も「誰にでもわかる」「管理しやすい」「開発に必要なすべてがまとまった」仕組みづくりを意識し、技術やツールの選定・ディレクトリ構成などの工夫を重ねながら、より良い開発環境を目指していきたい。