メインコンテンツへスキップ

リードタイム内訳とは

リードタイム内訳は、総サイクルタイムをコーディング時間、ピックアップ時間、レビュー時間の3つの主要なフェーズに分解することで、開発プロセスの詳細なビューを提供します。これにより、ワークフローのどこでボトルネックが発生しているかを正確に特定できます。

計算方法

最初のコミットから PR のマージまで、開発プロセスの各フェーズに費やされた時間を自動的にトラッキングします。 トラッキング対象:
  • コーディング時間: アクティブな開発時間(最初のコミットから最後のコミットまで)
  • ピックアップ時間: 最後のコミットから PR の作成までの時間
  • レビュー時間: PR の作成からマージまでの時間
カウントしないもの:
  • 最初のコミット前の時間(計画、設計)
  • マージ後の時間(デプロイなど)
  • 失敗またはキャンセルされた PR
計算方法:
コーディング時間 = (最後のコミット時刻) - (最初のコミット時刻)
ピックアップ時間 = (PR オープン時刻) - (最後のコミット時刻)  
レビュー時間 = (PR クローズ時刻) - (PR オープン時刻)
外れ値をフィルタリングして典型的なパフォーマンスを表示するために、各フェーズの75パーセンタイル(P75)を使用します。

重要な理由

時間がどこに費やされているかを理解することで、プロセスの適切な部分を最適化できます:
  • コーディング時間: 開発効率を示す
  • ピックアップ時間: ワークフローのボトルネックを明らかにする
  • レビュー時間: レビュープロセスの有効性を示す

改善方法

コーディング時間の削減

  • 明確な要件: 開発者が何を作るかを理解するようにする
  • 機能の小分け: 大きな変更を管理しやすい部分に分割する
  • ペアプログラミング: 複雑な問題をより速く解決するためにコラボレーションする
  • コードの再利用: 既存のパターンとコンポーネントを活用する

ピックアップ時間の削減

  • 即時 PR 作成: コードを完成させたらすぐに PR を作成する
  • ワークフロー自動化: PR 作成を効率化するためのツールを使用する
  • 完了の明確な定義: コードが準備できたタイミングを正確に知る
  • コンテキストスイッチの削減: 1つのタスクの完了に集中する

レビュー時間の削減

  • レビューガイドライン: レビュアーに明確な期待を設定する
  • 自動チェック: レビュー前に問題を検出するためのツールを使用する
  • レビューのローテーション: チーム全体でレビューの作業負荷を分散する
  • 迅速な応答: レビューコメントに迅速に対応する

一般的なボトルネック

コーディング時間

  • 不明確な要件: 開発者が何を作るかわからない
  • 複雑な機能: 大きすぎるまたは複雑すぎる変更
  • 技術的負債: 既存のコードの問題を回避して作業する
  • 依存関係: 他のコンポーネントやサービスを待っている

ピックアップ時間

  • ワークフローの非効率: プロセスを遅くする手動ステップ
  • コンテキストスイッチ: 複数のタスクを切り替える
  • 自動化の欠如: 手動での PR 作成とセットアップ

レビュー時間

  • 大きな PR: 素早くレビューするには大きすぎる変更
  • レビュアーの可用性: レビューできる人が不十分
  • 不明確な変更: 理解しにくい PR
  • レビューのバックログ: レビューを待っている PR が多すぎる