今回の振り返り語彙
【スポンサーリンク】
まとめ
モノづくりの世界で、特にソフトウェアを開発する場合、きちんと狙ったものを作れているかどうか、大きく二つの観点から確認します。
一つが検証(verification)、もう一つが妥当性確認(validation)です。
検証(verification)は比較的わかりやすいかと思います。物を作るときには、どんなものを作りたいかという仕様を記述する仕様書とそれをどうやって作るかの設計を記述する設計書を主に作り、これらをもとに開発を進めます。開発の結果できたものが、仕様書や設計書の要件にあったものかを確認することを検証といいます。
これには仕様書、あるいは設計書から書き起こしたテストケースを、すべてクリアできているか確認する作業を行います。これが検証作業です。すべてクリアできていればOKです。
ちゃんと検証できていればもうそれで間違いなさそうですよね。では妥当性確認とはなんでしょうか。
実は仕様書、設計書の通りに開発が行われたとしても、それで顧客が満足するとは限りません。仕様自体が、顧客がおもっていることを正確に反映していない可能性があるためです。仕様が間違っているということですね。
もちろん、できあがってから仕様が間違っていることに気づくのは相当な痛手になりますので、仕様書ができあがった段階で入念に確認を行いますし、そこで誤りに気づけなかったら顧客側もペナルティがあるように契約はしておくものです。
ただどうしても、仕様なり設計書は専門的な部分もあって、顧客の想いをうまく反映できていないことがあります。
なので最終的に出来上がったものを、お客様に使っていただいて、思った通りかを確認するのが妥当性確認(validation)です。
verificationとvalidationの違い、伝わりましたでしょうか。