DevOpsにおける開発生産性を可視化するDORAのメトリクス
DevOpsは、仕事をより生産的かつ持続可能なものにするための先駆的な開発手法である。DevOpsは「アジャイルシステム管理」と呼ばれる存在としてスタートしたという。開発者を疲れさせずに、持続的かつ効率的に作業を進める取り組みが求められていたからだ。
DevOpsの魅力は、素早く、より良い仕事のサイクルを回す点だけではなく、「より良い方法で仕事を行えるようになること」とフォースグレン氏は語る。
DevOpsを語る上で外せないのが、「DORA」である。DORAはDevOps Research and Assessmentの略で、フォースグレン氏は同社の元CEO兼主任研究者として、DevOpsの研究を進めてきた。
DORAと言えば、4つのメトリクスが頭に浮かぶ。
1つ目のメトリクスは変更のリードタイム。コードがコミットされてから、本番環境で実行されるまでにかかる時間を指す。2つ目はデプロイの回数やデプロイの頻度。第三は平均復旧時間。何らかのインシデントが発生した場合、障害から復旧までに要する時間である。第四は変更障害率。インシデントが発生する割合も含まれる。「DORAでこれら4つのメトリクスが注目を集めるのは、私たちの研究によりそれらが相関していることを発見したため」とフォースグレン氏は話す。速度が上がれば安定性も上がり、安定性が上がれば速度も上がるというように、2つのメトリクスは相互に連動している。
またDORAはDevOpsを迅速かつ着実に進めるための、重要な能力を特定する研究プログラムでもある。「DevOpsの能力は技術、文化、アーキテクチャ、コミュニケーション、コラボレーションなどの要素で構成される。リーンの原則やアジャイルなどの要素も含まれる。DORAはこれらの要素を改善できるかを理解するための包括的なフレームワークを提供する」とフォースグレン氏は説明する。DORAでは長年にわたり、この4つのメトリクスを測定し、ベンチマークを公表している。またDORA.devというサイトでは、どのような要素や改善が重要であるかが確認できる。「ぜひ、サイトにアクセスしてみてほしい」(フォースグレン氏)
DORAによるパフォーマンス改善において、フォースグレン氏が重視しているキーワードは「シグナル」と「アクション」だという。シグナルとは現状の評価、一方のアクションはシグナルに基づいてどのように改善していくかという行動を指す。
まず、シグナルはスピードと安定性のメトリクスで測定する。「私たちのチームがスピードと安定性のメトリクスに沿って、ソフトウェアを開発・提供する能力はどのくらいあるのか。リードタイム、デプロイ頻度、MTTR(平均復旧時間)、変更障害率などでパフォーマンスを評価します」(フォースグレン氏)
評価するだけで終わりではない。シグナルを基に「ソフトウェアのデリバリーを改善するために、どのような能力に焦点を当てるべきか」ということを考える必要がある。「ここでは多角的なアプローチを取ることができる」とフォースグレン氏は続ける。例えば開発者へのアンケート調査やインタビュー調査では、冗談を交えながら、「仕事中に最も口にする文句は何か」と尋ねることがある。他にも、バリューストリームマップを作成し、アリゴリズム的なアプローチもできる。先に紹介したDORA.devにアクセスし、簡単なチェックを行うと、ソフトウェアのデリバリー性能が報告される。さらに「Help Me Prioritize」というボタンをクリックすると、自己評価や焦点を当てるべき重要な要素の表示可能になる。中でもフォースグレン氏が最も気に入っているのは、「What's holding you back?(何を躊躇しているの)」という文言が表示されること。「この文言が、シグナルとアクションをさまざまな個所に適用するよいきっかけになるはず」とフォースグレン氏は力強く話す。