6月3日から7日まで、ラスベガスで開催された
Agile+DevOps Westに参加してきました。元々はBetter SoftwareというQA(品質管理)向けのカンファレンスでしたが、10年ほど前からAgile色が強くなり、去年からDevOpsも取り込んでいます。AgileもDevOpsもソフトウェアの品質を上げることで生産性を向上させるわけですから当然の帰結といえましょう。
そのカンファレンスで水曜に発表された基調講演の一つ
Start Your DevOps Journey on the Right Footで、Googleの
Nathen Harveyが重要な指摘をしていました。まずDevOpsには「Agile Manifestoのような、各自が共通に認識できる定義基盤がない」という指摘。
そこで彼は、
Lucas A. Welch (当時Chef勤務)の
DevOps is a cultural and professional movement focused on how we build and operate high-velocity organizations, born from the experiences of its practitioners.
という定義を引っ張ってきます。DevOpsはプロ集団の文化改革であって道具じゃない。道具じゃないから金では買えない、とNathen Harveyは主張したわけです。
DevOpsは金では買えない。
すなわち、システムインテグレーターに外部開発委託をする際に「DevOpsでお願い」と注文をつけるのは間違いということになります。外部委託でのDevOpsは不可能ではないだろうけど、発注側も「プロ集団として意識改革をしないと」相当苦戦するだろうし、おそらくはうまくいかんであろうと思われます。
写真はNethanの基調講演でのスライドの一部です。出典と思われるスライドは
こちらから申し込めます。ここで重要なのはDevOpsがもたらす「効果」で生産性と品質に関わる部分で大幅な改善が報告されています。
- ソフトウェアのリリース頻度が46倍
- ソースコードのコミットからリリースまでの速度が2555倍
- リリースあたりの不良件数が1/7に減少
- ソフトウェア障害からの復旧速度が2604倍に向上
この一番目の数字が重要です。
例えば従来型開発では1000件の要件を5年で開発し、一気にリリースしていたとしましょう。リリース頻度が46倍になるということは5年÷46≒40日ごとに、1000÷46≒22件ずつ要件を開発・リリースしていくということになります。
1000件というのはあくまで例えですが、従来のウォーターフォール型開発なら「この日までに全部お願い」と頼んでいたものが「まずこの22件から」「次がこの22件」といった具合に「優先順位付け」をする必要がでてきます。
単純に46分割して順番に開発して行っても、どこかの段階で「本番稼働に耐えうる完成度」に到達します。でも、「より重要度の高い要件」「より付加価値の高い要件」を前倒しにこなしていけば、より早い段階で本番稼働が可能になります。すなわち、企業にとって重要なキャッシュフローをより早い段階で生み出せるようになるわけです。
この「優先順位」をつけるのは誰の仕事でしょうか? 私は、これは発注者の仕事だと考えてます。Scrum的に言えばプロダクトオーナーですね。各業務をしっかり把握・分析した上で優先度をつけていく。当然、社内での軋轢もあるでしょう。でも、この部分までシステムインテグレーターに「DevOpsでお願い」と丸投げするようでは、DevOpsの妙味は活用できないでしょう。そして、世間でよく聞く「高い・遅い」というシステムインテグレーターに対する怨嗟に近い感情も払拭できないはずです。
DevOpsは金では買えないのです。