その他の指標とまとめ
ソースコードの品質を測定するための指標としては上記に挙げたもの以外にも、以下のものがあります。
ユニットテストとカバレッジ
ユニットテストはコードの特定の部分が期待通りに動作するかを確認します。カバレッジは、それらのテストがどれだけの範囲のコードをカバーしているかを数値化したものです。
ユニットテストツール例
カバレッジ測定ツール例
- JaCoCo(Java)
- coverage.py(Python)
- Jest(カバレッジ測定機能も有り)
コードレビュー頻度
他の開発者によるコードのレビューは、新しい視点やフィードバックを得るための強力なプラクティスです。品質を担保するために、コードレビューの頻度をKPI(Key Performance Indicator)にしているチームもあります。
コードレビュー頻度のツール例
GitHubやGitLabのような広く使われているコード管理システムでは、APIを利用してコードレビューの頻度を取得可能です。Code ClimateやPluralsight Flowのように、コードレビューに関する各種情報を可視化してくれるサービスもあります。
性能プロファイリング
アプリケーションの実行時の性能ボトルネックを特定します。
性能プロファイリングのツール例
- VisualVM(Java)
- cProfile(Python)
- Chrome DevTools(Webアプリ)
おわりに
コード品質の測定指標は、ソフトウェア工学において長い間研究されており、様々なものが提唱されています。正直なところ、これをみておけばOK! というような銀の弾丸はありません。メンバーの数、開発期間、開発言語、顧客の素性など、各プロジェクトの状況によって優先すべき項目は変わってきます。自分が直面している課題を明確に捉え、それを解決・改善するために役立つような測定指標を取捨選択し、いくつかの指標を組み合わせて独自の測定方法を構築することになります。
測定結果を共有したい相手によっても、測定方法を変える必要があるかもしれません。
何か問題提起をする際に、利害関係者から「それってあなたの感想ですよね?」などと突っ込まれないよう、ぜひ厳然たる定量的な指標を元に論を展開してください!