はじめに
「LeanとDevOpsの科学(原書タイトル: Accelerate)」 という書籍があります。本にはソフトウェアデリバリのパフォーマンスと組織の業績の関連について書かれてあります。簡単に言うとソフトウェアデリバリにおいてハイパフォーマンスな企業は高業績な企業であるというような内容です。つまり、この考察結果が自社においても当てはまるならば、私達はソフトウェアデリバリの改善をして業績を上げることが可能です。
この記事はまだ書籍を読んでいない方や、さらっと目を通したがいまいち内容が入ってこなかった向けに書きます。私の解釈が多く入っているので気になりましたら原書にあたってください。
LeanとDevOpsの科学
「State of DevOps Report」というソフトウェアのデリバリに関する調査・研究の結果を記述したレポートがあります。この2014年版からから2017年版の4年間をまとめたのが本書です。研究の目的は「高業績の技術系組織を生み出す要因は何か」「ソフトウェアは組織をどのように改善し得るのか」という疑問に答えることです。
この書籍は少し刺激的な結論を出しています。冒頭でも触れましたが「ソフトウェアデリバリにおいてハイパフォーマンスな企業は高業績な企業である」ということです。そのためにこの書籍ではソフトウェアデリバリのパフォーマンスを高める項目(ケイパビリティ)を挙げています。これが私達の企業においても当てはまるかどうかは私達自身で見極める必要があるでしょう。Martin Fowler*1によると、根拠の信頼性に心配があること、焦点がデリバリのみに当てられていることに注意とのことです。
なぜ「ソフトウェアデリバリ」か?
この書籍は最初から「ソフトウェアデリバリ」というところに注目をしていてどこか違和感があります。想像ですが、以下のようなところが「ソフトウェアデリバリ」に注目する背景となったと思います*2。
2000年頃よりXPやアジャイル開発などのソフトウェア開発の手法が注目されるようになってきました。これらは従来のウォーターフォール型の開発と違い、早く顧客に製品を届けることで、大まかな方向性の擦り合わせができます。また、シリコンバレーでは無数のベンチャーが立ち上がっては消えて行く中、スタートアップの成功するための方法論という形で2011年に「The Lean Startup」が出版され人気となりました。このリーン・スタートアップでは「顧客に価値を提供しフィードバックを受けて学習し製品開発へ」というサイクルを早く回すのが重要です。その後リーン・スタートアップの概念はリーンソフトウェア開発としてソフトウェア開発に適用されます。
「ソフトウェアを開発し顧客へ届ける速度」と「企業の成功」は結びつきそうな気がしてきませんか?こういった背景の中で出てくる疑問は「ソフトウェアデリバリのパフォーマンスが良ければ業績へ良い影響を与えるのでは?」というところではないでしょうか。
それを科学的な手法で検証したのが本書です。具体的には行動科学の統計学*3の手法を用いて調査し考察結果を導き出しています。
パフォーマンスの計測
「ソフトウェアデリバリのパフォーマンスが良ければ業績へ良い影響を与えるのでは?」という仮説を確かめるためにパフォーマンスというものを定義する必要があります。
ソフトウェアデリバリのパフォーマンス
書籍では以下の4つによってソフトウェアデリバリのパフォーマンスを定義しています。
- デリバリのリードタイム - コードのコミットから本番稼働までの所要時間
- デプロイの頻度 - 本当はバッチサイズ(一度に進める作業のサイズ)を測定したいが測定が難しいのでデプロイの頻度を使う。
- サービス復旧の所要時間 - システムの安全性を犠牲にして改善を実現したのかどうかの尺度。また、失敗は不可避なので故障間隔ではなく復旧時間が重要。
- 変更失敗率
組織の業績
次に組織の業績ですが以下の3つです。
- 収益性
- 市場占有率
- 生産性
おわりに
本当は今週の平日にもっと考察を進めた記事を書こうと思ったのですが、思いの外時間がかかりそうなので、切り出して記事にしました。次くらいに考察した記事を書きます。