見出し画像

アジャイル品質ってどうなの?(ソフトウェア分析)

アジャイルソフトウェア開発の品質はどうなのでしょうか。風評としては悪いという評価がありますが、どうなのでしょうか。事実でしょうか、それとも都市伝説でしょうか。またソフトウェア製品の品質計測は開発プロセスに依存せずに同じですが、問題はアジャイル開発中のプロセス品質はどのように計測すればいいのでしょうか。アジャイル開発は繰り返し開発で、作り直しが多く入ります。このようなときに開発中の品質は対象としている部分に注目して計測することになります。図引用元:IPA ソフトウェア開発分析データ集 FAQ

ソフトウェア品質

そもそもソフトウェアの品質とはどういうものでしょうか。バグがないことでしょうか。バグゼロが最高級品質でしょうか。たぶん、これは違うと思います。きっと、違います。
 
ソフトウェア品質とはそのソフトウェアの価値と捉え、それをユーザの満足度と捉えることができます。しかし満足度というものは評価しにくいものです。まさにユーザの主観になります。もちろん品質を主観で捉えるのは間違っていませんが、扱いにくいです。
 
そこでSQuaRE(System and Software Quality Requirements and Evaluation、システム及びソフトウェア製品の品質要求及び評価)があります。SQuaREではソフトウェアの品質指標として、製品品質と利用時の品質、データ品質が定義されています。
 
SQuaREでは、バグがないこと=機能適合性はSQuaREのほんの一部です。他にも多くの品質基準が設けられています。例えば、利用時の品質の主特性として、満足性があり、その中の副特性として、実用性や信用性、快感性、快適性があります。
 
そこでソフトウェア品質をバグがないことではなく、SQuaREで紹介されている品質特性をベースに、個々のソフトウェアの状況に応じて、取捨選択することで品質を見ていくことにします。

アジャイルソフトウェア開発

アジャイルソフトウェア開発はユーザと一緒に開発を繰り返しながら、ユーザの満足度を向上させていく開発方法です。ユーザが満足しない箇所があれば、以降の繰り返し開発のときに改善されるでしょう、きっと。
 
このときに大事なのが、ユーザとの共同作業であることです。ユーザが開発に関与するので、ユーザの満足度を向上することができます。この結果、品質が良くなるのも当然です。・・・と思うのですが、そうでないという意見があります。これは次節で紹介します。

アジャイル開発の品質

アジャイル開発の品質はどうなのでしょうか。エンドユーザにとっては開発プロセスがなんであろうと関係ありません。提供されるプロダクトがいいかどうかだけで、プロダクト品質を評価します。
 
もちろん、個々のプロダクトで品質は異なりますので、アジャイル開発したプロダクトも、いい品質のものから悪い品質のものまであるでしょう。しかし傾向性として、つまり統計的に見て、アジャイル開発したプロダクトの品質はどうなのでしょうか。
 
当然、ユーザとともに繰り返し開発を行い、満足度を向上させていくアジャイル開発の方が、品質が良いと思うでしょう。しかし、世の中の反応は異なります。アジャイルはウォーターフォールと比較して品質が悪いという噂があります。
 
そして残念ながら、この噂は当たっています(これは宗教戦争になる言及ですが、今回だけはここをスルーしてください、アジャイル原理主義者のみなさま)。
 
この理由は品質の定義に依存します。品質を機能適合性=バグがないことと定義すると、ウォーターフォールがそれに命を賭けていますので、軍配が上がります。アジャイルはユーザの要求によって変更を行いますので、利用時の品質に軍配が上がるでしょうが、機能適合性ではそうではないかもしれません(あ、石を投げないでください)。

アジャイル開発の品質計測

開発終了後のプロダクト品質については前節で書いてきた傾向性がありますが、それでは開発中のプロセス品質はどうでしょうか。そもそも、作っては作り直すアジャイル開発では品質をどのように計測するのでしょうか。
 
アジャイル開発のプロセス品質でバグ密度を計測するときは、現在の繰り返し開発で対象にしている箇所と、そうでない箇所を区別して、計測することになります。ここを一緒くたに計測すると悲劇になりますので注意してください。

そして大事なことですが、計測したバグ密度をウォーターフォールのバグ密度と比較しないでください。両者は異なるものです、比較すると〇〇〇〇〇(忖度して匿名化)が不幸になります。
 
ということで今日の結論。「アジャイルの品質は総合的に」 以上です。
 
(参考)アジャイルの生産性ってなんなの?(ソフトウェア分析)|五味弘 (note.com)
 
以下のグループで今回のメトリクスに関する情報を紹介しています。
ソフトウェア研究会「とある技術のソフトウェアエンジニアリング」 | Facebook

マンガFAQの引用元:ソフトウェア開発分析データ集2022 | 社会・産業のデジタル変革 | IPA 独立行政法人 情報処理推進機構

よろしければサポートをお願いします!