日本はなぜ米国に比べてDevOpsの導入が遅れているのか
「日本でも世界最先端のDevOpsチームに追いつき、追い越したい!」。そんな熱い思いがこもった牛尾氏のセッションは、冒頭で会場との3度にわたるDevOpsコールから始まった。
牛尾氏が「世界最先端のDevOpsチームを作り上げた人」と称するマイクロソフトのサム・グッケンハイマー氏。牛尾氏は彼に対して「日本は米国と比べて、DevOpsに関してどのくらい遅れているか」と質問をしたところ「5年は遅れている」と言われたのだという。
なぜ米国は進んでいるのかを明かす前に、まずはDevOpsとは何かのおさらいから。DevOpsとは人・プロセス・プロダクトの集合体で、継続的にエンドユーザーに価値を提供することである。そしてこれを実現すれば、「1日に10デプロイを可能にするリードタイムの短縮」と牛尾氏は語る。米Puppet Labsの「2015 State of DevOps Report」によると、DevOpsのメリットは、コードのデプロイ速度が30倍向上、リードタイムは200分の1に削減、エラーも60分の1に削減、エラーからの復旧は168倍速くなるという。また同社からはすでに2016年版も登場しており、それを見るとリードタイムは「2555倍になると言われている」と牛尾氏は語る。
これまでソフトウェアの開発においては、本番環境で不具合が起こらないように、時間をかけて入念な準備をしていた。しかしせっかく時間をかけて用意しても、その間にソフトウェアのユーザを取り巻く環境が変わり、使ってくれないこともあっただろう。そこでできるだけ早くデリバリーをするのである。つまりDevOpsで重要な観点はリードタイムが短縮できること、本番環境/ユーザからのフィードバックをもらうこと、そして継続的な実験と学びがあることである。「DevOpsでは本番環境は聖域ではない」と牛尾氏は力強く語る。
またプラクティスも必要になる。DevOpsに必要となるプラクティスは図の通りである。「これらを用意しているチームとしていないチームでは、戦闘機と竹やりぐらいの戦闘力の違いがあるが、最もDevOpsで重要になるのはチーム構成だ」と牛尾氏は説明する。
マイクロソフトで世界最先端のDevOpsチームが生まれたのは、チーム構成を変更したことから始まった。当初マイクロソフトでもウォーターフォール型の開発を行っていたという。品質管理(QA)、開発(Dev)、Ops(運用)、ビジネス企画がバラバラのチームで構成されていた。それをグッケンハイマー氏がDevとQAを1チームにまとめて、エンジニアリングチームとOpsとビジネス企画の3チーム構成にしたのである。その後さらに、エンジニアリングチームとOpsとビジネス企画をすべて一つにしてサービスチーム(Feature team)としたのである。サービスチームでは顧客と直接のコラボレーションを行えるようになっている。「開発の優先順位やロードマップなどについてもサービスチームで決められるよう、権限が与えられている」と牛尾氏は語る。こうすることで、最先端のDevOpsチームができあがったのだ。
DevOps導入のための5つのステップ
とはいえこれはあくまでも米国での話。「日本向けのDevOps導入ステップは、次の5段階で進めるのが望ましい」と牛尾氏は説明する。
第一はDevOpsのプレゼンテーションとデモを行う。「DevOpsは標準的な定義が存在しないので、皆さんの会社での、DevOpsとはどういうものかをシェアするために行う」と牛尾氏。第二にValue Stream Mapping(VSM)を作成する。VSMとは図のようなものだ。実際にリードタイムに関係するプロセスを可視化し、プロセスおよびそこでの課題を共有するのである。このとき、重要になるのが「プロセスを変更できる権限を持っている人をこの場に参加させること」と牛尾氏は言う。プロセスを変えることができる人とはマネジメント層なので、細かいプロセスよりもむしろリードタイムが短縮されることに関心があり、ムダがあることを説明すると「プロセスを変えればいい」という決断になると牛尾氏は言う。
第三に文化とギャップ要素のインストールをすることである。「なぜ文化のインストールが必要かというと、DevOpsが西洋の文化の上に成り立った概念だからだ」と牛尾氏は言い切る。DevOpsに欠かせないアジャイルの導入が日本で難しいのも、その文化が影響している。Clearly Culturalの調査によると、その難易度は106カ国中で1位だという。
また牛尾氏はインターナショナルチームに所属したことで、文化は生産性にも影響を及ぼすことに気付いたという。日本生産性本部の「日本の生産性動向2015年版」によると、米国の生産性を100%とすると、日本は62%だと報告されている。この生産性の違いは物量の違いつまり、「同じバリューに対して、日本は米国の10倍ほど工数をかけている」と牛尾氏は説明する。
このことは牛尾氏の上司のドリュー・ロビンス氏の言葉からもわかる。同氏は日本人スタッフに「Be Lazy」、つまりムダなことをやり過ぎていると指摘するという。より少ない時間で、成果を最大化する、エッセンシャル思考を身につけることが大切だというのだ。「文化のインストールの詳細を知りたい方は、『メソッド屋のブログ』を参照してほしい」と牛尾氏は自身のブログを紹介した。
また、ギャップ要素のインストールについては、先述したように上位マネジメントや関係者を巻き込むことに加え、「優れたベンダーやアジャイルコーチを選定すること。これで8割ぐらい導入がうまくいくかどうかが決まる」と語る。
文化やギャップ要素のインストールに加え、生産性を向上させるのに忘れてはならないのが自動化である。テストをある程度きちんと書けているアジャイルプロジェクトの割合は48%だという。この割合を高めるには、「テスト駆動開発を行うことが必要」と牛尾氏は語る。テスト駆動開発について詳しいことを知りたい方には「Minutes DevOps:テスト駆動開発」のチェックがお勧めだ。
第四はDevOpsハックフェストの開催である。文化のインストールと共にエキスパートと一緒に自動化するハッカソンを実施するのである。「定期的に実施し、DevOpsの道場としていつでも学べる場にするのも良い」と牛尾氏。そして第五にモニタリングと継続的改善を行っていくのだ。「定期的にリードタイムなどの改善状況を共有することが大事」と牛尾氏は説明する。
国内でもDevOpsの実践し、成果が出ている事例が登場している。医師や専門家に相談できる医療・ヘルスケアのQ&Aサイトを運営しているカラダメディカでは、VSMと自動化のおかげで、リードタイムを13日から3日に短縮。しかもこれを数か月で達成したという。しかもチーム自ら考え、協力して行動して成果を出す文化に変わったという。
また、NECソリューションイノベータでは、Docker、Compose、Terraform、Serf+Visual Studio Team Services(VSTS)、Azureを用いたハイブリッドクラウドストーリを展開し、リードタイムを8.5カ月から1週間に短縮。「『今まで、1990年代の開発だったのが、2017年の開発をしている気分です』という感想をいただいた」と牛尾氏はその成果を披露した。
日本でも世界最先端のDevOpsチームに追いつき、追い越すため、牛尾氏はDevOps導入に意欲ある企業を支援していくと意気込む。先述の「メソッド屋のブログ」ではDevOpsスタータキットを公開。そして「マイクロソフトのDevOps世界事例+on Azureなら無料でVSMとハックフェストを提供する。ぜひ、DevOps導入に意欲のある企業はチャレンジしてほしい」と語り、セッションを終えた。
お問い合わせ
日本マイクロソフト株式会社
- TEL: 03-4332-5300 (大代表)
- コーポレートサイト