ソフトウェアプロダクトを開発する時、色々なリスクが想定される。今から開発するプロダクトは本当に顧客の要求を満たすのか?選定した技術要素は本当に設計要求を満たすのか?プロジェクトは期限内に終るのか?
そんなソフトウェア開発プロジェクトのリスクを軽減する方法として、プロジェクトの最初にプロトタイプを作成し、仮説を検証する方法がしばしば取られる。プロトタイプを作成し顧客要求の仮説を検証する。プロトタイプによって設計要求に対する仮説を検証する。などなど。
あなたはこの「プロジェクトの最初に作成したプロトタイプ」を仮説の検証が終った後に捨てていませんか?
もし、このプロジェクトの一番最初に作成したプロトタイプを捨てているのだとしたらなんともったいないことか。だってそのプロトタイプはプロジェクトの重要な仮説を検証しているのだから。リアルプロダクトとしてきちんとテストして、そのテストを自動化すれば、プロジェクトの期間中ずっとリスクが顕在化していない事を確認する事が出来る。
テスターは、しばしば品質保証の対象を「完成したプロダクト」に限定する。でも、Leanな開発プロジェクトでアジャイルテスターは「これから開発するプロダクト」のリスクも検証する。だからプロダクトオーナーやアーキテクトとのコミュニケーションが求められる。
ウォーターフォールにおけるテスト自動化では、しばしばテスト自動化の本質を「工数削減」に置く。でもLeanな開発プロジェクトでアジャイルテスターは、テスト自動化をリスク管理をするためのツールとして使う。加えてプロジェクトのプロセス品質とプロダクト品質を継続的に計測しフィードバックする。
Leanについては、平鍋健児さんの"リーンとカンバンの本質"の6pのスライドをご参照ください。 http://www.slideshare.net/hiranabe/lean-from-the-trenches
Leanの開発プロジェクトで、何故こんなに細いテストプロセスで品質保証が可能なのか?その本質はアジャイルテスターがテスト自動化と継続的な品質改善によってプロジェクトのリスク管理に貢献するからである。