「ソフトウェア品質の経済的側面」
読みました。
日々品質の良いソフトウェアを書こうと心がけて過ごしてはいますが、「スタートアップでは品質ではなくスピード重視だ」とかいう言葉もちらほら聞きますし、そもそも何のために品質を求めているの?そもそも品質って何なの?という辺りから改めて視野を広げるべく購入しました。
ざっくりとした概要
ソフトウェアの品質による経済的価値
- どう品質が高いと、どんな経済的価値が得られるのか
- あるいはどう品質が低いと、どんな経済的影響があるのか
- 社内向け/社外向け/組み込みなど分野別に記載
- 「高品質で手戻りが少ない」と、「再実装の工数が減る」
- 「高品質で顧客満足度が高い」と、「プロジェクトをキャンセルされる確率が減る」
- 「高品質で顧客がUIを理解し易い」と、「サポートによるコストが減る」
- 「高品質で他社よりも顧客信頼度が高い」と、「売上が上昇する」など
どうやって品質を計測するのか
- 基本、FP法を用いる
- 筆者の会社は13,000のプロジェクトを調査したそうな
開発のどのフェーズのどのような活動が、どれくらいの割合でソフトウェアの品質に影響を与えるのか
- 例えば要件の誤りが一番大きな影響を与え、次いでDBやモジュール設計などの影響が大きく、コードの記述方法などはさらにその次などになる
品質を向上させるための各種活動について
- 正規のインスペクションが良い、とか
- アジャイルプロセスは1,000FP位の規模までは有効、とか
感想
- 要するに「品質が低いと結局お金かかるよ」ということだった
- 色々な分野について、数値で色々語られており、なるほど感はあった
- しかし、表の合計値が異なることがあり(原著がそのままであるとの注付き)、どう読んでいいのか悩ましい数値もあった
- ただ自分の経験上の感覚とそう外れた感じではなかった気はする
- FP法がどこまで信頼に値するのかについてはよくわからないなぁ
- ただ本書のように、一人の人なり一つの会社が統一した基準で計測を実施できているのなら、比較指標としては有効なのかな
- 要求仕様と出来上がりが違ったら、そりゃ一番痛いことになるよなぁ
- 「スタートアップは品質ではなくスピード重視だ」という言葉の中には、「品質」という多面的な意味を持つ言葉が含まれているので、読んだ人によって色々は反応が起こるのだろうなぁ
- 「複雑クソコード / 行き当たりばったり設計による品質の低さ」 => 結局はスピードも出ず金もかかるので不幸になる
- 「拡張可能な設計 / 読みやすいコードを保ちつつ、要件を絞ったことによる品質の低さ」 => 必要な時に必要なものを足せば良いので無問題
- だから、「スタートアップだからエンジニアのスキルが低くてもいいや」は適切ではない
- もうちょっと読み込んで、非ソフトウェアエンジニアに品質の意味を説明するための語彙を錬成したい