LeanとDevOpsの科学の「変更のリードタイム」の定義とはなにか
LeanとDevOpsの科学[Accelerate] テクノロジーの戦略的活用が組織変革を加速する では、開発チームのパフォーマンスを表す指標として「デプロイの頻度」「変更のリードタイム」「変更障害率」「サービス復元時間」を挙げています。
この中でも「変更のリードタイム」はハイパフォーマーに分類される集団においては「1時間未満」とされています。
会社でこの話になったときに、「変更のリードタイム」は「First Commit してからプルリクがマージされるまでの期間」と解釈していたので、「流石に1時間はやばくない?」「1時間未満はなにかの誤植では?」という雰囲気になっていました。そこで著書の原典まで調査することによって、真相を確かめます。
LeanとDevOpsの科学の著者のホームページは https://nicolefv.com/ です。著書ではデータを示すときに繰り返し「本調査研究では」という言葉を用いているので、著者の過去の研究成果を探せば根拠となるリファレンスを探せそうです。
この本が2018年に発売されたことと、DevOps
という単語で grep すると https://nicolefv.com/research で Forsgren, N., J. Humble, G. Kim, N. Kersten, A. Brown (2014 – 2017) State of DevOps Reports.
が見つかります。
この資料の2017年版は https://static1.squarespace.com/static/571faf00c2ea510eafddb70b/t/593801b059cc686cc157a558/1496842711323/2017SODOR+FINAL.pdf です。
このスライドの23ページ目には次の記述があります。
ハイパフォーマーの「変更のリードタイム」が Less than one hour
なので、数字の単位の誤植ではなさそうです。
「変更のリードタイム」の説明が
For the primary application or service you work on, what is your lead time for changes (i.e., how long does it take to go from code commit to code successfully running in production)?
なので、解釈としては「メインのブランチにコードがコミットされてから、それが本番に反映されるまでの期間」と考えるのが正しそうです。
つまり、テストの高速化や CI/CD のパイプラインの整備を行うと良くなる指標です。