デジタル・トランスフォーメーション(DX)の取り組みが活発化する中、ソフトウェアの開発と運用を一体化させた「DevOps(デブオプス)」に対する関心が高まっている。とりわけ、DXによるビジネスモデルの変革や新規事業の立ち上げに向けては、DevOpsの実現が不可欠とされている。なぜ、DXの推進にDevOpsが不可欠なのか。そもそも、DevOpsとは何であり、どのようなベネフィットがもたらされるのか。早稲田大学グローバルソフトウェアエンジニアリング研究所所長を務め、経済産業省の「DXレポート」の作成・編纂メンバーでもある鷲﨑弘宜氏に話を聞いた。

DevOpsとは、そもそも何か

 DevOpsは、「開発(development)」と「運用(operation)」を折衷させたIT業界の造語であり、開発と運用を一体化させた体制や手法を指す。DevOpsの体制を確立する目的は、ソフトウェアの開発とリリース(デリバリー)、そして改善の俊敏性(アジリティ)を高めることにあり、その概念は「アジャイル開発」やアジャイル開発の標準手法である「スクラム(注1)」の考え方をベースにしているとされる。

 旧来、企業が自社内で使う業務用のソフトウェアや顧客向けに提供するソフトウェアは、主として「ウォーターフォール」と呼ばれる手法を使って開発されてきた。この手法は、ソフトウェアの要件、仕様を固めてから、設計と実装を行い、テストを繰り返して品質を担保し、完成させるというものだ。ウォーターフォール型でソフトウェアを完成させた開発チームは、のちの運用に関わることはなく、運用はそれを専門とするチームが担ってきた。ウォーターフォール型では、開発チームと運用チームは別組織として運営され、協調して作業を進めることはほとんどなかったわけだ。

不確実性が高まる中、必要な変化への即応力

 開発・運用が別組織であることの最大の問題は、ソフトウェアの価値を迅速に検証できず、「変化」へ柔軟に対応できないことにある。たとえば、ソフトウェアの要件を定義して仕様を固めてから、設計、実装、テストを行い、ソフトウェアを完成させたとする。その時、市場ニーズやビジネス要件の変化によって、ソフトウェアの要件を大きく見直さざるをえなくなったとすればどうだろうか。その場合には、かなりの時間をかけてソフトウェアを一からつくり直さなければならなくなる。

早稲田大学グローバルソフトウェアエンジニアリング 研究所 所長・教授
国立情報学研究所 客員教授
鷲﨑弘宜氏

 今日、市場やビジネスの変化は目まぐるしく、不確実性も高まっている。そのため、ソフトウェアに対する要件が開発途中でがらりと変容することが頻繁に起こる。それゆえ、ウォーターフォールではなく、価値につながりうる優先度の高い機能や仕組みを早期に動かして検証し、軌道修正を繰り返すアジャイル開発やDevOps(注2)の必要性が高まっているわけだ。

「アジャイル開発、DevOpsの体制と自動化・高速化の技術基盤を築くことで、開発と運用の担当者がソフトウェアの顧客(利用者)を巻き込みながら、開発とデリバリーをスピーディに行い、利用者のフィードバックに基づきながら、機能、性能の拡張、改善を迅速に、かつ継続的に行っていくことが可能となります。この体制と技術基盤を築くことは、市場や顧客のニーズを早期に確認し、変化へ迅速に対応するための重要な取り組みです」

「また、DXによって新しい事業を立ち上げたり、ビジネス上の新しい付加価値を創出したりする場合、その成否はソフトウェアの良否にかかっています。ソフトウェアに対する市場の評価に基づいて、その強化・改善を迅速かつ継続的に行わなければなりません。そのためにも、アジャイル開発やDevOpsのアプローチが必要とされるのです」と、鷲﨑氏は話す。