少人数、短期間の開発を繰り返すアジャイル開発では、どのようにすれば品質を保つことができるのだろうか。本連載では、アジャイル開発における品質管理の手法を解説する。今回は、スプリント内でのテストと品質保証について、2回に分けて解説する。前編となる今回は要件設定とV&Vについて。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
アジャイル開発において、テストをどのように実施するかは難しい問題です。短い開発周期で、設計、実装にしっかり時間をかけようとすると、それに伴ってテストを実施する時間は少なくなります。結果として、テストがスプリント(※)内で収まらず、テストのタスクを次のスプリントに持ち越してしまいます。結果として本来のタスクに着手できず、プロジェクトが停滞してしまうことも考えられます。
(※)アジャイル開発における、機能の設計、実装、テストまでの一連の流れを開発する単位のこと。詳しくは第1回で解説している。
かといってテストや実装を短時間で済ませようとすると、技術的負債がたまり、先々のスプリントで大きな問題となることが容易に想像できます。今回は、このような負の連鎖を生み出さないようにするために、スプリント内でのテストと、品質保証の考え方について紹介します。
前回、「完成の定義」という考え方を紹介しました。スプリント内でどこまでやれば完成と見なすのか、その達成条件のことです。もちろんテストについても、何を、どこまでやるかを完成の定義に含める必要があります。
しかし、いきなり全てのテストをスプリント内で完結させることは困難かもしれません。どこまでテストを実施すればよいかの見極めが十分でなく、テストが不足し不具合が残存してしまったり、テストを過剰にやり過ぎることによる工数超過に陥ってしまったりする可能性があるからです。従って、最初はテストを次のスプリントに回す、という方針を取ることも十分に考えられます。
突然、先述したことと真逆のことを言っているように感じるかもしれませんが、改善していくことを前提に、今できることをこなしていくことこそが、アジャイル開発に求められることです。アジャイル開発では、変化に対応することが求められます。それは、行き当たりばったりやなし崩しという意味ではありません。最終的なゴールを見据えて、短い期間で成果を確認しながら、細かく軌道修正しながら近づいていきます。それはテストや品質保証についても例外ではありません。いきなり100点満点の解答を目指そうとせず、できるところからこなしていくことが重要です。
チームが良いと判断したならば、機能の実装とそのテストを複数のタスクに分け、複数のスプリントに分けて実施するというのも現実的なやり方だと思います。そして、それをコントロールするのが完成の定義です。
このように改善を継続していくことがアジャイル開発の本質といっても過言ではありません。つまり、アジャイル開発にベストプラクティスは存在しないのです。それを意識することが最も重要です。その時点でできるだけのことを行い、またそれ以上を求めることを仕組みとして備えているのがアジャイル開発だといえるでしょう。
もちろん、スプリント内で完結させることが基本であることに変わりはありません。そしてそれを実現するためには、第1回で解説した通り、ミニウオーターフォールにならないことが重要です。ここからは、その具体的な方針を解説していきます。
Copyright © ITmedia, Inc. All Rights Reserved.