DevOpsは「文化」である
かつて、システムの開発手法はウォーターフォール開発が主流だったが、近年ではアジャイル開発への移行が進んでいる。DevOpsは、アジャイル開発のような動的な環境変化に対してうまく対処できるよう、組織が協力しあう文化運動を指す。だが、ときおりDevOpsの趣旨が誤解されてしまうこともあり、それによって3つの「残念なDevOps」が起こりうるという。
1つ目は「スーパーエンジニアに2人分の働きをしてもらうのがDevOpsである」というもの。スタートアップのフェーズで、いわゆる「なんでもできる人材」が求められるケースもあるが、この状態は決して長続きしない。組織がスケールしないうえに、エンジニアが疲弊してしまうためだ。
2つ目は「社内でDevOpsを推進しようとしているものの、現場にさっぱり浸透しない」というケース。これまでウォーターフォール開発をしていた組織では、アプリ開発者とインフラ運用者は全く違う組織であり、大きな壁が立ちはだかっている。その隔たりを解消しない限り、DevOpsは成功しないのだ。
3つ目は「DevOpsってつまり自動化ツールを導入すればいいんでしょ?」という勘違い。DevOpsにとって、自動化は重要な要素である。しかし、自動化はDevOpsにとっての必要条件ではあるが、十分条件にはならない。「ツールを入れればOK」ではないのである。
「DevOpsは『文化』です。何かのツールを導入しているから、何かを推進している人がいるからDevOpsなのではありません。文化を醸成できなければ、決して成功しないのです」(佐々木氏)
しかし、企業の文化を変えるのは容易ではない。各ステークホルダーが業務において大事にしているものは異なり、共通の行動指針を持っているわけではないからだ。文化を変容させていくには、全メンバーがなんらかの「共通項」を持つ必要がある。そのために必要なのが計測である。
「DevOpsにおいて、計測は文化醸成の助けとなります。アジャイル開発ではシステムとビジネスが日々変化していきますが、そうした変化を計測し、全メンバーが同じ情報を目にすることで、『何をすべきか』の共通認識が生まれるのです。計測ができているチームは、高度に成熟しているDevOpsチームといえます。
あるDevOpsに関するレポートによると、最も高度に成熟したDevOpsチームは、未熟なDevOpsチームと比較して46倍以上も頻繁にコードをデプロイし、コードのコミットからデプロイまでのリードタイムが2555倍短く、変更失敗率が7分の1であり、インシデントからの回復時間が2604倍早いという事例もあります」(佐々木氏)
だが、DevOpsにおいて適切に計測を行うことは難しい。その理由は大きく3つある。
1つ目は「ツールのサイロ化」だ。それぞれが違うKPIやミッションのもと行動しているため、DevOpsの各ロールが計測したい項目は異なっている。そのため、用いているツールもバラバラの状態になっている。
2つ目は「システムが複雑で動的である」ということ。アジャイル開発では、アプリケーションに最新の技術が導入されているケースが多い。構成要素の種類が多く、各コンポーネントも動的に変化している。変容し続ける要素を、どのように観測するかを考えねばならない。
3つ目として「多忙なメンバーにとって、計測のために時間を割くことが難しい」という課題もある。