DevOps における課題とその解決方法教えます!

  • テクノロジー

みなさん、こんにちは。株式会社SHIFTの岡野です。普段は、ソフトウェアテストに関する研修を担当しています。

「お客様の求めるものをより迅速に提供したい!」
「企業戦略上、コスト・開発期間双方の競争力の強化が必要!」

システム開発企業や事業現場では、このような声を良く耳にします。
課題解決のためにxアジャイル開発x(大きな単位でシステムを区切ることなく、小単位で実装とテストを繰り返す開発スタイル。従来の開発手法に比べて開発期間が短縮されるとされる。)やDevOps(DevelopmentとOperationsを組み合わせた造語。詳細は後述します。)を取り入れる組織が増えてきていますが、社内でのノウハウや知見の成熟が追いついておらず、思うように導入が進んでいないケースが多いようです。

今回は、DevOps を取り上げ、DevOpsにおける課題や、その解決案についてご紹介します。

<まず、DevOpsとは?>

DevOpsとはなに?
DevOpsとは、Development(ソフトウェアの開発担当)と Operations(導入・運用担当)を組み合わせた造語で、ソフトウェアの開発担当だけではなく導入・運用担当とも密接に連携しプロダクトの価値を世の中により早く届ける取り組みのことを言います。2009年カリフォルニア州サンノゼで開催されたVelocity 2009というイベントで発表された Flicker社のエンジニアによる「10+ Deploys per Day: Dev and Ops Cooperation at Flickr」というプレゼンテーションがこの DevOpsという言葉の起源といわれています。
DevOpsの課題

では、DevOpsを進めるうえでどのようなことが課題となっているのでしょうか。

調査データ「アジャイル白書2017」(株式会社SHIFT調べ:図1)によると、 「アジャイルやDevOps」の取り組みで発生している主な課題は以下のようになっています。(上位3位)

1位「部署やチームによって理解や熟練度が異なる」
2位「組織全体への適用が難しい」
3位 「アジャイルやDevOpsでのテストのやり方が確立されていない」

(図1)アジャイルやDevOpsの取り組みで発生している課題 (件数)

課題を解決するためには?

上記、1位、2位の課題に対しては、DevOpsを正しく理解し、その理解度や熟練度を高めながら、組織内で成功事例を積み重ねていくことが効果的です。3位の課題に関しては、アジャイルやDevOpsにおいては「早く」「必要十分」なテストを行うことが求められているものの、そのやり方が良くわからないといったことが問題となります。それに対しては、必ずしもこれといった1答えがあるわけではありませんが、その重要な手がかりとなりうるのが「リスク」です。

リスクとは、将来、否定的な結果を生む要因のことで、通常、発生確率と影響度として表現されます。これら2つの要素を手掛かりにテストすることで、「早く」「必要十分」なテストを行うことができるようになります。こういったリスクをベースにテストを行う手法のことを「リスクベーステスト」と言います。

DevOpsにおいては、リスクベーステストを行う際、リスク抽出・リスク分析にも極力時間をかけないことが求められます。つまり、従来のウォーターフォール型の開発時とは異なるリスク抽出・分析方法を学び、活用できるようになることが必要です。

(図2) リスクポーカーを活用したリスクに応じたテスト方法の選択例

(参考書籍) Agile Testing Foundations: An Istqb Foundation Level Agile Tester Guide

DevOpsに関しての基礎的な知識や、より具体的な課題解決法を学びたい方へ「DevOpsテスト入門」をお薦めします。この研修コースでは、DevOpsの基礎から「リスクポーカー」を用いた具体的なリスクベーステストを実際に体感し、リスクに応じたテスト技法の選択を検討したうえでの効率的・効果的な自動化テストを行う方法を学ぶことができます。

<関連コースのご紹介>

DevOps における課題解決に役立つオススメのコースをご紹介します。
【集合】DevOpsテスト入門
【ライブ】DevOpsテスト入門

そのほか、レビュー/テスト技術関連コースはこちら
レビュー/テスト技術関連コースマップ

(2018/07/05)