外部設計は内部設計に直結するんじゃね?思った以上に

例えば、2つの外部システムから提供されるCSVファイルの取込機能がある*1。で、こんな風に設計書が書かれている*2とする。

  • Aシステムからの取込
    • ファイルパス:\hoge\huga\A.csv
    • CSV仕様
      • 1行目を項目名とする。
      • 区切りはカンマ(,)とする。
      • 項目はダブルクォーテーション(")で囲む。
      • エスケープ文字は\とし、以下の文字の場合はエスケープする。
        • "
        • '
        • ,
      • 項目に改行はない。
  • Bシステムからの取込
    • ファイルパス:\hoge\huga\B.csv
    • CSV仕様
      • 1行目を項目名とする。
      • 区切りはカンマ(,)とする。
      • 項目はダブルクォーテーション(")で囲む。
      • エスケープ文字は\とし、以下の文字の場合はエスケープする。
        • "
        • '
        • ,
      • 項目に改行はない。

こんな感じ。念のため、CSV仕様以下はAシステムもBシステムも一緒なことが書いてあるし、例えばA4で1ページ丸々、全く同様の記述がコピペしてある状況を思い浮かべて頂きたい。
このとき、CSVのパーサは共通化すべきか、せざるべきか。
通化すれば「別のフォーマットになる可能性があるのに」となるかも知れないし、個別に実装すれば「同じだから共通化してほしかったのに」となるかも知れない。自分なら、別に実装する方を選ぶ*3
この程度なら共通化しようと個別にしようと、実装も試験それほど増えないけど、こんな記述が随所にあれば、同じ機能なのに実装量とか試験量が全然多いよね、ってことになりかねない。しかも同時に設計書が届けばまだマシで、設計書受領⇒実装・試験、別の設計書受領⇒実装・試験という実に良くある状況で、「後のは初めのと共通化して作ってください」なんて言われたり、そんなことが暗に期待されることもしばしば。
こんなことに悩むのって、不毛だなぁと思うんだよね…。

*1:今どきCSVかよ、ってのは別として。ぱっと見、CVSと間違える。

*2:記述は適当です。

*3:余裕があれば外部設計者に確認するけど。