プロジェクトの工期維持・短縮のための施策として、「フロントローディング」と、「テストファースト」という手法を耳にすることがよくあります。どちらも手戻りをなくすことによって、工期と品質の維持、または、工期短縮と品質向上を目的とする点で共通しているようです。
どのような内容の手法かというと、どちらもその定義はいくつか存在しています。
「フロントローディング」は、一般的には、「設計の前倒し」ともいわれています。
- 業務設計と平行して方式設計や運用設計などを行う。
- 業務設計の上流工程で下流工程での課題点をあらかじめ検証する。
の2点が「フロントローディング」の代表的な特徴と、わたしは思っています。ときには、設計と開発を平行して進行させる場合にも使われることがあるようです。
「テストファースト」は、テストを先行させることです。おもにアジャイル手法で解説されています。実際には、
- 実装コードのコーディングに入る前にテストコードのコーディングを行う
- コードを書く前にテストケースを作成する
のような内容で説明されることが多いようです。そして、プログラミングとユニットテスト(単体テスト)の工程を対象としていることが多いようです。
「テストファースト」については、結合テストやシステムテストの全テストケースについても、プログラミング前に作成して公開する、とういうような取り組みがあってもいいのではないかと思うことがありました。上流工程で作成する設計書だけでは、具体的事例との整合についての表現が乏しくなりがちと思われます。このようなことによって発生する手戻りや障害を事前になくすことができるのではないか、と考えられます。