$30 off During Our Annual Pro Sale. View Details »

コード品質がもたらすビジネスへの影響(社内向け翻訳、まとめ)

 コード品質がもたらすビジネスへの影響(社内向け翻訳、まとめ)

『Code Red: The Business Impact of Code Quality -- A Quantitative Study of 39 Proprietary Production Codebases』を社内向けに翻訳、まとめた資料。

Atsushi Okui

July 06, 2022
Tweet

More Decks by Atsushi Okui

Other Decks in Technology

Transcript

  1. (翻訳、まとめ) コード品質がもたらすビジネスへの影響 社内向け

  2. はじめに

  3. 論文について タイトル Code Red: The Business Impact of Code Quality

    -- A Quantitative Study of 39 Proprietary Production Codebases タイトル(訳) コード・レッド: コード品質がもたらすビジネスへの影響 -- 39のプロプライエタリ・プロダクション・コードベースの定量的研 究 著者 アダム・トーンヒル(CodeScene)、マーカス・ボルグ(スウェーデンRISE研究機関 ルンド大学) https://arxiv.org/abs/2203.04374
  4. この資料について 先述した論文の翻訳とまとめです。 翻訳はDeepLによる機械翻訳がメインなので、表記ゆれや読みにくい部分があるかもしれません。 論文はリンク先からダウンロードして読めるので、詳細は是非そちらを参照してください。

  5. 本編

  6. 概要 低品質コードには高品質コードに比べて 15倍以上の欠陥があることがわかりました。 さらに、低品質なコードの問題解決には、平均で 124%以上の開発時間がかかる ことがわかりました。 最後に、低品質コードの問題解決は、 最大サイクルタイムが9倍長くなるなど、より高い不確実性を伴うことを報 告します。 欠陥が15倍少なく、開発速度が2倍で、問題解決時間が大幅に予測可能であることから、

    高品質なコードのビジ ネス上の優位性は明白であるはずです。
  7. 1 序文 効率的なソフトウェア開発は、企業が市場投入までの時間を短く維持できる競争上の優位性である。 残念なことに、ソフトウェア業界はしばしば逆の方向に動いています。 企業が市場投入までの時間や新機能と コードの品質を交換し続けているため、開発者は頻繁に新しい技術的負債を導入せざるを得ない という調査結 果があります。 理由の1つは、コード品質のビジネスインパクトが曖昧なままであることです。 2つ目は、ソフトウェア組織では、技術的負債に費やされた時間を十分な精度で追跡する方法がありません。

    本論文では、39のプロプライエタリなプロダクションコードベースにおいて、コード品質が開発時間にどのような 影響を与えるかを報告します。
  8. 2 背景 コード品質に関する業界標準は存在しない。さらに、低いコード品質と技術的負債のために浪費された時間を追 跡する確立された方法もありません。 この研究で使用されるコード品質と開発期間のメトリック を定義します。

  9. 2.1 Code Healthによるコード品質の測定 Code Healthは、CodeSceneツールで自動的に計算される独 自の指標です。 この指標は、10.0(品質の高い健全なコード)から 1.0(品質の低 い不健全なコード)までの数値スコアで表わされます。 CodeSceneは、Code

    Healthのスコアに基づいて、各モジュー ルを健全、警告、アラートのいずれかに分類し、それに応じて コードベースを可視化します コードベースのCode Health可視化例
  10. 2.2 開発時間の計測 この研究では、Jira 課題と、Jira 課題のうち欠陥と呼ばれるサブセット(しばしばバグと呼ばれる)の解決に関連 する時間を測定します。 開発時間をファイルごとの開発に費やしたサイクルタイム (*1)として測定し、ファイルレベルの Code Healthと関

    連付けることができるようにしました。 *1 課題が「進行中」というステータスを持つ時間
  11. 3 関連する研究成果 平均して全開発時間の36%が技術的負債のために浪費されている – Besker 本研究では、開発組織が技術的負債削減活動やコード品質全般に価値を置くことができるよう、一般論として無 駄な時間を提示する数値を提供することを目的としています。 この論文で研究した自動化された Code Healthの測定は、この無駄の一部を改善することができると考えていま

    す。
  12. 4 方法 この研究は、リポジトリマイニングの経験的標準のドラフト版に準拠しています。 選択されたリポジトリは、ソースコード解析に CodeSceneを使用している39の独自ソフトウェア開発プロジェクト です。 リサーチ クエスチョン • RQ1

    ソースコードファイルの不具合報告数とソースコードの品質にはどのような相関がありますか? • RQ2 ソースコードの品質が低いファイルでは、問題を解決するためにどれくらいの開発期間が必要ですか? • RQ3 ファイルのコード品質は、時間内に問題を解決する予測可能性とどの程度関係しているか?
  13. 5 結果 コードの品質と問題数( RQ1) コード品質がファイルの不具合数に大きな影響を与えることがわかりました。アラートコードは 健全なコードの 15 倍の Jira 欠陥が報告されることがわかります。

    コード品質と開発期間( RQ2) コード品質が開発時間に大きな影響を与えることがわかりました。健全なコードの開発時間と比較して、アラート カテゴリでは平均で124%の開発時間が必要である ことがわかります。 コード品質と予測可能なタスク 完了(RQ3) 低品質コードにおける開発時間は 著しく予測性が低いことがわかります。アラートカテゴリの最大開発時間は、 健全なコードの最大開発時間の 9 倍。
  14. 6 ディスカッション RQ1 の結果:15 倍の欠陥 • コストの増加(米国だけでも 年間約2兆8400億ドル) • 予定外の作業につながり、

    コスト超過につながる • 製品の競争力を維持するための 新機能を実装する時間が少なくなる RQ2の結果:市場投入までの時間が必要な時間の 2倍以上 • ますます減少する労働力の中から高いスキルを持つ開発者を採用しなければならない RQ3の結果:最大で9倍の開発期間を要する • 不正確な工数見積もり • 管理者のイライラやストレスレベルが増加 持続可能なソフトウェア産業を構築するためには、コード品質が重要。
  15. 7 結論と今後の課題 結論 コード品質が市場投入までの時間だけでなく、ソフトウェアの欠陥という形で製品の外部品質の両方に大きな影 響を与えることがわかりました。 今後の課題 私たちは、作者の経験が、低品質のコードに対する変更の予測可能性に影響を与える要因になるのではないか と考えています。いくつかの研究は、その関連性を示唆しているようです。このような関係が存在するならば、 低 品質なコードに関連する主要な人材の依存性などの組織的なリスク

    を強調することで、業界の役に立つでしょ う。 私たちは、計画された作業(機能、改善)と計画されていない作業(欠陥解決)の開発時間を分離するフォロー アップ調査を実施することを計画しています。このような調査により、 低品質なコードではなぜ予測不可能性が高 くなるのかについて、さらなる洞察が得られるでしょう。