トレーサビリティはめんどくさい?3年目エンジニアの実体験


こんにちは!SJC共同開発推進室の對島です。
前回のブログでは単体テストの体験談を書きましたが、今回はその流れで、いま私が関わっているプロジェクトでも実際に導入している「トレーサビリティ(追跡可能性)」について書いてみようと思います。
 

先日、上司がブログで「トレーサビリティは品質管理において非常に重要だ」という記事を書かれていました。管理者としての意見はすごく納得できる一方で、実際に現場で指示を受けて手を動かす側の私としては、ぶっちゃけ「言いたいことは分かるけど、めちゃくちゃ作業が増えて大変そう」と最初は思っていました。

そこで今回は、もうすぐ4年目になるエンジニアのリアルな目線から、「現場で直面した泥臭い苦労」と、それを「AIを使ってどう賢く楽するか」について、実際の検証データを交えながら本音で書いていきます!

01. トレーサビリティの手法と「現場のリアルな壁」

まず、そもそも「トレーサビリティ(追跡可能性)」とは何かを軽くおさらいしておきます。簡単に言うと、「お客様の要望(要件定義)から、設計書、ソースコード、最終的なテスト項目に至るまで、すべての繋がりを追跡できる状態にしておくこと」です。
トレーサビリティの詳しい背景や全体像については、ぜひこちらのブログもご覧ください!
 
このトレーサビリティを実現する方法には、大きく分けて2つのやり方があります。

1.専用の管理ツールを使う方法

世の中には「トレーサビリティ専用の管理ツール」という便利そうな仕組みがあるらしいです。これを使えば、IDの自動紐付けや影響範囲の追跡などが一発でできてかなりスマートそうです。
 
ですが、当然ながら高額な費用がかかりますし、チーム全員がそのツールを使いこなせるようになるまでの学習時間も必要になります。プロジェクトの予算やスケジュールの都合上、パッと導入するのはなかなか現実的ではありません。

2.ExcelやWord等で管理する方法

そこで費用をかけない現実的な方法として、普段から使っているExcelやWordを使ってIDを紐付けていく手法があります。私たちのチームでも、今回はこの手動で進める方法を採用しました。
ただし、私たちがやったのは「専用の対比表(マトリクス)を別で作る」のではなく、「WordやExcelのドキュメント内の各項目に、直接【ID】【仕様】【参照先ID】を明示的に書き込んでいく」という、かなり地道で泥臭い手法です。
 
実際には、以下のように要件定義書(Word)と外部設計書(Excel)のそれぞれに、お互いの参照先IDを手作業で埋めていきました。

【実際の運用イメージ】

■文書ID:FY26-0101(要件定義書)
ID 要求事項 参照先
0001 利用者はログインIDとパスワードでログイン認証を必ず行う事 FY26-0201-0001
FY26-0201-0002
FY26-0201-0003
(省略)
FY26-0201-0010
0002 「ログイン」ボタン押下で認証処理を実行 FY26-0201-0011
1003 連続で3回認証エラーとなった場合、アカウントロックを行う FY26-0403-0132(内部設計)

■ 文書ID:FY26-0201(外部設計書:ログイン画面)

ID 仕様 参照先
0001 ログインIDは半角英数の入力ができる FY26-3023-0023
0002 ログインIDに入力可能な記号は「!と@」のみとする FY26-3023-0024
  (中略)  
0011 ログインボタン押下でログインIDとパスワードを認証処理のパラメータとして送信する FY26-3023-0039

※画面の都合で一部省略していますが、実際はすべての項目で参照先を細かく記載しています。

正直、最初は「めちゃくちゃめんどくさいな」と思っていました

上司から「今回は1文節1仕様1IDで、参照先も全部明示的に書くよ!」と言われたとき、めんどくさがり屋な私の頭に浮かんだ本音は一言だけでした。
 
