Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

『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. 論文について タイトル 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
  2. 2.1 Code Healthによるコード品質の測定 Code Healthは、CodeSceneツールで自動的に計算される独 自の指標です。 この指標は、10.0(品質の高い健全なコード)から 1.0(品質の低 い不健全なコード)までの数値スコアで表わされます。 CodeSceneは、Code

    Healthのスコアに基づいて、各モジュー ルを健全、警告、アラートのいずれかに分類し、それに応じて コードベースを可視化します コードベースのCode Health可視化例
  3. 4 方法 この研究は、リポジトリマイニングの経験的標準のドラフト版に準拠しています。 選択されたリポジトリは、ソースコード解析に CodeSceneを使用している39の独自ソフトウェア開発プロジェクト です。 リサーチ クエスチョン • RQ1

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

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

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

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