第45話「DORAの四つの軸、白瀬から借りる本」
この物語はフィクションであり、登場する人物、団体、地名、企業名等はすべて架空のものです。実在のいかなる存在とも関係ありません。
八月の第四週の月曜日、朝十時前。ヨキエル株式会社の三階、チームAのフロア。月曜日の朝のフロアの空気は、いつもより軽くざわついていた。
LT登壇から二日。土曜日の夜のあと、僕は日曜日に半日寝て、残り半日で私物のMacBookでLT原稿v0.9をv1.0に整え直した。月曜の朝、会社に出てすぐ、v1.0になったLT原稿のPDFを社内Slackのプライベートチャンネル「6人室」に共有した。
葉山さんから「お、v1.0来た」、丸山くんから「お、桐谷さんはえーっす」、杉本さんから「ありがとうございます。後で拝見します」、アユシュくんから「Good, Soota. Let me know if you tweak the English again」、黒木から「うん」と、それぞれの温度のレスが戻ってきた。
月曜日の朝、僕は自分の席につく前に給湯室でホットコーヒーを紙コップになかばほど注いだ。森山くんが給湯室の入り口で、軽く頭を下げた。
「桐谷さん、おはようございます」
「おはよう、森山くん」
「LT、お疲れさまでした」
「Slack、見ました。v1.0」
「ありがとう」
「私はまだLTできる気がしないですけど、v1.0の最後の英語の三行、いいですね」
「あれはアユシュくんの貢献」
森山くんは湯沸かしポットの前で、自分のマグカップにお湯を注いだ。マグカップには、関西の大学の研究室のロゴが薄く入っていた。
……森山くんもたぶん、半径3メートルの自分の観察を半年後か一年後に始めるんだろう。
胸の奥で言った。
森山くんの湯沸かしポットの押し方は、入社当初よりも慣れて軽くなっていた。その慣れ方が、二年目の僕の後輩の姿だった。
席に戻ってMacBookを開いた。社内SlackのチームAのチャンネルに、白瀬さんからダイレクトメッセージが一通来ていた。
「桐谷くん、ちょっといい?」
「はい、空いてます」
「会議室十時十五分、ふじ」
「了解」
白瀬さんからのDMはいつも短い。一文か、二文。ただその短さは、たぶん白瀬さんの東北出身の確かさの形だった。
十時十五分。三階の奥のいちばん小さい会議室「ふじ」。四人がけの白いテーブルと、四脚の黒い椅子。白瀬さんはもう入って、座っていた。
「桐谷くん、お疲れ」
「お疲れさまです」
白瀬さんはMacBook Proを机の上に置いていた。その脇に、一冊の紙の本が置かれている。タイトルは、こちらからはまだ読めなかった。
「LT、お疲れ。動画、葉山さんから回ってきた」
「葉山さん、白瀬さんにも共有してくれたのですね」
「うん。同期じゃない私にも。葉山さん、いつもよく見てる。五分十二秒。まあ、その程度の超過は誤差。内容、いい構成だった。特に二枚目、観察を土台に置いた順番。あれ、桐谷くん自分で考えた?」
「葉山さんが提案してくれました」
「葉山さん、いま副業で東京の友達のWebサイトのリニューアルやってるって聞いた」
「はい。ご存じだったのですね」
「うん。ちらっと。副業の方で、葉山さん、目が引き上がってる感じがする」
「僕もそう感じてます」
白瀬さんは口の端でほんの少し頷いた。
白瀬さんの「目が引き上がってる」という表現は、僕がここ数ヶ月薄く感じていた葉山さんの肩の角度の変化の、もう一段上の抽象だった。
葉山さんの「ぴくっと」の回数のグラフは、六月下旬の黒木のお祝いの夜、いったん増え始めていた。ただ八月初めの副業のススメ勉強会の夜から、たぶん「ぴくっと」のグラフは別の方向に目線を上げ始めていた。その方向は、白瀬さんがいま「目が引き上がってる」と書いたその方向と、ほぼ同じだった。
「で、桐谷くん。今日、別の話していい?」
「はい」
白瀬さんは机の上の紙の本を、僕のほうに押し出した。表紙が目に入った。
白い背景に黒い文字、太いゴシック。
「『LeanとDevOpsの科学』」
その下に小さくサブタイトル。
「テクノロジーの戦略的活用が組織変革を加速する」
著者名の欧文と、訳者名の和文。
「これ、読んでみて。DORAメトリクスの原書の訳本」
「DORAメトリクス。えっと、聞いたことはあります。中身はまだ」
「最近Qiitaの記事が流れてきて、半分興味ありました」
「いいタイミング」
白瀬さんは口の端で頷いた。
「私、これ二年前に岡山の友人から薦められて、読んだ。前の職場の東北の同僚で、いま岡山に転職してる。東北、岡山、いまの私の港川市。それぞれのIT中小で、たぶん似たような悩みがある」
「悩み、というのは」
「リードタイム、デプロイ頻度、変更失敗率、平均復旧時間。この四つの指標、知ってる人と知らない人で、議論の地形がちょっと違う」
「議論の、地形」
白瀬さんは机の上の本の表紙を、人差し指でなぞった。
その表紙は、角が擦り切れていた。ページの何枚かは端が小さく折られ、栞の代わりに、コンビニのレシートが一枚、半分だけ覗いている。
「桐谷くん、先月の全社会議、覚えてる?」
「はい」
「あれ、ずっと机の中に置いてた」
「机の中に」
「うん。うちのチームで、自分の手の届く範囲で、形にしたい」
……先月の全社会議。
その日の遠野CTOの言葉をもう一度撫でた。
「品質を上げる。開発速度を上げる。エンジニアが長く働ける組織を作る」
遠野CTOが壇上で短く並べた、三つの方針。開発速度の章で、リードタイムの計測とデプロイ頻度の向上が続けて置かれていた。
あの言葉は、壇上に置かれたままにもなり得た。誰かが机の中に置いてから、自分の手の届く範囲で組み直すこともできた。白瀬さんはたぶん後者の側で、本の表紙を人差し指でなぞっていた。
「桐谷くん、これ読んで、うちのチームのリードタイムを今度測ってみない? 無理はしなくていい」
「えっと」
「桐谷くんのLTの観察の『土台・軸・結論』のピラミッドの、軸のところに、技術メトリクスの軸をもう一段足せると思った。半径3メートルの観察に、もう一段リードタイムやデプロイ頻度の軸を足す」
「軸を足す」
「うん。半径3メートルの人と仕事の観察と、リードタイムの観察。別々の温度だけど、たぶん同じ半径の向こう側に、ちゃんとある」
「同じ半径の、向こう側」
「ただ、ひとつだけ。リードタイムを縮めるのと、本番の安定。両方見る目線が要る。速くするだけだと本番でつまずく。本番だけ見ると速くならない」
「両輪の片側だけ、には、ならない」
白瀬さんはそれだけ言って、本を机の上に戻した。
……白瀬さん、また別の方向を指している。
内心でつぶやいた。
白瀬さんはいつも答えを置かなかった。答えの代わりに本を置き、リードタイムという単語を置き、それから「うちのチームで今度測ってみない?」という問いを置いた。その問いの形はたぶん、春先の白瀬さんの「ここはなぜこの方針?」という質問のもう一段上のレイヤーだった。
「やります。測るところから始めます」
「うん。来週からでいい」
白瀬さんは机の上の本を、もう一度僕のほうに押し出した。
「貸す。私、二回読んだ。三回目はいつでもまた借りる」
「ありがとうございます」
僕はその本を両手で受け取った。ハードカバーではなく、ソフトカバーの四百ページくらいの厚さ。表紙の白い背景のゴシックの黒文字は、たぶん五十よりは軽いフォントサイズで置かれていた。その軽さは、LT前夜の寮ラウンジのタイトルスライドの、五十と五十二のちょうど中間くらいの軽さだった。
その日の夜、寮の自分の部屋。机の電気をつけて、僕は『LeanとDevOpsの科学』の最初のページを開いた。
序文。第1章「迅速な行動」。第2章「組織文化を測定する」。第3章「リーンマネジメントと継続的デリバリーのプラクティス」。第4章「技術プラクティス」。
目次は、ぜんぶで十六章。付録A、B、C、D。全部で四百ページ。
最初の序文を読んだ。中にこう書いてあった。
「ソフトウェアデリバリーのパフォーマンスは、組織の収益、顧客満足度、市場シェア、生産性にも有意な影響を与える」
……組織の収益、顧客満足度、市場シェア、生産性。
胸の内でそれを確かめた。
五月下旬の諏訪マネージャーの2年目の1on1で、僕は初めて自分のチームの年間2億の売上と、解約率3%と、顧客満足度80%の数字を見せてもらった。
あの日、僕は「両輪というのは、こういうことか」とノートに書いた。
いま序文の「収益、顧客満足度、市場シェア、生産性」の四つの単語は、たぶん五月下旬の諏訪マネージャーの数字の、もう一段上の抽象のレイヤーだった。
諏訪マネージャーは、僕の書くコードが数字につながると言った。この本の序文は、書くコードのリードタイム、デプロイ頻度、変更失敗率、平均復旧時間の四つが、収益、顧客満足度、市場シェア、生産性の四つにつながると書いていた。二つの四つは、ちょうど両輪の別々の両端だった。
……諏訪さんの年間2億の数字と白瀬さんのリードタイムの軸は、たぶん本来つながっている。
胸の奥でつぶやいた。
その「つながり」の輪郭はまだぼやけていた。ただ今夜、僕の机の電気の下で、序文の引用の向こう側にその輪郭がそっと置かれ始めていた。
火曜日の朝。会社のいちばん奥の休憩スペースで、僕は午前中の十時半に十五分だけ本を読み進めていた。
第1章「迅速な行動」を、十ページくらい読んだ。
リードタイムというのは、コードがコミットされてから本番にリリースされるまでの時間。デプロイ頻度というのは、本番にデプロイされる頻度。変更失敗率というのは、本番への変更のうち失敗(ロールバックや緊急修正を要する)の割合。平均復旧時間というのは、本番障害が起きてから復旧するまでの平均時間。
四つとも、概念はシンプルだった。ただ僕のチームAでは、四つともまだ計測されていなかった。
……まずリードタイムから。
内心で言った。
白瀬さんが最初に「リードタイムを今度測ってみない?」と置いたのは、たぶん四つの中でいちばん足場が置きやすい最初の指標だった。
休憩スペースの丸テーブルの向かい側に、丸山くんが缶コーヒーを片手に座った。
「桐谷さん休憩っすか」
「うん。ちょっと本、読んでた」
丸山くんは、僕の顔を半秒だけ見て、それから言った。
「桐谷さん、ちょっと根詰めてるっすね。肩、上がってるっす」
「……分かる?」
「分かるっす。トラック長く乗ってると、隣の助手席の人が疲れてるの、座り方で分かるようになるんすよ。荷物と一緒で、人も、傾きで分かるっす」
……僕は、言葉で人を観察する。丸山くんは、体で人を観察する。
胸の内で、そう思った。同じ観察でも、入口が違った。
「お、何の本?」
丸山くんがこちらに首を傾けた。僕は本の表紙を、丸山くんのほうに向けた。
「『LeanとDevOpsの科学』」
「お、なんか強そうなタイトルっすね。LeanとDevOps両方入ってるの、ちょっと欲張り感ある。うちの倉庫にトヨタ生産方式の書籍が何冊かあって、Leanってその流れっすよね。倉庫のピッキングの流れをLeanで考えるの、けっこう見た。DevOpsのほうはまだよく知らないっす」
「僕もまだ」
「お、ちょうどいいっすね」
丸山くんは缶コーヒーのプルタブを、ぱきりと開けた。
「で、それ何のために読むんすか」
「うちのチームのリードタイム、白瀬さんと今度測る。コードがコミットされてから、本番にリリースされるまでの時間。うちのチーム、いまいくつくらいかたぶん分かってない。四日か、五日か、もっと長いか」
「感覚値しか分からないっすね。測ったらちゃんとした数字、出るっすか」
「出る、たぶん」
「いいっすね」
丸山くんは缶コーヒーをひとくち飲んだ。
「で、桐谷さん、いまその本読んでて、楽しいっすか?」
僕はそれを確かめた。
「うん、たぶん楽しい」
「それいちばん大事っす。仕事の中に楽しいがある人、いつも一段強い。倉庫の頃のベテランのドライバー、皆自分のルートの中に楽しいを持ってた」
丸山くんは缶コーヒーをもうひとくち飲んだ。
……丸山くん、運送業の引き出しをまた開けた。
胸の内でつぶやいた。
丸山くんの缶コーヒーのひとくちの合間に、運送業時代のベテランドライバーのルートの楽しいの引き出しが、軽く開いていた。その引き出しの開け方が、たぶんLT前夜の寮ラウンジの空中の半径3メートルの円と、ちょうど同じ方向の丸山くんの軸だった。
丸山くんが缶コーヒーを片手に席に戻っていったあと、入れ替わるように立花先輩が休憩スペースに入ってきた。ペットボトルのお茶を片手に自販機の前でひとつ伸びをして、それから僕のテーブルの脇に立ち止まった。
「桐谷くん、お疲れさま。なに読んでるの?」
「これ、白瀬さんに借りた本です」
僕は表紙を立花先輩のほうに向けた。立花先輩は表紙を一瞬だけ眺めて、口の端で軽く笑った。
「『LeanとDevOpsの科学』。ああ、DORAのやつね」
「ご存じなのですね」
「ご存じというか、まあ、社内勉強会の資料でちらっと見たことある。で、桐谷くんいま、なんでそれ読んでるの?」
「白瀬さんと、来週からチームのリードタイム測ろうって話で」
立花先輩はペットボトルのキャップを軽く回して、お茶をひとくち飲んだ。それから、いつもの軽い角度の声で続けた。
「うーん、うちのチームはそういうのいらない気がするけどな。リードタイムとか、デプロイ頻度とか、そういう細かい指標、立ち上がりの早いベンチャーがやるやつでしょ? うちは受託の保守チームだから、お客様の要望ベースでリリース日が決まる。リードタイム測ったって、自分らで縮められるところ、たぶんそんなにないと思うよ」
「そうなのですね」
「悪い意味じゃなくて、効くチームと効かないチームがあるから。うちはたぶん効かない側。まあ、白瀬さんがやるって言うならやればいいけど。やりすぎないように。桐谷くん、根詰めるタイプだから」
「ありがとうございます」
立花先輩はもうひとくちお茶を飲んで、それから「じゃ、また」と軽く手を上げて、休憩スペースを出ていった。
……立花先輩、悪く言ったわけじゃない。
胸の奥でつぶやいた。
たぶん本当に、立花先輩は僕の根詰める癖を気にかけてくれていた。「やりすぎないで」のひと言には、いつもの立花先輩の合いの手の調子がちゃんと混ざっていた。
ただ、その奥のほうに、別のものがうっすら置かれていた。
……「うちのチームはそんなのいらない」。
その一行を、僕は内心で一瞬だけ転がしてみた。
反論するつもりはなかった。立花先輩の経験から見て、たぶんそれは本当に「いらない」と感じる種類の話だった。指標を測るというのは、いまの仕事の運び方にひと手間を足す作業で、その手間に見合うかどうかは現場の人がいちばんよく分かる。
ただ。
立花先輩の「いらない」の奥のほうにあるのは、たぶん「測らないことの居心地のよさ」のほうだった。測らないでいれば、現状を変えなくていい。変えなくていい現状は、たぶん立花先輩にとっていまの自分の手柄の出し方とちょうど合っていた。あの四月の朝礼で立花先輩が古川先輩の仕様変更の差分を自分のシニアの手柄として置いた、あの軽い手つきと同じ地金から「いらない」が出ていた。
……これは、たぶん「放置する優しさ」の延長だ。
胸の内でつぶやいた。
立花先輩は、僕を心配して止めてくれた。けれど、その心配の向きは少しだけ、自分の現状を揺らさない方向にも傾いていた。一年前の僕なら、たぶんその傾きに気づかずに「はい」と引き下がっていた。今日の僕は胸の奥で転がして、ノートの隅にそっと一行置く側に立ち位置を移した。
反論はしない。けれど、しまわない。
立花先輩のお茶のペットボトルが、休憩スペースの自販機の脇のゴミ箱の中で、ぱきっと薄い音を立てて潰れた。
木曜日の夕方。チームAのふじ会議室、十五時半。白瀬さんと二人。MacBookを二台、机の上に開いていた。
「リードタイムの計測、まずどこから?」
白瀬さんが聞いた。
「うちのチームのGitリポジトリ、二つ。コミットのタイムスタンプと本番リリースのタイムスタンプ、差分を取れます」
「本番リリースのタイムスタンプ、いまどこに置いてある?」
「えっと、リリースノート、Confluenceに書いてる。その日付」
「Confluenceのリリースノートのページの作成日時、たぶん半時間以内のずれ。リリース終わったあとに書く人で、半時間くらいずれる」
「それ、データの精度に半時間の誤差が入りますね」
「うん。最初の計測はそれで十分。リードタイムが四日か五日か十日かを見たいなら、半時間の誤差はたぶん影響は軽い。精度で決め込まない。粗くていい。粗いまま、まず可視化。Confluenceにダッシュボード一枚、作る」
「ダッシュボード。グラフは過去三ヶ月分。それで、桐谷くんの計測スクリプトをPythonで、一週間書いてみて」
白瀬さんは机の上で、MacBook Proの画面を僕のほうに少し傾けた。
「これ、いま私が書いた雛形」
画面にPythonの簡単なスクリプトが見えていた。二十行くらい。
Gitのログからコミットの日時を取って、CSVに書き出す。ConfluenceのAPIからリリースノートの作成日時を取って、CSVに書き出す。二つのCSVを結合して、リードタイムの日数を計算する。
「これ、たたき台。桐谷くん、これ見ながら自分の足場で書き直す形でいい。自分で書き直すと、リードタイムの定義が頭の中にちゃんと立つ」
「白瀬さん、たたき台書いてくれてありがとうございます」
「いや、たたき台はたぶん五分くらい。あとの本物の作業は、桐谷くんの書き直し」
白瀬さんは口の端で軽く頷いた。
その週の木曜日から、金曜日、土曜日、日曜日、月曜日、火曜日、水曜日まで、約一週間。僕は夕方の定時のあとと土日の午後を削って、Pythonの計測スクリプトを書き直していた。
白瀬さんの二十行のたたき台は、最初に見たときからぐっと丁寧な設計図だった。ただ書き直しの過程で、僕は自分の半径3メートルの観察の続きとして、二つの変更を足した。
ひとつ目。「リリースノート」ではなく、「Gitのタグ」を本番リリースのタイムスタンプの起点にする。Confluenceのリリースノートの半時間の誤差は見えていたけれど、Gitのタグならぴったりゼロ秒の誤差で置けると気づいた。
ふたつ目。リードタイムを「コミット」から「本番リリース」までの時間で測るのではなく、「Pull Requestマージ」から「本番リリース」までの時間で測る。PRマージから本番リリースまでの時間のほうが、たぶん僕のチームのリードタイムの本来の輪郭に近かった。
二つの変更は、たぶん白瀬さんのたたき台の二十行の最初の軸を、もう一段磨いた形だった。
月曜日の夕方、白瀬さんに書き直したスクリプトを見せた。
「お」
白瀬さんは画面を上から下まで目で追った。
「Gitのタグ、いいね。Confluenceの半時間誤差、ちゃんと除いた。PRマージから本番までの時間、これ桐谷くんの判断?」
「はい」
「いい判断。これで、たぶんリードタイムの本物の輪郭が見える。ダッシュボード、Confluenceに作るところは来週でいい?」
「はい」
白瀬さんはそれだけ言って、僕のMacBookの画面をもう一度確かめてから、自分の席に戻っていった。
……白瀬さん、二十行のたたき台の向こうで待っていた。
内心でつぶやいた。
白瀬さんのたたき台の五分は、たぶん僕の書き直しの一週間の足場の最初の一片だった。白瀬さんは自分でぜんぶ書ききらなかった。書ききらないで、僕の書き直しを待っていた。その待ち方は、春先の白瀬さんの設計レビューの質問の形とちょうど同じだった。白瀬さんの信頼の置き方は、もう一段上のレイヤーでまた置き直されていた。
翌週の月曜日、九月の第一週の最初の日。Confluenceにリードタイムのダッシュボードの一枚目のページが置かれた。
過去三ヶ月の、PRマージから本番リリースまでの日数のグラフ。縦軸が日数、横軸が週。
ぱっと見て、平均五日半。ばらつきは二日から十日まで、幅広かった。いちばん長い十日は八月の第二週、いちばん短い二日は七月の第四週。
……五日半。
胸の内で言った。
DORAメトリクスの本の第6章に、こう書いてあった。
「ハイパフォーマンス組織はリードタイム、一日以内」
「ミドルパフォーマンス組織はリードタイム、一日から一週間」
「ローパフォーマンス組織はリードタイム、一週間から一ヶ月」
うちのチームはたぶん、ミドルパフォーマンスの上のほうの輪郭の中にいた。ハイパフォーマンスではない。ローパフォーマンスでもない。ちょうど真ん中の上で、ばらつき二日から十日。
ただ、僕の目はその「二日から十日」の、十日のほうに引っかかっていた。
平均の五日半は、わりと落ち着いて見られた。けれど十日の棒の高さだけは、見ていて少し落ち着かなかった。ばらつきが大きいということは、リリースのたびに何かが安定していないということだ。その不安定の正体は、数字の上ではまだ顔を見せていなかった。たぶんその十日の中のどれかに、僕自身が関わったリリースも混じっている。
五月に諏訪さんが見せてくれた数字は、外から会社を見る数字だった。いま僕が出したこの数字は、自分たちの内側の、手の動かし方そのものの数字だった。その内側のばらつきの大きさが、なぜか僕の奥のところに薄い不安を置いた。平均だけを見て安心していい数字ではない気がした。
ダッシュボードのページのいちばん下に、僕はコメントを一行置いた。
「過去3ヶ月のリードタイム平均5.5日、ばらつき2〜10日、ミドルパフォーマンス上位」
白瀬さんに、ConfluenceのページのリンクをSlackで共有した。即レスが来た。
「いいね」
「これ、諏訪さんにも共有していい? 私から共有する」
「お願いします」
その日の午後、四時。諏訪マネージャーから、Slackのダイレクトメッセージ。
「桐谷くん、Confluenceのリードタイムのダッシュボード、見ました」
「これ、いいね」
「明日の定例のあと、五分話したい。いい?」
「はい」
翌日火曜日の夕方、定例ミーティングのあと、諏訪マネージャーが僕の席のななめ後ろに近づいてきた。
「桐谷くん、ちょっと。すぐそこの立ち話でいいんだけど」
「はい」
諏訪マネージャーは、ホワイトボードの脇の丸テーブルのところに立った。
「Confluenceの、リードタイム。平均五日半、ばらつき二日から十日。これ、たぶん今月の私の上司への月次報告に入れたい。今月、初めてうちのチームのリードタイムが定量で出せる」
「定量」
「うん。これまで定性で『なるべく早くリリースしてる』と書いてた。『なるべく早く』というのは、上の人は判断できない。感覚値だから。数字が出ると、上の人も判断できるようになる。これ、桐谷くんの二年目のいちばんいい貢献。白瀬さんから聞いた。たたき台の向こうで、桐谷くんがPRマージから本番リリースに書き直した、と」
「白瀬さんが言ってくれた」
「うん。私と白瀬さんと二人で、桐谷くんの書き直しの判断をちゃんと評価する」
「ありがとうございます」
諏訪マネージャーは口の端で軽く頷いた。
「桐谷くん、観点ひとつ足してもいい? リードタイム平均五日半、これを来期、半分の二日半まで下げたいと、私は思ってる」
「二日半」
「うん。ハイパフォーマンスの一日以内には、まだ届かない。ただ、ミドルパフォーマンスの上のほうの上まで、一段上げたい。これ来期、たぶん桐谷くんの観点がいちばん貢献できる」
「はい」
「で、もう一個足したい。リードタイムだけじゃなくて、変更失敗率も次は測りたい。本番リリースの何%が、ロールバックもしくは緊急修正を要するか」
「変更失敗率」
「私の感覚で、たぶん五%から十%。これ定量で出すと、たぶん思っているより高い。九月の初めのリリースで、たぶん私のチームの本番障害がもう一回ある」
諏訪マネージャーは間を置いた。その間は、たぶん僕の知らない何かの確かめだった。
……九月、近いもう一回あると、諏訪さんが置いた。
胸の奥でつぶやいた。
九月の初めのリリースというのは、たぶん僕の関わっている機能の近いリリースのことだった。
諏訪マネージャーは、定量で変更失敗率を測るということを僕のほうに軽く置いていた。ただその「近いもう一回ある」の間は、たぶんもう別の形で僕のほうに降りていた。それはたぶんなかばは予感で、もうなかばは注意だった。
「桐谷くん、リードタイム計測の流れ、変更失敗率にも応用できる?」
「はい。まず定義を決めて、計測しに行きます」
「うん。今月のリリースから足してみよう」
「はい」
諏訪マネージャーは軽く頭を下げた。
「ありがとう、桐谷くん」
「いえ」
「両輪」
諏訪マネージャーはそれだけつぶやいた。
「両輪、ですか」
「うん。技術のリードタイム、変更失敗率、平均復旧時間、デプロイ頻度の四つと、事業の年間2億の売上、解約率、顧客満足度の三つ。四つの軸と三つの軸が、両輪」
「両輪」
「桐谷くん、たぶん、その両輪の片側、四つの軸のところに、いま置かれている。これ、来期もう一段深く置く」
「はい」
諏訪マネージャーは口の端で軽く頷いて、自分の席のほうへ戻っていった。
その日の夜、寮の自分の部屋。机の電気をつけて、ノートを開いた。
四月一日の最初の一行「二年目、仕事の質を見る」を、今日も一秒だけ見直した。その下に新しい一ページをめくる。
「九月第一週火曜日午後。Confluenceにリードタイムのダッシュボード公開」
書いた。続けて。
「平均五日半、ばらつき二日から十日。ミドルパフォーマンス上位」
「白瀬さんの二十行のたたき台。Gitタグ、PRマージから本番リリースに書き直し」
「諏訪マネージャー、月次報告に定量を入れる。来期二日半まで下げたい」
「変更失敗率、次の軸」
「四つの軸(リードタイム、デプロイ頻度、変更失敗率、平均復旧時間)」
「三つの軸(年間2億、解約率、顧客満足度)」
「四つの軸と三つの軸が、両輪」
書きながら、僕は五月下旬の諏訪マネージャーのノートのページを思い出した。あの日、僕はノートにこう書いた。
「両輪というのは、こういうことか」
いま僕はノートの新しいページに、もう一行足した。
「両輪というのはこういうことかの、もう一段上の輪郭が薄く見え始めた」
書きながら、僕はその一行の「もう一段上の輪郭」の角度を確かめた。
その輪郭は、たぶんまだぼやけていた。ただ、ぼやけ方が八月のはじめと九月のはじめで違っていた。その外側に、リードタイムと変更失敗率とデプロイ頻度と平均復旧時間の四つの軸が、うっすら四本並んで置かれ始めていた。その四本の軸の向こう側に、まだ見えていない年間2億の数字と、解約率3%と、顧客満足度80%の三本の軸が、ちらりともう一度見えていた。
四つの軸を、四月末から手元に置いている地図の上にそっと載せてみた。リードタイムも変更失敗率も、運用と管理の区画のあたりにちょうど収まった。白瀬さんが渡してくれた一冊は、地図のその区画を、初めて自分の足で歩かせてくれた。
最後にもう一行書いた。
「観察の軸が、技術メトリクスにも広がる」
「両輪、両輪、両輪」
「先月の全社会議。遠野CTOの『品質、速度、組織』。白瀬さんが机の中に置いていたもの。私もここに置く」
書いた。書いてから、ボールペンを机の上に置いた。
窓の外で、九月の初めの夜の風が、葉桜の青い葉の、湿気の抜け始めた空気をそっと撫でていた。
……九月、近いもう一回ある。
胸の奥で、もう一度諏訪マネージャーのあの間を思い出した。その間は、今夜のノートの新しいページの四つの軸の向こう側に、もうそっと置かれていた。
ノートを閉じ、机の電気を消し、布団に入って目を閉じた。
四本の軸の輪郭は、まだぼやけていた。ぼやけたまま、僕は眠りに落ちていった。