要件定義書の1行に対して、設計書のID(FY26-0201-00010010など)を1つずつ確認して打ち込んでいく作業は、とにかく集中力と根気が要ります。仕様変更のたびに「どこまでID振ったっけ?」「間違えて消したら追跡できなくなる。」と、入力する前から余計な神経を使っていました。
 
「品質のために大事なのは分かるけど、準備だけで時間が溶けていく」というのが、当時の私の本音でした。

02. 手のひらを返した瞬間:「仕様が辿れる」という圧倒的なラクさ

ただ、そんなめんどくさがりな私の考えも、開発が進んで仕様変更やテストの段階に入るとガラッと変わりました。「トレーサビリティ、マジでやっててよかった…!」と、手のひらを返した瞬間が何度もありました。

比較項目 トレーサビリティ「無し」のとき トレーサビリティ「有り」の今回
仕様変更の影響調査 過去のチャットやコードを1〜2時間探し回り、「これで全部かな」と常に不安 ID(例: FY26-0201-0011)を検索して追うだけ。数秒で関連する設計やテスト項目を特定
テスト項目の作成 「抜け漏れないかな?」と勘や経験に頼って確認する 要件IDと参照先IDが繋がっているため、上流から下流まで漏れがないかを一目で追える
引き継ぎや質問対応 「当時の担当者しか分からない」状態になり、説明に時間が奪われる IDを順に辿れば仕様の背景や経緯が誰でも分かるため、説明の手間がほとんどかからない

一番大きかったのは、精神的なストレスが激減したことです。

「未来の自分が楽をするための事前準備だったんだな」と、実際に困った場面を経験して初めて実感しました。上司が「1文節1仕様1IDで細かく紐付けるぞ」と指示していた本当の狙いが、身をもって理解できた瞬間でした。

03. 手動で「参照先チェック」をするのはやっぱりキツい

「仕様を辿れるラクさ」は実感できたのですが、実際に作業を進める中で一番の手間として残った作業があります。
 
それが、「要件定義書に書いた参照先IDが、本当に設計書のIDと正しく一致しているかの確認」です。
 
  • 「要件定義書に『FY26-0201-0011』と書いたけど、設計書側でIDを打ち間違えて『0012』にしてないかな?」
  • 「設計書に新しい仕様を追加したけど、要件定義書側の参照先欄にIDを書き足し忘れてないかな?」
 
どれだけ追跡しやすくなったとはいえ、この「IDが正しく繋がっているかどうかの確認」は、画面にWordとExcelを並べて、手動で1つずつチェックするしかありませんでした。
 
この「間違い探し」みたいな確認作業は、とにかく目が疲れるし集中力も削られます。人間が手作業で入力している以上、気をつけていても「打ち間違い」や「書き忘れ」は出てしまいます。
 
「トレーサビリティのありがたみは分かったけど、このIDチェックをずっと手作業でやり続けるのは正直キツいぞ」というのが、現場で感じた一番の壁でした。

04. 検証:面倒なIDチェックをAIにお任せしてみた

「手動で1つずつIDを突き合わせるのは、さすがにキツい…」

そう思った私は、この地道なIDチェック作業をAIを使って自動化できないか試してみることにしました。

エンジニア的には「仕様書もMarkdownで書いてGit管理し、VS CodeのAIでチェックする」のがスマートに見えますが、現実の開発現場ではまだまだWordやExcel管理が現役です。

だからこそ今回は、「今あるWordやExcelファイルをそのままAIに渡してチェックさせる」という、一番現実的な方法を試してみました。

めんどくさがりな私としては、「要件定義書(Word)と設計書(Excel)の2ファイルをポイッと投げて、プロンプトを送るだけ」が理想です。

ですが、実際にGemini(思考モード)に約4万字のWordファイルとExcelを同時に渡してみたところ、「大規模言語モデルとしてまだ学習中です。(読み込めません)」と断られてしまうこともありました。フォーマットや文字数オーバーなど、直接ファイルを渡すにはいくつか壁があるようです。

そこで諦めず、今度は「要件定義の内容をテキストで直接貼り付け、外部設計書のExcelだけを添付して投げる」という方法で再挑戦してみました。

