テストと仕様書について。

TDDなどでテストを中心とした開発がもてはやされてはいるが、
まだまだとても浸透しているなどとはいえない気がする。
相変わらずのウォーターフォールJUnitをちょっと組み込み、
テスト自動化により多少は変化に強くなる、という利点は得ているものの、
リファクタリングなんてもってのほか、出来上がったソースはいじっちゃいけませんという
状況はまだまだ続きそう。
アジャイルな開発ではコードが全て、という風潮があるが、
ISOなり品質の問題なりで、まだまだ設計書、仕様書というのは重要な位置を占めている。
なによりも、こう流動的に人の入れ替わりがあると、仕様書こそが最も確かな
意思伝達手段になってしまうこともちらほら。担当者はもういないとか(笑)。

特にある程度の規模の開発などでは、仕様書はそこそこ整えるものの、
大体コーディングが始まると、次から次へとやってくる仕様変更に対して、
仕様書というのは置いてけぼりになることが多いのではないか。
そして気付くと仕様書とテスト完了したアプリケーションとはいつのまにか
大きくかけ離れていたりとか。
引継ぎなどで「仕様書読んで!」とか言われても、それが現実とかけ離れていたら意味がない。
こういうことを防ぐために、Javaアノテーションのようなメタデータを使って、
「コード中に仕様書の記述を埋め込み、仕様書を生成する」
「仕様書の変更からコードを一部自動生成する」
ようにし、仕様書とコードとの関係を常に一つに保つような
仕組みが今後必要になってくるのではないかと思うのだが、どうだろうか。
仕様書〜コード〜テストがシームレスにつながることが必要なのかもしれない。