今日は、TDD(Test Driven Design)について気づいたことを。
TDDは結局は終わりから始まりに戻るリバースエンジニアリングであり、それによって開発を行う方法だけど、これって通常は突然の仕様変更に耐えられるように作れるのか?または機能追加に。
事前に機能追加を見越して開発をするということは、テストケースからは推察できないと思うのだが、どうなのだろう。今はまだしっかりと理解していないが、直ぐに思いつく問題になりそうなものはそこかな。
あとはMDD(Model Driven Design)なんかも、仕様を元にデータモデルを考えて云々だと思うけど、仕様変更には、TDDよりは強いと思う。
ただ、一番いえるのは、仕様が変更されることは今までのものでは機能不全であるという烙印を押すのであるから、どんな場合でも厄介である。また冗長性で回避できるにしても限界があるし、想定の範囲内の修正でない場合も多い。
私はソフトウェアをなにかの類推や定型化して考えるには、まだまだ知らないこと、いつか現れる新しいことが多すぎて、いつ何をしゃべっても一定以上の付帯条件がついていて、どれにも銀の弾丸にはならないと考える。ただあるのは、開発者がより多くのツールと手段を知っていることで、それらに対応するのが唯一有効であると言える手法に思える。ただこれは何も示していないのと同じだが。
0 件のコメント:
コメントを投稿