コードを読まずに品質を測定する
ではコード品質を測定する方法を見ていきましょう。実はコードの中身を見なくてもコードの品質は測定できます。まずはそのような測定方法を紹介します。
例えば、あなたがチームの開発速度の低下を感じているとしましょう。大量の重複コード(クローンコード)があったり、何万行も続く長大関数があったり……コードの品質が落ちてくると、コードの変更・追加に予想以上の時間がかかるようになります。コード品質は開発速度と相関があるのです。そこで開発速度を測定します。
では、「開発速度が遅くなっているなぁ」と課題を感じるあなたは、どんな指標を使って開発速度を測定しましょうか? 一つピンとくるのは、『LeanとDevOpsの科学』で提唱されている4つのKey Metrics(DevOps Four Keys)のうちの一つ、「変更のリードタイム」です。
- 変更のリードタイム:first commitからそのcommitが本番にリリースされるまでの時間
他には、アジャイルチームのパフォーマンスを向上させるための定量化とデータ収集法を紹介した書籍『アジャイルメトリクス』にある「手戻り数」や「手戻り率」も開発速度を測定するのに使えそうです。
- 手戻り数:プロジェクト管理システムにおいて、プロセスの前段に戻ってきたタスクの数。例えば、あるタスクを「完了」に移動したが、実際にはバグがあった場合、タスクは前段に戻され「手戻り」となる。
- 手戻り率:プロジェクト管理システムにおいて、プロセスの前段に戻ってきたタスクの割合。タスクが戻った回数をB、タスクが進んだ回数をFとすると、手戻り率は (B / (F + B)) * 100 で表せる。
これらの指標は、一度数値化して終わりにするのではなく、定期的に数値化して時系列で並べることで、数値の傾向を見ることができます。このデータをどう使うかはあなた次第です。メンバーが常に見るところに提示してコード品質への意識改革を図るのもいいでしょう。経営陣にこの数値を提示し、改善のための予算をもらうということも考えられます。
筆者が若手のころは、まだまだ「20230831_final2.zip」などというファイル名のzipでソースコードを固めて管理……などという恐ろしい現場もありました。今はソースコード管理システムやプロジェクト管理システムなど、支援システムが豊富で、そこにはコード以外にも様々な有益な情報が保存されています。これを活用しない手はありません。上記の「変更のリードタイム」や「手戻り率」を調べて開発速度、つまりはコード品質を測定するのもその一例です。
この記事は参考になりましたか?
- 実例で学ぶ、コード品質の高め方連載記事一覧
-
- どうやってコード品質を上げるのか? 実例で学ぶリファクタリング
- どうやってコード品質を測るのか? ソースコード品質の測定指標とその活用
- なぜ今、コード品質が求められるのか? ChatGPT時代を生き残るためのエンジニアの基礎ス...
- この記事の著者
-
浅原 明広(株式会社Sider)(アサハラ アキヒロ)
日本IBM、株式会社フィックスターズなどで、半導体製造装置や医療画像機器など、大小様々な組み込み製品向けのソフトウェア開発プロジェクトに従事。 現在、フィックスターズ子会社の株式会社Sider にて、ソースコードのコピペ管理ツール『CloneTracker』を開発・提供。最新のツールや方法論を用いた、ソフトウェア開発者体験の向上に強い関心を持つ。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
千葉 滋(東京大学情報理工学系研究科教授)(チバ シゲル)
東京大学 情報理工学系研究科 創造情報学専攻 教授
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
