羅針盤 技術航海日誌

株式会社羅針盤の技術ブログです

LinearBでDORA Four Keysはどーだ?


この記事は羅針盤 アドベントカレンダー 2024の9日目の記事です。
qiita.com

8日目の記事は AIOとはなにか - 羅針盤 技術航海日誌 でした。


こんにちは、羅針盤の森川です。
DORAはDODAとかクソサムなタイトルでエントリーしてみたわけですがいかがお過ごしでしょうか。

やはりというかなんというか2024年はAIの記述が多いですね。

dora.dev

そんなAIは無視して、例年通りのFour Keysの話です。
時間があったら後日なんか書きます。時間は無(限)。

説明は各所でされていると思うので省略しますが、簡単にいうとソフトウェア開発において、チーム開発における本番デプロイを主眼においた生産性の計測を4つの指標でするといいよ的なやつです。たぶん。

cloud.google.com

DevOpsって単語も最近あまり見なくなりましたね。CentOS並みの出現頻度です。
すみません嘘つきました、apacheくらいでした。

LinearB

今回も(手抜きで)外部サービスの話です。Linear B。

linearb.io

「LinearBのBってなんだ」とか野暮なことは言ってはいけません。
どうやらギリシア・グレタ島で使われていた文字をもじったものっぽい。

有料プランだと色々取れる指標があるっぽいんですが、無料でも簡単な指標は見せてくれます。 本当は人毎のメトリクスとか、アドバイスとか、PR作成時の詳しい人提案とかしてくれるっぽくてそういうのを使ってみたいんですが、貧乏金無なので忍耐です。

アカウント登録するとGitHubリポジトリとの連携画面が出てきます。
今のところ最大5個まで無料で使えます。モノレポの人たちは大歓喜ですね。

設定しても最初は何も表示されませんが、少し待つとデータが表示されるようになります。

悲しみのNo Data

みんなニッコリ カラフルグラフのFour Keys

 ### Cycle Time

左上のCycle Timeはコードを書き始めてからデプロイするまでの時間を表しています
4つのフェーズがあり、それぞれ以下のようになっています。

  • (1) Coding : 初回コミットからプルリクエストが作られるまでの時間
  • (2) Pickup : プルリクエストが作られてからレビューが始まるまでの時間
  • (3) Review : 初回レビューコメントがついてからマージされるまでの時間
  • (4) Deploy : マージされてからデプロイされるまでの時間

このままでは正確な時間にはなりませんが、ある程度の推測はできそうです。
No Configでここまでできるなら時間が無(限)の方々にも優しいのではないでしょうか。

計測を実態に近づけたいなら以下のようなルールを敷くとマシになりそうです。

  • (1) Coding: チケットをさばく際にはブランチを切って、すぐに空コミットを作る
  • (3) Review : レビューを始める前にレビュー開始コメントをする

毎回やってるとルールを強制する立場、される立場の人が双方ともに疲弊しそうですが、
四半期に1週間だけとか、半年に1sprintだけとかにしてイベント事にするとギリいけそうなんですかね?
(私はやりませんが)

ちなみに (4) Deploy はデフォルトでmainブランチマージまでの時間なのでmainベースの開発(GitHub Flow, Trunk base)していると必ず0になるので設定が必要です。

Deploy の検知設定

他にもちょっとカスタマイズできて、ドラフトプルリクの設定(WIP文言の設定)とかJIRAチケットステータス検知とかできるみたいです。

CFR と MTTR

CFR(変更障害率)とMTTR (サービス復元時間) はAPIを使うか、またはJIRA等で特定の設定のIssueが作られてから閉じられるまでの時間で計測できるみたいです。

Metrics - Dashboard

Metrics Dashboard ではDORA Four Keys関連以外にも、Pull Requestのサイズ感や、コミット数、コード変更行数とかが見れたりします。
有料プランにするとレビュー無しのPull Requestマージ数とか見れるみたいです。

Metrics - Git Activity

各ブランチの状態が見れます。色々フィルタできるので面白いかも。
Cycle Time, Work Breakdown は矢印押すとカテゴリ分けして見ることもできます。

Work BreakdownのNewは新規コード, Rework は既存コードの位置変更のみ, Refactor は既存コードの修正のようです。たぶん。

Pickupが遅いらしい

我が社の開発組織はPickupが遅いとでました。
プルリク作ってからレビューするまでに14時間以上かかると駄目らしいです。
先生、スパルタすぎます。正社員2名なんだから許して欲しい。

クリックするとGit Activityのビューで絞ってソートした結果が表示されるのでちょっと見てみると...

dependabotちゃんを1.5ヶ月放置していたことがバレてしまいました。
ごめんなさい、明日から14時間以内に対応するから許して(強制Close)

改善結果はまた春頃に公開します。
後悔なきよう航海日誌として公開。