■実際に投げたプロンプト

今回、AIに送ったプロンプトがこちらです。

■AIが出してくれたチェック結果(テキスト貼り付け版)

このプロンプトを投げてみたところ、数秒でかなり精度の高い対向チェック結果を返してくれました!

【全体の参照整合率:83.3%(全18要件中、15要件がOK/3要件で内容齟齬を検出)】

  • 基本機能(一覧表示など): OK(画面配置や遷移の設計と正しく整合)
  • 26230(日付ソート)& 26231(名称ソート): 【内容齟齬】ID「0054」「0055」が両方のソートで重複割り当てされている
  • 26009(新規登録可)& 26010(新規登録不可): 【内容齟齬】指定ID「0029」が「遷移可」と「遷移不可」の両方で二重参照され、仕様が矛盾している

単にIDの存在確認だけでなく、「同じ設計ID(0029)が、権限あり/なしという真逆の仕様から同時に参照されている矛盾」まで見抜いてくれたのは流石でした。

ただ、要件定義の原文を少し要約して出力してしまう部分もあり、「本当に漏れなくチェックできてるかな?」と少し心配になる場面もありました。プロンプトの出し方やフォーマットは、もう少し工夫の余地がありそうです。

結果:ExcelのAI機能を使うのが一番ラクで直感的だった

今回色々と試してみましたが、結論として「Excelに組み込まれているAI機能」を使うのが一番手軽でわかりやすいと感じました。

やり方はすごくシンプルで、調査したい外部設計書のExcelを開き、AIの「作業コンテンツ(参照用データ)」として要件定義書のファイルを読み込ませてプロンプトを投げるだけです。

実際に試して出力されたシートがこちらです。

ExcelのAIだと、ボタン一つで別ファイルの要件定義書と突き合わせを行い、「参照整合チェック」という専用の綺麗なシートを自動で作ってくれます。

  • 参照ID実在率:100.0%(62/62件)
  • 全体の参照整合率:94.7%(18/19要件)

要件定義の文章も崩さずにそのまま取り込んで列挙してくれますし、何より「どこにどんな矛盾があるか」が視視的にひと目でわかるのが大きいです。見落としがちな仕様の抜け漏れ(「ソート方向の明記不足」など)もピンポイントで指摘してくれました。

「ファイルを投げて一発で終わらせたい」というめんどくさがり屋の視点で見ても、見やすい表としてパッと結果を出してくれるExcel連携のAIが一番しっくりきました。

プロンプトや渡し方の工夫はもう少し検証が必要そうですが、トレーサビリティ運用の最大の壁だった「手動チェックのめんどくささ」は、AIを賢く使うことで一気に解消できると確信できた検証でした!

 

06. まとめ:トレーサビリティの価値

以前は、IDや参照先を細かく埋める作業に対して、「なんでこんな面倒なことやってるんだろう」としか思っていませんでした。仕様変更やテストのときに迷わず仕様を追いかけられる状態を作っておくことが、品質を守る上でどれだけ大事か、身をもって実感しました。

ただ、その大切さが分かったからこそ、これからの私たちが目指すべきなのは「地味な手作業をずっと泥臭くやり続けること」ではないと思っています。

仕組みの価値・本質をちゃんと理解した上で、面倒なチェック作業はAIを使ってスマートに楽をする工夫を提案していきたいです。

もちろん、AIの結果を100%過信するのは絶対にNGです。今回の検証でも、要約されすぎてヒヤッとしたり、ファイルの渡し方で結果が変わる場面がありました。AIはあくまで優秀な一次チェッカーとして使って、最後は人間が自分の目で確認するバランスが大事だなと感じています。

手動チェックの苦労とAIを使った効率化の両方を経験した立場から、リアルで役立つアドバイスができる先輩を目指していきます!

 

エコモットでは、モノづくりに共感してくれる仲間を募集中です!弊社に少しでも興味がある方、ぜひ下記の採用ページをご覧ください!