DevOpsとは何か、ほかの開発手法とどう見分けるか
ITパスポート試験 令和6年度 問47 / ソフトウェア開発管理技術 › 開発プロセス・手法
過去問にチャレンジ
ソフトウェアの開発におけるDevOpsに関する記述として,最も適切なものはどれか。
- ア
開発側が重要な機能のプロトタイプを作成し,顧客とともにその性能を実測して妥当性を評価する。
- イ
開発側では,開発の各工程でその工程の完了を判断した上で次工程に進み,総合テストで利用者が参加して操作性の確認を実施した後に運用側に引き渡す。
- ウ
開発側と運用側が密接に連携し,自動化ツールなどを活用して機能の導入や更新などを迅速に進める。
- エ
システム開発において,機能の拡張を図るために,固定された短期間のサイクルを繰り返しながらプログラムを順次追加する。
会話形式の解説
講師今回はDevOpsの意味を問う問題です。選択肢にはほかの開発手法の説明が混ざっているので、それぞれがどの手法の話なのかを見分けるのがポイントです。
受験者DevOpsという言葉は聞いたことがありますが、アジャイル開発と何が違うのか、私はあいまいです。短いサイクルで機能を追加する選択肢がDevOpsっぽく見えてしまいます。
講師まず言葉の成り立ちから確認しましょう。DevOpsは、開発を意味するDevelopmentと、運用を意味するOperationsを組み合わせた言葉です。開発側と運用側が組織の壁を越えて密接に連携する考え方です。
受験者名前に「運用」が入っているのですね。それなら、運用側との関わりが書かれている選択肢を探せばよさそうです。
講師そのとおりです。もう一つの特徴が自動化です。ビルドやテスト、配備(できあがった機能を利用環境へ届けること)を自動化するツールを使い、機能の導入や更新を迅速かつ継続的に行います。
受験者そうすると、開発側と運用側が密接に連携し、自動化ツールを使って機能の導入や更新を迅速に進める、という選択肢がまさにそれですね。
講師はい、その選択肢が正解です。連携と自動化の両方がそろっているのはこれだけです。では紛らわしいものを順に見ます。固定された短期間のサイクルを繰り返してプログラムを順次追加する選択肢は、どの手法でしょうか。
受験者アジャイル開発だと思います。ただ、DevOpsはアジャイル開発と一緒に使われることがあるとも聞きました。
講師実際に組み合わせて使われることもあります。ただ、この記述は運用との連携にも自動化にも触れていません。「短いサイクル」だけではDevOpsの説明にならないので、不適切です。
受験者各工程の完了を判断してから次の工程に進み、最後に運用側へ引き渡す選択肢は、ウォーターフォールモデルでしょうか。「運用側」という言葉が出てくるので少し迷いました。
講師はい、ウォーターフォールモデルの説明です。運用側は登場しますが、完成後に引き渡すだけの流れです。開発と運用が継続して協働するDevOpsの考え方とは異なるので、不適切です。
受験者重要な機能の試作品を作って顧客と一緒に性能を評価する選択肢は、プロトタイピングモデルですね。
講師はい、プロトタイピングモデルの説明です。試作品で早い段階に妥当性を確かめる手法で、運用との連携や自動化には触れていないので、DevOpsではありません。
受験者試作を顧客と評価するのがプロトタイピング、工程を順に進めるのがウォーターフォール、短いサイクルの繰り返しがアジャイル、開発と運用の連携と自動化がDevOps、と整理できました。
講師よい整理です。補足すると、DevOpsを支える代表的な仕組みにCI/CDがあります。継続的インテグレーション、継続的デリバリ、継続的デプロイメントのことです。試験ではアジャイル開発の説明をDevOpsとして出す引っかけがよくあるので、「運用との連携」と「自動化」が書かれているかを必ず確かめましょう。
まとめ
DevOpsは開発(Development)と運用(Operations)を組み合わせた考え方で、開発側と運用側が密接に連携し、自動化ツールを活用して機能の導入や更新を迅速かつ継続的に行います。この問題の正解は、連携と自動化の両方を述べている選択肢です。試作を顧客と評価するのはプロトタイピングモデル、工程を順に進めて最後に運用へ引き渡すのはウォーターフォールモデル、短いサイクルを繰り返すのはアジャイル開発の説明です。アジャイル開発の説明をDevOpsとして出す引っかけに注意し、「運用との連携」と「自動化」があるかで見分けましょう。
解答・解説
正解はウです
この問題のテーマ
DevOpsの意味を正しく理解しているかを問う問題です。プロトタイピングやウォーターフォール、アジャイルといった開発の進め方と区別できるかがポイントになります。
解き方の考え方
DevOpsは「開発(Development)」と「運用(Operations)」を合わせた言葉です。そのため、両者の連携に触れているかどうかで選択肢を見分けられます。各選択肢が説明している内容を「どの開発手法の話か」に置き換えると、開発と運用の連携と自動化をあわせて述べているのはウだけだと分かります。
選択肢ごとの解説
- ×ア 開発側が重要な機能のプロトタイプを作成し,顧客とともにその性能を実測して妥当性を評価する。アの、重要機能の試作を顧客と一緒に評価するという記述は、プロトタイピングモデルの説明です。試作によって早い段階で妥当性を確かめる手法で、開発と運用の連携や自動化には触れていません。
- ×イ 開発側では,開発の各工程でその工程の完了を判断した上で次工程に進み,総合テストで利用者が参加して操作性の確認を実施した後に運用側に引き渡す。イの、工程ごとに完了を確認してから次の工程へ進み、最後に運用側へ引き渡すという記述は、ウォーターフォールモデルの説明です。完成後に運用へ渡す流れなので、開発と運用が継続して協働するDevOpsの考え方とは異なります。
- ○ウ 開発側と運用側が密接に連携し,自動化ツールなどを活用して機能の導入や更新などを迅速に進める。ウの、開発側と運用側が密接に連携し、自動化ツールを使って機能の導入や更新を迅速に進めるという記述は、DevOpsの特徴とそのまま一致します。ビルド・テスト・配備の自動化によって、変更を素早く安定して届け続けることがDevOpsの目的です。
- ×エ システム開発において,機能の拡張を図るために,固定された短期間のサイクルを繰り返しながらプログラムを順次追加する。エの、固定された短期間のサイクルを繰り返しながら機能を順次追加するという記述は、アジャイル開発の説明です。アジャイル開発はDevOpsと組み合わせて使われることもありますが、この記述は運用との連携や自動化に触れていないため、DevOpsの説明にはなりません。
補足
DevOpsを支える代表的な仕組みに、CI/CD(継続的インテグレーション、継続的デリバリ、継続的デプロイメント)があります。よくある引っかけは、アジャイル開発の説明をDevOpsとして出す選択肢です。「短いサイクル」だけではDevOpsとは言えないので、「運用との連携」と「自動化」が書かれているかを確認しましょう。
POINT
- DevOpsは開発(Development)と運用(Operations)を組み合わせた考え方です。
- DevOpsでは、開発側と運用側が組織の壁を越えて密接に連携します。
- ビルド・テスト・配備などを自動化するツールを活用し、機能の導入や更新を迅速かつ継続的に行います。
- 試作を顧客と評価するのはプロトタイピング、工程を順に進めるのはウォーターフォール、短いサイクルの繰り返しはアジャイルです。
