見出し画像

アジャイルの生産性ってなんなの?(ソフトウェア分析)

アジャイル開発では、その生産性をどのように定義して、どのように計測するのでしょうか。ウォーターフォール開発での生産性は従来、SLOC(ソースコード行数)やFP(ファンクションポイント)で計測することが多かったのですが、仕様変更が多発し、またパッケージを利用することでプログラミング自体が少なくなっている今、時代に合わなくなってきています。作っては壊しを繰り返すアジャイルではなおさらです。結論的には絶対評価するメトリクスはなく、相対評価だけができます。図引用元:IPA ソフトウェア開発分析データ集 FAQ

ソフトウェアの生産性

ソフトウェアの生産性とはどういうのものでしょうか。これについては、「生産性はこれでいいの?(ソフトウェア分析)|五味弘 (note.com)」で書いていますので、参照してください。上記では一般のソフトウェア開発での生産性を対象にしていますが、イメージ的にはウォーターフォール開発を想定しています。

ソフトウェアの生産性とは、定義としては、投入コストに対するソフトウェアの成果量ですが、具体的には人月単位の投入コストに対する成果量であり、成果量は具体的には規模としてのSLOC(ソースコード行数)やFP(ファンクションポイント)を用いるのが多くなっています。
 
このソフトウェアの生産性を、アジャイルソフトウェア開発でも通じるのでしょうか。適用していっていいのでしょうか。

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

アジャイルソフトウェア開発は、基本的に繰り返し開発です。要求に対応して(運が悪ければ)、同じ場所を何回も作り直すことになります。このような熱い場所をホットスポットと呼ぶようにします。逆に作り直しがない場所をコールドスポット、またはフローズンスポットと呼ぶようにします。
 
つまりウォーターフォールは、基本的に多くの場所がコールドスポットになっています。一方、アジャイルはホットとコールドスポットが点在しています。
 
コールドスポットの開発はウォーターフォールの方がいいでしょう。でも難しいのは事前にどこがホットでどこがコールドであるかがわからないことです。経験と勘でずばり当てる人もいますが、このようなスキル持ちはまれです。
 
ホットスポットの開発はアジャイルの繰り返し開発がいいでしょう。作っては試し、駄目なときはそれを捨て、新たに作り直すことを繰り返します。これが結果的にはアジリティを保証することになります。

アジャイル開発の生産性

アジャイルで開発したソフトウェアのプロダクトとしての価値は、開発手法がアジャイルであろうがウォーターフォールであろうが、ユーザには関係ありません。特にアジャイル開発に関わっていない二次ユーザには関係ありません。作り方で価値が変わるものではないのです。

しかしアジャイル開発に関わっていた一次ユーザはそうではないでしょう。ソフトウェアの価値を向上するためにアジャイル開発をしてきて、そしてこれからもDevOpsも含めて、より良いものに作っていくでしょう。この将来の価値も含めての生産性が、価値をベースにしたアジャイルの生産性になります。

ここで開発プロセスを考えての生産性を考えてみます。コールドスポットの生産性はアジャイルであっても、従来のウォーターフォール開発で用いられていたSLOC(ソースコード行数)やFP(ファンクションポイント)を使うことができます。これであれば、従来から蓄積した統計データが使えます。
 
一方、ホットスポットの生産性は上記では駄目です。作っては壊し、壊しては作るときの成果量は最終結果のSLOCやFPだけでは計測できません。壊したソフトウェアの血と汗の量が入っていません。この血と汗で上昇した価値が入っていません。これはプロダクトの生産性には入っていませんが、プロセスの生産性には入れるべきです。これで当時の苦労が偲ばれます。

アジャイル開発の生産性計測

SLOCやFPの計測は古くからの伝統がありますので、心配は無用です。心配すべきは価値をベースにした生産性計測です。これは難しいです。メトリクス(計測指針)については「アジャイルメトリクス、どうなの?(ソフトウェア分析)|五味弘 (note.com)」を参照してください。

でも先に白状しますが、絶対的な答えはありません。個々のプロジェクトに合わせたメトリクスを用意する必要があります。
 
ということで今日の結論。「アジャイルの生産性は血と汗」 以上です。

以下のグループで今回のメトリクスに関する情報を紹介しています。
ソフトウェア研究会「とある技術のソフトウェアエンジニアリング」 | Facebook

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


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