ソフトウェアの品質と一口に言っても複数の属性が存在することは
先のエントリ
でも触れましたが、この中の保守性に今回は焦点を当ててみたいと思います。
保守性が活きるかどうかは不確定
保守性というのは端的に言えば修正のしやすさを意味します。
仕様変更や追加の際の工数が小さい、その作業過程でのバグの出現数が少ない、といったところです。
さて、この保守性の高さというのは、いざ変更を行おうとする段にならないと効力を発揮しません。
例えば初期のデータ移行のためのバッチとか、そういった「使い捨て」のプログラムでは重要視されません。
つまり、将来発生するかもしれない変更に対して、工数が少なくなるように保守性を高めるということは、
アップサイドリスクである、つまり、発生するかどうかが不確かな利益であると言えましょう。
このアップサイドリスクは仕様変更があって初めて効力を発揮するものです。
そしてその価値は、
修正の発生確率 × 省略できる工数 = 保守性の高さの価値
という式で与えられるでしょう。
近年普及したリファクタリングの概念(動きを変えずに保守性を高める手法)は、
一般には手を加えることによるバグ発生のダウンサイドリスクばかりが注目されます。
しかし、リファクタリングによって得られるアップサイドリスクと比較して検討されるべきであり、
保守性というアップサイドリスクの価値をもっと関心を持って計測する必要があるのではないでしょうか。
投稿日時 : 2007年11月6日 12:58