決めごとにIDと検証手段を付与し、意図が消えないようにする
試行錯誤の末にクラウドエースが落ち着いたのは、社内で「Software DNA」と呼ぶ仕組みだった。ソフトウェアをその形に成長させるために必要なDNA、という意味からこの名称がつけられている。「Software DNA」では、実装より抽象度の高い決めごとに1件ずつIDを振り、検証手段を宣言して、コード側にマーカーを置く。
スライドで示された例はこうだ。マークダウンの見出しに「L3-BILL-REQ-001」というIDを書き、直下に種別と成熟度、検証手段を並べる。本文は「請求額は明細の合計に税率を適用して算出しなければならない」という自然文で書き、実装側では該当する関数の直前に@dnaマーカーで同じIDを記す。
テストにも@dna-testマーカーで同じIDを置く。両者が対になっていれば対応ありと判定され、マーカーが削除されたりIDを誤記したりすれば違反になる。少なくともgrepのレベルで検証でき、判定に生成AIは使わない。マーカーが消えればCI/CDでエラーにできる。
これが効くのは、AIがコードとテストをまとめて削除した場面だ。DNAがなければテストは緑のまま、決めごとだけが静かに消えてマージされる。DNAがあれば検査が違反として検出し、消えた決めごととその理由を表示して止める。
運用の規模感も示された。先の基幹システムでは決めごとが約1000件あり、新機能を作るときに確認するのはそのうち約20件、軽微な修正なら1件から5件。この仕組みの中で確認するのは「全部が仕様どおりか」ではなく、このIDの要件は壊れていないかを個別に見ている。
仕様とコードを同期させるために必要な4つの要件
仕様とコードを同期させるには、同じ場所にあること、同じ単位で変更すること、変更のたびに突き合わせること、組織として強制することの4つが必要だ。GitLabが自社プラットフォームを運動系や神経系になぞらえていたことを引き合いに、高野氏は「ソフトウェアがなぜそうあるべきかという情報が抜けています」と述べた。そこにDNAを足す、というのが同社の主張だ。
実装は2層だ。CIパイプラインは影響する決めごとを割り出して検証を実行し、DNAと実装の対応を確認する。マージを止められるのはこちらだけだ。Duo Agent Platform上のエージェントは意味の判定を担うが、指摘のみで止める権限は持たせていない。
1本目は、書かれていない解釈を検出してマージリクエストに提示する。関係する決めごとだけを束ね、差分と突き合わせ、解釈レポートとしてコメントする。「金額が未入力の商談を0円として集計しているが該当する決めごとがない」といった指摘だ。「変更そのものをレビューするというよりも、コーディングエージェントが解釈した内容をレビューしようという考え方です」。処置が空のレポートが残る限り、マージはできない。
2本目は、DNA自体の品質を検査する。ソースコードからDNAを逆生成すると、要件を書くべき場所に実装めいた記述が混入し、要件として機能しなくなる。IDの重複や必須項目の欠落は機械的に検査し、「なぜ」が業務の言葉で書かれているかはエージェントが判定する。
設定はトップレベルグループに集約し、AIカタログのフロー2本と検査ジョブを配下に配布する。適用はプロジェクト側で選べる。プロジェクトごとのガードレールであればPremiumで足りるが、グループ配下にパイプラインを強制するにはUltimateが必要になる。
最後に挙げられたのがGitLab Orbitだ。コードベースに加え、マージリクエストやイシュー、コメントといった開発ライフサイクル全体がグラフ化されている。ここに設計判断や設計理由が残っている可能性が高い、というのが高野氏の見立てだ。コミットメッセージやイシューの議論を掘り起こし、そこからDNAの候補を作る。
講演のタイトルは「速く作るほど、壊れていく」だった。高野氏はこれを裏返して締めくくった。決めごとを残し、コードと結び、変更のたびに確かめる。「意図をしっかり管理していくことで、ソフトウェアそのものをどんどん賢くできるはずです。そうなったときには、AIエージェントによる自動的なソフトウェア開発もかなり近くなると思います」。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- DeveloperZine Press連載記事一覧
-
- AIが解釈を埋めることで開発が崩れていく──クラウドエースが採った「意図が消えない」ための...
- 生成AI活用により本番インシデントは242%増──ソニーグループが考えるAI時代の「統制と...
- dotsの特徴は「委任可能な射程の長さ」──OpenAI CTOが語るChatGPTの進化
- この記事の著者
-
中野 佑輔(編集部)(ナカノ ユウスケ)
金融系SIerでの勤務を経て2025年よりCodeZine編集部所属。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
