ホームコラムアジャイル型開発の重要性とは?

アジャイル型開発の重要性とは?従来のウォーターフォール型開発における課題を解決し、手戻り工数を削減!

背景

近年、激しくなり続ける市場競争はソフトウェア開発においても例外ではなく、今まで以上の短納期が求められています。しかし、従来通りのウォーターフォール型開発の場合、あらかじめ全体の機能設計を済ませてから機能を実装するため、開発着手までにどうしても時間がかかってしまいます。さらに、テストで不具合が発覚すると、後半になればなるほど手戻り工数が大きくなってしまうため、開発途中での仕様変更・追加対応が困難となります。

そこで近年注目されているのが、「アジャイル型開発」による市場投入までの期間短縮であり、競争の激しい分野において採用例が増えてきています。

ウォーターフォール型モデル

ウォーターフォール型モデル

現状および課題

そもそも“アジャイル型開発”ってなに?

アジャイル(俊敏な)型開発とは、仕様や設計の変更が当然あるという前提に立ち、初めから厳密な仕様は決めず、おおよその仕様だけで細かいイテレーション(反復)開発を開始し、小単位での「実装→テスト実行」を繰り返し、徐々に開発を進めていく手法です。

アジャイル型モデル

アジャイル型モデル

アジャイル型開発のメリットは?

従来のウォーターフォール型開発の場合は、テストで不具合が発覚すれば手戻り工数が大きい欠点がありますが、アジャイル型開発の場合、小単位で「実装→テスト実行」を繰り返し組み上げていくため、不具合が発覚しても手戻り工数を最小限に抑えることができます。また、仕様変更や追加にも柔軟に対応できます。

アジャイル型開発のデメリットは?

従来のウォーターフォール型開発の場合は、全体の機能設計を済ませてから機能を実装していくため、スケジュールや進捗を把握しやすい上に、開発方法に慣れている人が多く、馴染みやすいメリットがあります。しかしアジャイル型開発の場合は、小単位で実装とテスト実行を繰り返すため、全体のスケジュールや進捗が把握しづらく、マネジメントのコントロールが難しいというデメリットを抱えています。
アジャイル型開発を成功させるには、優れた技術スキルだけでなく、仕様変更への対応力や、コミュニケーション能力が求められます。

アジャイル型開発を成功させるためのポイントは?

アジャイル型開発を成功させるには、下記の通り多くの課題をクリアする必要があります。

アジャイル開発における課題

画像

No

工程

タイミング

課題

1

単体テスト

各イテレーションの要件定義時

開発中、開発後に仕様不備が発覚

2

単体テスト

各イテレーションの開発後

不具合による手戻りが発生

3

結合テスト

各イテレーションの単体テスト終了後の結合時

ビルドが上手くできない
結合時に単機能の仕様不備が発覚

4

リグレッションテスト

リファクタリング後
仕様変更による修正後
不具合修正対応後

デグレが発生(リファクタリング後、仕様変更後、不具合修正後)
不具合を見逃す
適切なテスト範囲を見極められない

5

総合テスト

(開発終盤~)リリース前

全要求の確認が困難
パフォーマンスが出ない
不具合を見逃す

6

開発全体

各工程

不具合を見逃す
仕様確認時のソースコードチェックに工数大
仕様の把握が困難

VESでは、テスト専門会社として蓄積したノウハウと高いスキルと経験を持つエンジニアの技術力で、テスト設計、テスト実行、自動化テスト導入支援、ドキュメント作成における問題をすべて解決します。

例えば、単体テストにおいて各イテレーションの開発後に、不具合による手戻りが発生するという課題については、自動化テストを導入することにより手戻りを減らすだけでなく、品質向上までを見込むことができます。

次頁では、このアジャイル型開発の課題を解決した、いくつかの提案例をご紹介したいと思います。

アジャイルテスターのスクラム参加型テスト スクラム開発を中心としたアジャイル開発における品質管理の課題を、「第2.5者検証」で解決!
12