SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

実例で学ぶ、コード品質の高め方

どうやってコード品質を測るのか? ソースコード品質の測定指標とその活用

第2回 コード品質の定量的な測定指標を理解しよう

  • X ポスト
  • このエントリーをはてなブックマークに追加

コードを読まずに品質を測定する

 ではコード品質を測定する方法を見ていきましょう。実はコードの中身を見なくてもコードの品質は測定できます。まずはそのような測定方法を紹介します。

 例えば、あなたがチームの開発速度の低下を感じているとしましょう。大量の重複コード(クローンコード)があったり、何万行も続く長大関数があったり……コードの品質が落ちてくると、コードの変更・追加に予想以上の時間がかかるようになります。コード品質は開発速度と相関があるのです。そこで開発速度を測定します。

 では、「開発速度が遅くなっているなぁ」と課題を感じるあなたは、どんな指標を使って開発速度を測定しましょうか? 一つピンとくるのは、『LeanとDevOpsの科学』で提唱されている4つのKey Metrics(DevOps Four Keys)のうちの一つ、「変更のリードタイム」です。

  • 変更のリードタイム:first commitからそのcommitが本番にリリースされるまでの時間

 他には、アジャイルチームのパフォーマンスを向上させるための定量化とデータ収集法を紹介した書籍『アジャイルメトリクス』にある「手戻り数」や「手戻り率」も開発速度を測定するのに使えそうです。

  • 手戻り数:プロジェクト管理システムにおいて、プロセスの前段に戻ってきたタスクの数。例えば、あるタスクを「完了」に移動したが、実際にはバグがあった場合、タスクは前段に戻され「手戻り」となる。
  • 手戻り率:プロジェクト管理システムにおいて、プロセスの前段に戻ってきたタスクの割合。タスクが戻った回数をB、タスクが進んだ回数をFとすると、手戻り率は (B / (F + B)) * 100 で表せる。

 これらの指標は、一度数値化して終わりにするのではなく、定期的に数値化して時系列で並べることで、数値の傾向を見ることができます。このデータをどう使うかはあなた次第です。メンバーが常に見るところに提示してコード品質への意識改革を図るのもいいでしょう。経営陣にこの数値を提示し、改善のための予算をもらうということも考えられます。

図1:手戻り数を可視化した例(『アジャイルメトリクス』より転載)
図1:手戻り数を可視化した例(『アジャイルメトリクス』より転載)

 筆者が若手のころは、まだまだ「20230831_final2.zip」などというファイル名のzipでソースコードを固めて管理……などという恐ろしい現場もありました。今はソースコード管理システムやプロジェクト管理システムなど、支援システムが豊富で、そこにはコード以外にも様々な有益な情報が保存されています。これを活用しない手はありません。上記の「変更のリードタイム」や「手戻り率」を調べて開発速度、つまりはコード品質を測定するのもその一例です。

次のページ
コードを読んで品質を測定する

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
実例で学ぶ、コード品質の高め方連載記事一覧

もっと読む

この記事の著者

浅原 明広(株式会社Sider)(アサハラ アキヒロ)

 日本IBM、株式会社フィックスターズなどで、半導体製造装置や医療画像機器など、大小様々な組み込み製品向けのソフトウェア開発プロジェクトに従事。 現在、フィックスターズ子会社の株式会社Sider にて、ソースコードのコピペ管理ツール『CloneTracker』を開発・提供。最新のツールや方法論を用いた、ソフトウェア開発者体験の向上に強い関心を持つ。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

千葉 滋(東京大学情報理工学系研究科教授)(チバ シゲル)

東京大学 情報理工学系研究科 創造情報学専攻 教授

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/18337 2023/09/22 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング