DevOpsとは?開発と運用の連携に注目して用語を見分ける
ITパスポート試験 令和4年度 問42 / ソフトウェア開発管理技術 › 開発プロセス・手法
過去問にチャレンジ
システムの開発側と運用側がお互いに連携し合い,運用や本番移行を自動化する仕組みなどを積極的に取り入れ,新機能をリリースしてサービスの改善を行う取組を表す用語として,最も適切なものはどれか。
- ア
DevOps
- イ
RAD
- ウ
オブジェクト指向開発
- エ
テスト駆動開発
会話形式の解説
講師今回は開発手法に関する用語の問題です。問題文には手がかりが3つあります。「開発側と運用側の連携」「運用や本番移行の自動化」「リリースを重ねてサービスを改善すること」です。この3つすべてに当てはまる用語を探しましょう。
受験者DevOpsという言葉は見たことがあります。ただ、略語やカタカナ語が並んでいると、どれが何だったか分からなくなってしまいます。
講師DevOpsは、Development(開発)とOperations(運用)を組み合わせた造語です。名前そのものに「開発」と「運用」が入っているので、両者が連携する取組を指すと覚えやすいと思います。ビルドやテスト、本番移行などを自動化して、短いサイクルで機能をリリースしながらサービスを改善していきます。
受験者それなら3つの手がかりにすべて合いますね。ただ、RADも「短期間で作る」手法だったと思うので、少し迷いました。
講師速さだけで考えると迷いやすいところです。RADはRapid Application Developmentの略で、統合開発環境などの開発ツールを使って半自動的に開発し、短期間でプログラムを作ることを重視する開発スタイルです。開発を速く進めるための手法なので、運用側との連携や本番移行の自動化までは表していません。
受験者テスト駆動開発も短い周期で繰り返すと聞いたことがあります。これも速さの話でしょうか。
講師テスト駆動開発は、実装より先にテストを作り、そのテストに合格するようにプログラムを書く「テストファースト」の手法です。テストの失敗、最小限の実装、リファクタリング(コードの改善)を短い周期で繰り返します。目的は品質を高めることで、こちらも開発と運用の連携を表す用語ではありません。
受験者オブジェクト指向開発は、設計の考え方の話だったと記憶しています。
講師そのとおりです。データとそれに対する操作をまとめた「オブジェクト」を組み合わせてシステムを作る手法で、クラス、継承、カプセル化などが関連する概念です。設計や開発の考え方を表す用語なので、運用との連携やリリースの自動化には当てはまりません。
受験者まとめると、RADは開発のスピード、オブジェクト指向開発は設計の考え方、テスト駆動開発はテストの進め方に焦点があり、運用側との協力まで含むのはDevOpsだけ、ということですね。
講師よく整理できています。補足すると、DevOpsで行う自動化の代表例がCI(継続的インテグレーション)とCD(継続的デリバリーまたは継続的デプロイメント)です。また、DevOpsは特定のツールの名前ではなく、組織の文化やプロセスまで含む広い考え方です。問題文に「開発と運用の連携」とあれば、まずDevOpsを思い浮かべるようにしましょう。
まとめ
開発側と運用側が連携し、運用や本番移行を自動化しながら機能をリリースしてサービスを改善する取組はDevOpsです。DevOpsはDevelopment(開発)とOperations(運用)を組み合わせた造語で、CI/CDなどの自動化を取り入れ、組織の文化やプロセスまで含む広い考え方です。RADは開発ツールを使って短期間で作ることを重視する開発スタイル、テスト駆動開発は実装より先にテストを作る手法、オブジェクト指向開発はオブジェクトを組み合わせる設計の考え方です。RADやテスト駆動開発は「短期間」「短い周期」といった特徴だけでは見分けにくいため、運用側との協力に触れているかどうかで判断しましょう。
解答・解説
正解はアです
この問題のテーマ
開発側と運用側が連携し、本番移行などを自動化しながら機能のリリースとサービス改善を続ける取組を何と呼ぶかを問う問題です。開発手法に関する用語を正しく見分けられるかがポイントです。
解き方の考え方
問題文から「開発側と運用側の連携」「運用や本番移行の自動化」「リリースによる継続的なサービス改善」という3つの手がかりを拾います。次に、各選択肢の用語がもともと何を重視しているかを思い出します。開発スピード、設計の考え方、テストの進め方のどれかに焦点を当てた用語は、開発と運用の協力までは表しません。3つの手がかりがすべて当てはまるのはDevOpsだけです。
選択肢ごとの解説
- ○ア DevOpsDevOpsは、Development(開発)とOperations(運用)を組み合わせた造語です。開発担当と運用担当が連携し、ビルド・テスト・本番移行などを自動化して、短いサイクルで機能をリリースしながらサービスを改善していきます。問題文の説明とすべて一致するため、これが正解です。
- ×イ RADRADはRapid Application Developmentの略です。統合開発環境などの開発ツールを使って半自動的に開発し、短期間でプログラムを作ることを重視する開発スタイルです。開発を速く進めるための手法であり、運用側との連携や本番移行の自動化を表す用語ではありません。
- ×ウ オブジェクト指向開発オブジェクト指向開発は、データとそれに対する操作をまとめた「オブジェクト」を組み合わせてシステムを作る手法です。クラス、継承、カプセル化などが関連する概念です。設計や開発の考え方を表す用語なので、運用との連携やリリースの自動化には当てはまりません。
- ×エ テスト駆動開発テスト駆動開発は、実装より先にテストを作り、そのテストに合格するようにプログラムを書く「テストファースト」の手法です。テストの失敗、最小限の実装、リファクタリング(コードの改善)を短い周期で繰り返します。品質を高めるための開発の進め方であり、開発と運用の連携を表すものではありません。
補足
DevOpsで行う自動化の代表例が、CI(継続的インテグレーション)とCD(継続的デリバリーまたは継続的デプロイメント)です。また、DevOpsは特定のツールの名前ではなく、組織の文化やプロセスまで含む広い考え方です。RADとテスト駆動開発も「短期間」「短い周期」を特徴とするため、速さだけを手がかりにすると迷います。運用側との協力に触れているかどうかで見分けましょう。
POINT
- DevOpsは開発(Development)と運用(Operations)を合わせた造語で、両者が連携して進める取組を指します。
- DevOpsでは、ビルド・テスト・本番移行などを自動化し、短いサイクルでリリースしてサービスを継続的に改善します。
- RADは、開発ツールを使って短期間でシステムを作ることを重視する開発スタイルです。
- テスト駆動開発は、実装より先にテストを作る「テストファースト」の手法です。
- 問題文に「開発と運用の連携」と書かれていれば、まずDevOpsを思い浮かべるようにしましょう。
