デジタルと生産性
Lifull事例
Circle CI
Accelerate
- デプロイの頻度 - 組織による正常な本番環境へのリリースの頻度
- 変更のリードタイム - commit から本番環境稼働までの所要時間
- 変更障害率 - デプロイが原因で本番環境で障害が発生する割合(%)
- サービス復元時間 - 組織が本番環境での障害から回復するのにかかる時間
組織生産性と技術投資
私見です
- 全体の生産効率の俯瞰の必要性
- 工程A、Bがあった場合、Aの生産性が上がってもBの速度が律速になることがある。
- 工程のクリティカルパスの生産性の向上が必要
- 一方で、全体のプロセスの見直しによってA,Bの依存関係を解消する効率化も可能
- 多能工化・多工程持ちにすることで、エンジニアを様々な工程に自由に再配置することで全体の効率を上げることも論理的には可能だが、学習曲線を考えると再配置による効率の低下は一定レベル起きる。
- 一定規模を超えた組織生産(たぶん50〜100以上)において、単工程の改善の占める効果割合は下がっていく
- この工程上の複雑度がいわゆる「技術負債」の根底にある
- 技術による新しい問題の解決
- 生産性は出力の量だけではなく、出力がもたらす結果によって最終的に測られる
- レコメンド技術によるパーソナライゼーションによって顧客の購買が促進されている。2013年時点でAmazonの購入の35%はレコメンデーションによる
- レコメンド技術は、ITによって顧客に「提案する」という新しい意味のある問題を作り出した。それまでのECサイトはあくまで顧客が買いに来るのを待つ場所だった。
- 将来にむけた技術投資
- Googleの収益源の多くはインターネット広告によっており、Googleにとってより多くの情報がインターネット上で行われる未来は都合が良い。それがGoogleプラットフォーム上であればなお良い。(今後どうかはなんとも言えないけど)
- Googleが開発するChrome、Android、Pixel、GSuiteのすべては、インターネット上により多くの情報を集中させる未来をつくることにつながる戦略投資であるとも言える。
- Googleのインフラへの投資は、世界中のデータをインターネットにあげて参照可能にすることで、よりインターネット市場を拡大させることに寄与している。それは、巡り巡って自社の利益に還元される。(情けは人のためならず)
- AI技術はGoogleにとっては大量のデータを人間が参照可能なように検索・要約・提示するための不可欠な技術であり、投資するのは妥当であった。IT企業がGoogleと同様の投資をAIにすべきかはそれほど明らかではない。
- 5年〜10年をかけた戦略投資をするのであれば、市場へのインパクトを前提とし、インパクトを与えた市場が自社にとって都合が良い未来になっているという絵を書く必要がある。
Googleのソフトウェア・エンジニアリング
- トリアージ:そもそも計測するほどの価値があるか
- 計測結果が肯定的であれ否定的であれ行動が取れるか
- ゴールとシグナルを伴う、意味のあるメトリクスを選ぶ
- LOC、コード行数は意味ないよね
- GSM Goals/Signals/Metricsフレームワーク
- Goal:望ましい結果。特定の指標に結びつかないようにする。街頭効果(見える範囲を探しても望む結果は得られない)を防ぐ。トレードオフを入れる。(速さと品質、など)
- Signal:ゴールを達成したことを知る手段。
- Metrics:シグナルをどう計測するかを決定する。シグナルと同じではない。計測できる代用品である。
- GSMの例
- Goal:エンジニアはリーダビリティのプロセスの結果としてより高品質なコードを書いている。
- Signal:リーダビリティを認められたエンジニアが、リーダビリティを認められていないエンジニアよりコードが高品質であると判定している。
- Metrics:四半期ごとの調査:自分自身のコードの品質に満足していると報告するエンジニアの比率。メトリクスは定性的なこともある。
- QUANTS
- Quality of Code
- Attention from Engineers
- Intellectual Complexity
- Tempo and Velocity
- Satisfaction
- SignalとMetricsの違いは、測れるかどうか。計測可能性と正しさのトレードオフをSignalとMetricsで表現している。SignalはGoalを測るために達成すべき条件、MetricsはSignalを計測可能にするため代替品。Signalは妥当なコストで計測可能であるとは限らない。
- Signalを計測するためのMetricsは複数あるかもしれない。複数あるMetricsが矛盾する可能性もある。それはあくまでMetricsがSignalの代替品であるため。その場合、Metricsを再検討すべきかもしれない。
- 重要なのは追跡可能性を維持すること
- Googleはエンジニアリングの生産性についての専門家チームを配置している。
- エンジニアリングのプロセスの変更に伴うトレードオフの大半は正確な計測が難しく意図しない結果をしばしば生む
- データ駆動であることを維持し、主観的アドバイスを排除を目指さないといけない。
- 開発者のワークフローやインセンティブ構造の中に組み込まれる推奨事項の作成を目指すべき。トレーニングやドキュメンテーションの推奨が必要なこともあるが、日々の習慣にクコこまれるほうが変化させやすい。