Upgrade to Pro — share decks privately, control downloads, hide ads and more …

正しい実装,間違った仕様書

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for Masahiro Yamane Masahiro Yamane
June 08, 2026
350

 正しい実装,間違った仕様書

Avatar for Masahiro Yamane

Masahiro Yamane

June 08, 2026

Transcript

  1. 書いた仕様書(これが問題) チェック対象 条件 対象者リストと受診者リストの照合率を確認 ( min_rate_a_in_b ) 50%未満 → WARNING

    受診者リストと対象者リストの照合率を確認 ( min_rate_b_in_a ) 100%未満 → WARNING min_rate_a_in_b / min_rate_b_in_a は既存関数の引数名... def check_match_rate( data_a, # データA(基準) data_b, # データB(比較) min_rate_a_in_b=0.9, # AのうちBにいる割合の最小閾値(下回るとWARNING) min_rate_b_in_a=0.85 # BのうちAにいる割合の最小閾値(下回るとWARNING)
  2. Agentの実装とバグ Agentはこう実装した check_match_rate( data_a=受診者リスト, # data_a ← 本来は対象者リストのはず data_b=対象者リスト, #

    data_b ← 本来は受診者リストのはず min_rate_a_in_b=0.5, min_rate_b_in_a=1.0 ) → 気付かずリリース。翌日にバグ発覚。
  3. なぜこうなったか 仕様書に一部の引数名(min_rate_a_in_b / min_rate_b_in_a)を書いた ↓ 記述の足りない引数があった(data_a, data_b)のでagentは推測した ↓ その結果が間違っていた ↓

    (レビューでも検知できず... ) そもそも実装の言葉を仕様書に書くべきではなかった。 ...し,実装ベースで支持するにしても中途半端だった。