実際に何時間コード書いたっけ。をClaudeCodeに出してもらおう

エンジニアリング

⚠️Python2or3とClaudeが使えることが前提です。

こんにちわ。

皆様。日々時間を気にして実装してますか?

私はある日「自分は実際どれくらいコードを書いてるんだろう?」と思い立ち、Gitログから作業時間を推定するスクリプトを作りました。

コマンドの中身

手っ取り早くコマンドの中身を説明します。

という感じで「GitHubのメールアドレス」と書かれている部分を自身のGithubに登録したメールアドレスに登録し、

~/.claude/commands/git-total-time.mdに保存してください。

実際に使ってみる

このスクリプトを ~/.claude/commands/git-total-time.md に保存しておけば、Claude Code から次のように呼び出せます。

これで、自分がどれくらいの時間を費やしてコードを書いたのかを、コミットログをベースに推定して表示できます。

普段なんとなく「今日はたくさん書いた気がする」「最近あまり進んでないな」と思っていた感覚を、数値として確認できるのはなかなか新鮮です。

DORAメトリクスとは

DORAメトリクス(DevOps Research and Assessment) は、GoogleのDORAチームが提唱した、ソフトウェア開発チームのパフォーマンスを評価する指標群です。7年以上にわたる研究に基づいており、速度と安定性の2つの視点からチームの成熟度や改善点を測定できます。

4つの主要なメトリクス(Four Key Metrics)

種類指標説明速度(Velocity)デプロイ頻度(Deployment Frequency)本番環境へのリリースの頻度。頻繁なリリースは高効率を示す指標変更のリードタイム(Lead Time for Changes)コードコミットから本番反映までの時間。短いほど開発プロセスが効率的安定性(Stability)変更失敗率(Change Failure Rate)本番リリースで失敗(ロールバックや修正対応など)が発生する割合。低いほど品質が高い復旧時間(Time to Restore Service / MTTR)障害発生から通常稼働に戻るまでの時間。短いほど回復力が高い

これら4つのメトリクスは、開発の速度とリリースの品質は相反しないことを研究が示しており、高パフォーマンスを目指すチームは両面で優れている傾向があります 。

信頼性と背景の資料

DORAメトリクスの起源や目的、研究の背景などは、Google公式のMatterでも紹介されています 。

mablとBigQueryによるDORAメトリクスの改善 | mabl

mablとBigQueryによるDORAメトリクスの改善 | mabl

mablの強化されたBigQuery統合により、ソフトウェアテストの可視性とコラボレーション性が向上しました。これにより、DevOpsを成功に導くことができます。

www.mabl.com

また、GitLab や New Relic のドキュメントにも具体的な活用法や意義が記されています 。

DevOps Research and Assessment (DORA) metrics | GitLab Docs

Gain insights into DevOps performance and identify opportunities for workflow improvements.

docs.gitlab.com

なぜ今回のコマンドに採用しているのか

  1. コミットログを「時間の粒度」として扱いやすい リードタイムの基本は「コードが変更されてからユーザーに届くまでの時間」ですが、個人に置き換えると「コミットが行われるまでの作業時間」と捉えられます。
  2. 実作業を完全に記録するのは難しい 実際には設計・調査・休憩などが混ざりますが、コミットは「区切りの証跡」として残るため、一定の妥当性を持つ時間単位になります。
  3. 改善ポイントを見える化できる 「平均コミット間隔」や「セッションの長さ」を可視化することで、 集中して短いサイクルで進めているのか まとめて一気に作業しているのか

など、自分の開発スタイルを客観的に分析できるのが大きな利点です。

実際の使用例

それでは過去に作ったpotgさんのポートフォリオサイトで使ってみましょう。

過去に作った

potg portfolio

potg portfolio

イラストレーター兼マンガ家のpotgです。SNSで日常や空想をユーモア混じりのタッチで描いています。シンプルな線画から色彩豊かな作品まで、私の絵で少しでも笑顔を届けたいです。

potg.art

のサイトのリポジトリをローカルにクローンしてclaudeコマンドを実行後に /git-total-time を叩いてみます。

こんな感じで出力をしてくれます。2回実行して同じような出力をしてくれました。実際には仕事終わり家に帰ってからの20時〜24時の4時間くらいの間で2週間くらいで実装したので精度的にはあっていそうです。

というわけで

あくまでGithubにリポジトリがあることが前提ですが、結構重宝してます。

ページ数は少なくても演出が多いサイトなど、自身がどれくらいのレベル感なのかどれくらいで実装したっけ?となることが多いので(特に並列してサイトを作っていると)かなり重宝しています。