近年、激しくなり続ける市場競争はソフトウェア開発においても例外ではなく、今まで以上の短納期が求められています。しかし、従来通りのウォーターフォール型開発の場合、あらかじめ全体の機能設計を済ませてから機能を実装するため、開発着手までにどうしても時間がかかってしまいます。さらに、テストで不具合が発覚すると、後半になればなるほど手戻り工数が大きくなってしまうため、開発途中での仕様変更・追加対応が困難となります。
そこで近年注目されているのが、「アジャイル型開発」による市場投入までの期間短縮であり、競争の激しい分野において採用例が増えてきています。
アジャイル(俊敏な)型開発とは、仕様や設計の変更が当然あるという前提に立ち、初めから厳密な仕様は決めず、おおよその仕様だけで細かいイテレーション(反復)開発を開始し、小単位での「実装→テスト実行」を繰り返し、徐々に開発を進めていく手法です。
従来のウォーターフォール型開発の場合は、テストで不具合が発覚すれば手戻り工数が大きい欠点がありますが、アジャイル型開発の場合、小単位で「実装→テスト実行」を繰り返し組み上げていくため、不具合が発覚しても手戻り工数を最小限に抑えることができます。また、仕様変更や追加にも柔軟に対応できます。
従来のウォーターフォール型開発の場合は、全体の機能設計を済ませてから機能を実装していくため、スケジュールや進捗を把握しやすい上に、開発方法に慣れている人が多く、馴染みやすいメリットがあります。しかしアジャイル型開発の場合は、小単位で実装とテスト実行を繰り返すため、全体のスケジュールや進捗が把握しづらく、マネジメントのコントロールが難しいというデメリットを抱えています。
アジャイル型開発を成功させるには、優れた技術スキルだけでなく、仕様変更への対応力や、コミュニケーション能力が求められます。
アジャイル型開発を成功させるには、下記の通り多くの課題をクリアする必要があります。
No |
工程 |
タイミング |
課題 |
---|---|---|---|
1 |
単体テスト |
各イテレーションの要件定義時 |
開発中、開発後に仕様不備が発覚 |
2 |
単体テスト |
各イテレーションの開発後 |
不具合による手戻りが発生 |
3 |
結合テスト |
各イテレーションの単体テスト終了後の結合時 |
ビルドが上手くできない |
4 |
リグレッションテスト |
リファクタリング後 |
デグレが発生(リファクタリング後、仕様変更後、不具合修正後) |
5 |
総合テスト |
(開発終盤~)リリース前 |
全要求の確認が困難 |
6 |
開発全体 |
各工程 |
不具合を見逃す |
VESでは、テスト専門会社として蓄積したノウハウと高いスキルと経験を持つエンジニアの技術力で、テスト設計、テスト実行、自動化テスト導入支援、ドキュメント作成における問題をすべて解決します。
例えば、単体テストにおいて各イテレーションの開発後に、不具合による手戻りが発生するという課題については、自動化テストを導入することにより手戻りを減らすだけでなく、品質向上までを見込むことができます。
次頁では、このアジャイル型開発の課題を解決した、いくつかの提案例をご紹介したいと思います。
No |
課題 |
VESの提案 |
---|---|---|
1 |
開発中、開発後に仕様不備が発覚 |
テスト観点やテスト項目の漏れがないかレビューする |
2 |
不具合による手戻りが発生 |
単体テストのテスト設計・実行を行う |
3 |
ビルドが上手くできない |
結合テストのテスト設計・実行を行う |
4 |
デグレが発生(リファクタリング、仕様変更、不具合修正後) |
リグレッションテストを実施する |
5 |
全要求の確認が困難 |
総合テストのテスト設計・実行を行う |
6 |
不具合を見逃す |
ノウハウを活かした効率的なテスト設計・実行 |