アジャイル開発の品質管理技法(中編)統計的品質管理の応用

2020年2月13日公開

品質管理技法

ここでは、「アジャイル開発の品質管理技法」について述べます。

統計的品質管理

ソフトウェア開発に適用される品質管理技法の基本は、統計的品質管理です。
ウォーターフォール開発にも伝統的に適用されているばかりか、ハードウェアの開発、生産にも適用されています。
ここからは、アジャイル開発の品質管理を統計的品質管理の観点から見てみましょう。

統計と統計的品質管理

統計的品質管理とは、統計的方法を用いて品質管理や工程改善を推進することです。
そして、統計とは

  1. まず定量的なデータを採取
  2. データを指標化
  3. 指標から定性的傾向を検知
  4. 傾向から実態の糸口を見つける

というように定量的なデータから定性的な傾向を見出すことです。

ウォーターフォール開発の統計的品質管理

伝統的なウォーターフォール開発では、過去の案件の定量的データを工程ごとに統計処理し、標準的な指標を得ます。そして、それらの指標の標準値と対象となる案件の指標を比較して品質を評価します。

しかしこれらの指標は品質をあらわしているといえるのでしょうか?

ドキュメントの枚数やコードの行数、レビュー時間は品質そのものではなさそうです。 では一体なぜ、品質評価にこれらの指標を用いているのでしょう?

品質評価には代用特性を利用

代用特性という考え方があります。

代用特性:ある特性を直接測定できない場合に、対象の特性と連動する他の特性を観測することで代替する特性

測りづらいもの、たとえば温度がそうでしょう。

温度計は、温度を測っているのではなく、アルコールの体積を測っています。
温度と体積の連動性を代用特性として利用しています。

ウォーターフォール開発の品質管理で用いた指標も実は代用特性であり、品質と連動性の高い指標を利用しているのです。

アジャイル開発にも統計的品質管理は適用できるのか?

ソフトウェアの指標に関し、興味深い発言があります。
日本ソフトウェアシンポジウム2017の招待講演で奈良隆正氏は、こう語っています。

ソフトウェアメトリクスは代用特性であり、開発における測定はコアコンピタンスにも拘わらず、慣習によって意味を理解せず計測していないか?

アジャイル開発については、こんなことがいえそうです。

アジャイル開発におけるソフトウェアメトリクスも代用特性であろう。しかし、ウォーターフォール開発とは異なる開発プロセスのアジャイル開発においても、慣習によってウォーターフォール開発と同様の計測・評価をしていないか?

ウォーターフォール開発とアジャイル開発、その開発プロセスを比較してみます。


利用技術プロセス反復性
ウォーターフォール開発限定された技術
・OS/言語/Platform

標準化が進んでいる
・成功事例の横展開
・フレームワーク化

なし
アジャイル開発多様な技術
・新技術の登場に追従
多様性が拡大している
・採用技術に依存(設計/試験)
・各プロジェクト固有
なし

ウォーターフォール開発は利用技術もプロセスも、複数のプロジェクトを通してわりと似ていると言えそうです。
しかし、アジャイル開発では、プロジェクトごとに技術もプロセスも多様ではないでしょうか?

異なる開発プロセスに同一の指標を利用するのはやはり不自然です。アジャイル開発に品質管理技法を適用する場合には、指標の意味に注意を払う必要がありそうです。

注意を払うべき点は以下の二点でしょう。

アジャイル品質管理技法の適切な利用

アジャイル開発をSoR領域など、より広範囲に展開するためには、アジャイル開発への品質管理技法の適切な適用が必要です。そのためには、前述の二点「比較データの適切性」と「代用特性の適切性」を考慮した、アジャイル品質管理技法が必要となるのです。

アジャイル開発のための品質管理技法

ここからは以下の二点

  • 「比較データの適切性」
  • 「代用特性の適切性」

これらを考慮した、アジャイル品質管理技法について述べます。

比較データの適切性

比較データとは比較の相手になるものです。

アジャイル開発プロジェクトは、他のプロジェクトとの類似性が少ないことは、前編で述べました。
つまり比較の相手がいないということになります。

そこで、似ている何かを見つけるために、反復性に着目します。


反復性
ウォーターフォール開発なし
アジャイル開発あり

アジャイル開発はイテレーション(あるいはスプリント)と呼ばれる反復期間の中で、設計・実装・試験が同時進行し、反復期間の終わりには完結動作するソフトウェアがアウトプットされます。
つまり、反復開発です。

反復期間ごとのプロセスにはそれぞれ強い類似性があります。

類似性項目内容
開発メンバーほぼ同一メンバーによる継続的開発
開発プロセス改善による変化はあるが、同一プロジェクトであるためほぼ同一プロセス
利用技術期間中の新技術導入はあるが、同一プロジェクトであるためほぼ同一技術

メンバー、プロセス、技術はプロジェクト期間をつうじてとてもよく似ています。

適切な比較データ

アジャイル開発に適切な比較データは、重ねた反復である

といえそうです。
つまり、最近の自分たちと比較することです。

代用特性の適切性

代用特性とは比較の物差しになるものです。

代用特性についても、やはり反復性に着目します。


反復性
ウォーターフォール開発なし
アジャイル開発あり

アジャイル開発は反復開発ですから、少なくとも反復期間ごとに品質データを採取可能です。
つまりメトリクスが採取可能です。

この指標を反復ごとに、あるいは過去の反復すべてと比較することが可能です。

完結動作するソフトウェアを開発するのがアジャイル開発プロセスです。

そのプロセスがソフトウェアをアウトプットするので、ソフトウェアの品質はプロセスの在り様、反復内のプロセスの在り様と連動していそうです。

プロセスの在り様は、チケットライフサイクルで観測が可能です。
アジャイル開発では機能ごと1つずつ開発するため、多くの場合に管理の単位にチケットを使います。

チケットの発券、着手、完了などのイベントで生じるライフサイクルをここでは、チケットライフサイクルと呼びます。

このチケットライフサイクルに着目すると、

  • リードタイム
  • 着手待ち時間
  • 発券タイミング

などが指標として想定できます。
割込み、障害や、新機能の要求発生などのイベントがプロセスの変化や乱れとして、チケットライフサイクルに現れるためです。

指標変化の要因
チケットリードタイム割込み事象による優先順位下落待ちによる遅延
チケット着手待ち時間障害発生による発券即着手
チケット発券タイミング反復開始時の計画的発券と、反復期間中の随時発券バランス
(健全な改善事項の検出による随時発券か、不用意な障害の検出による随時発券か)

アジャイル開発に適切な代用特性は、そのプロセスの特徴に起因するチケットライフサイクルだといえます。

アジャイル開発の品質管理に必用なもの

アジャイル開発の統計的品質管理に必用なものは、ウォーターフォール開発で利用されてきた比較データや代用特性ではありません。アジャイル開発では、

比較データ:自プロジェクトの重ねた反復データ
代用特性:チケットライフサイクル

これらの比較データや代用特性の利用が必要です。

続いて後編では、この中編で述べた考え方を実際のプロジェクトに適用し、検証および考察を実施します。


参考文献

執筆

坂田 晶紀(さかた あきのり)富士通株式会社 ジャパン・グローバルゲートウェイ
ソフトウェア開発者、中小企業診断士(Registered Management Consultant)
メインフレームOS、主にシステム資源最適化プログラムの開発に従事。
その後、WEBアプリケーション開発業務に携わり、2002年からアジャイル開発を実践。
アジャイルソフトウェア開発の品質管理、開発管理、組織マネジメントを中心に、約1,000の職場をコンサルティング。

お問い合わせ

ページの先頭へ