IT業界で働いて40年になろうとしている。
その間に設計手法や品質など色々新しいやり方が提案されてきて、大概のことは経験したのではないかと思う。
開発効率と品質向上のために、部品化を進めるというのは、随分前から色々なやり方で色々な企業が取り組んできた。
そもそも部品化するのは、品質が保証された機能を決められたインタフェースで使用することが重要で、機能はできるだけシンプルでエラー情報も定型のインタフェースで返すと言うのが肝だと今でも考えている。
だが、世の中には部品化、共通化と称してやたらと複雑で汎用性の低いものをバリエーションを増やして部品と呼んでいるIT企業も多い。
部品化するためには機能を細分化して最小単位のもので何が必要か見極める必要があるのだがそうしないで、部品と呼ぶケースもかなり多いのではないか。
そうすると、何が起きるか。
部品と称したものを使いはするが、その部品の機能を毎回、それが使われるすべての箇所でテストしたがる。
と言うか部品化されていないので、テストせざるを得ない。
汎用的に作れとかわけのわからない命題は、流用してコストを下げるためだと言うのだけれど、肝要なのは製作コストを下げることだけでなく、テストコストを下げることでそれが出来ないのなら正直全く意味がない。
テストケースも汎用部品もどきを使うのに毎回新たに作り直して、使用用途によってカスタマイズと称してパスが増えるのでテスト件数を肥大化させていく。
結局テストスケジュールも粒度の異なるテストケース件数を作業期間で割っただけのものになるのだから、困ったものだ。