コード品質がビジネスに与える影響についての記事を読んだ
コード品質がビジネスにどれだけの影響を与えるかは、私も例に漏れず定性的な説明しかできていなかった
この記事は「市場投入までの時間」と「コード品質」との間の関係性を定量的な調査結果を引用しながら考察されていて面白かった
記事を読んでもメモを書いておく
「市場投入までの時間」は「コード品質」と関係があるロジック
「市場投入までの時間」を短くしたい
↓
によると必要なアーキテクチャ特性は「アジリティ(agility)」
↓
アジリティを支える品質特性によるとアジリティに関係の深い品質特性は「保守性」 ↓
「保守性」は「コード品質」がもたらすもの
↓
つまり、「コード品質」は「市場投入までの時間」を決定づける要因となる
低品質が市場投入までの時間を遅らせるロジック
こちらの記事によると
コード分析ツールのCodeSceneツールを使用し、39の独自のプロダクションコードベースを分析
30,737ファイルの活動を分析した結果,、以下のことがわかった
- 低品質のコードには高品質のコードの15倍の欠陥が含まれている
- 低品質のコードは高品質コードの2倍多くの開発時間がかかる
- 低品質のコードでの問題解決には最大サイクル時間が9倍長くなる
つまり、以下のことが起こってしまう
低品質のコード
↓
欠陥が15倍含まれている
↓
予定外の対応作業が15倍増える
↓
見積もりとかけ離れる
↓
バッファという形でも吸収できない
↓
遅延が発生
↓
市場投入が遅れる
あるいは、
低品質のコード
↓
開発時間が2倍〜9倍多くかかる
↓
遅延が発生
↓
市場投入が遅れる
ということになる
バッファを多く積むということも、関係者の理解がなければ不信感を生んでしまう
ちなみに、以下の調査によると
回答者の42%が、経営幹部やビジネスマンは技術的負債についてほとんど認識しておらず、積極的に管理しているのは10%という調査結果がある
つまり、コード品質の問題はエンジニアしか認識できない状態に置かれていること多いと言える
また、 回答者の多く (66%) は、負債を返済しないか、障害になるまで返済しないと回答しており、負債を犠牲にして開発された機能のメリットより、デメリットの方が大きくなった時に負債の返済が処理されるのがほとんどの模様
まとめ
「市場投入までの時間」と「コード品質」がよくわかる記事だった
コード品質がプロジェクトの定期的に観察する指標として含まれていることは少ないが、これでは低品質のコードを見逃すことになり、結果市場投入が遅延する可能性がある
定期的に見るようエンジニア側から仕向ける必要があることがわかった