DevOpsの特徴とほかの開発手法との違いを整理する
ITパスポート試験 令和5年度 問40 / ソフトウェア開発管理技術 › 開発プロセス・手法
過去問にチャレンジ
ソフトウェア開発におけるDevOpsに関する記述として,最も適切なものはどれか。
- ア
運用側で利用する画面のイメージを明確にするために,開発側が要件定義段階でプロトタイプを作成する。
- イ
開発側が,設計・開発・テストの工程を順に実施して,システムに必要な全ての機能及び品質を揃えてから運用側に引き渡す。
- ウ
開発側と運用側が密接に連携し,自動化ツールなどを取り入れることによって,仕様変更要求などに対して迅速かつ柔軟に対応する。
- エ
一つのプログラムを2人の開発者が共同で開発することによって,生産性と信頼性を向上させる。
会話形式の解説
講師今回はDevOpsの問題です。選択肢にはほかの開発手法の説明が混ざっているので、それぞれがどの手法を説明しているかを見分けるのがポイントです。
受験者DevOpsという言葉は聞いたことがありますが、アジャイル開発などとの違いがあいまいです。名前から意味を推測できるのでしょうか。
講師できます。DevOpsは「開発」を表すDevelopmentと、「運用」を表すOperationsを組み合わせた言葉です。開発と運用が緊密に連携して進める手法だと覚えてください。
受験者そうすると、開発側と運用側が密接に連携して、自動化ツールを使って仕様変更に素早く対応するという選択肢が当てはまりそうです。
講師そのとおりで、それが正解です。開発と運用の連携、自動化ツールの活用、変更への迅速で柔軟な対応という3つの要素がそろっています。
受験者運用側が使う画面のイメージを、開発側が要件定義の段階で試作する選択肢も、運用側のことを考えているので少し迷いました。
講師迷いやすいところですね。要件定義の段階で試作品、つまりプロトタイプを作って完成イメージを共有し、要件を確かめるのはプロトタイプ開発の特徴です。開発側が試作品を作るだけでは、開発と運用が継続して協働しているとはいえないので、不適切です。
受験者設計・開発・テストを順番に進めて、全機能をそろえてから運用側に引き渡すという選択肢は、ウォーターフォール開発の説明でしょうか。
講師そのとおりです。ウォーターフォール開発の説明です。ただし、この問題で問われているDevOpsの説明ではないので、この選択肢は不適切です。DevOpsは継続的な連携と短いサイクルでの提供を重視するので、最後にまとめて引き渡す進め方とは考え方が異なります。
受験者1つのプログラムを2人で共同開発する選択肢も、協力しているという点ではDevOpsに近い気がします。
講師それはペアプログラミングです。一人がコードを書き、もう一人が確認しながら品質を高める、アジャイル開発の手法の一つです。協力しているのは開発者どうしで、運用担当との連携ではないので、不適切です。
受験者「誰と誰が協力しているか」を見れば区別できるのですね。DevOpsは開発と運用、ペアプログラミングは開発者どうし、と整理しておきます。
講師よい整理です。補足すると、DevOpsを支える仕組みとして、ビルドとテストを自動で行う継続的インテグレーション(CI)と、常にリリースできる状態を保つ継続的デリバリ(CD)があります。あわせて覚えておくと、自動化の意味がつかみやすくなります。
まとめ
DevOpsは開発(Development)と運用(Operations)を組み合わせた言葉で、両者が密接に連携し、自動化ツールを使って仕様変更などに迅速かつ柔軟に対応する手法です。要件定義の段階で試作品を作るのはプロトタイプ開発、工程を順に進めて全機能をそろえてから引き渡すのはウォーターフォール開発、2人で1つのプログラムを作るのはペアプログラミングです。選択肢を読むときは「誰と誰が協力しているか」に注目すると見分けやすくなります。DevOpsを支える仕組みとして、CI(継続的インテグレーション)とCD(継続的デリバリ)も押さえておきましょう。
解答・解説
正解はウです
この問題のテーマ
DevOpsの特徴を正しく理解しているかと、プロトタイプ開発・ウォーターフォール開発・ペアプログラミングといった他の開発手法と区別できるかを問う問題です。
解き方の考え方
DevOpsは「開発(Development)」と「運用(Operations)」を組み合わせた言葉です。まず、名前のとおり開発と運用が連携する内容になっているかを確認します。そのうえで、自動化ツールの活用と、変更への迅速で柔軟な対応という特徴が含まれているかを見ます。ほかの選択肢がそれぞれどの開発手法を説明しているかを特定できれば、消去法でも正解にたどり着けます。
選択肢ごとの解説
- ×ア 運用側で利用する画面のイメージを明確にするために,開発側が要件定義段階でプロトタイプを作成する。要件定義の段階で画面の試作品を作るという説明は、プロトタイプ開発の特徴です。試作品を使って利用者と完成イメージを共有し、要件を確かめる手法なので、DevOpsそのものではありません。開発側が試作品を作るだけでは、開発と運用が継続して協働しているとはいえません。
- ×イ 開発側が,設計・開発・テストの工程を順に実施して,システムに必要な全ての機能及び品質を揃えてから運用側に引き渡す。設計・開発・テストを順番に進め、全機能をそろえてから引き渡すという説明は、ウォーターフォール開発の特徴です。DevOpsは開発と運用の継続的な連携と短いサイクルでの提供を重視するため、最後にまとめて引き渡す進め方とは考え方が異なります。
- ○ウ 開発側と運用側が密接に連携し,自動化ツールなどを取り入れることによって,仕様変更要求などに対して迅速かつ柔軟に対応する。開発側と運用側が密接に連携し、自動化ツールを取り入れて仕様変更などに迅速かつ柔軟に対応するという説明は、DevOpsの特徴と一致します。連携・自動化・迅速な対応という3つの要素がそろっているため、これが正解です。
- ×エ 一つのプログラムを2人の開発者が共同で開発することによって,生産性と信頼性を向上させる。1つのプログラムを2人の開発者が共同で開発するという説明は、ペアプログラミングの特徴です。一人がコードを書き、もう一人が確認しながら品質を高めるアジャイル開発の手法の一つです。開発者どうしの共同作業であり、運用担当との連携を指すものではありません。
補足
DevOpsを支える仕組みとして、ビルドとテストを自動で行う継続的インテグレーション(CI)と、常にリリース可能な状態を保つ継続的デリバリ(CD)があります。エは開発者どうしの共同作業であり、開発と運用の連携とは別物です。選択肢を読むときは「誰と誰が協力しているか」に注目すると、DevOpsとほかの手法を区別しやすくなります。
POINT
- DevOpsは開発(Development)と運用(Operations)を組み合わせた言葉で、両者が緊密に連携して進める手法です。
- DevOpsでは自動化ツールを活用し、仕様変更などへ迅速かつ柔軟に対応することを目指します。
- 要件定義の段階で試作品を作って要件を確かめる手法は、プロトタイプ開発です。
- 工程を順に進めて全機能をそろえてから引き渡す手法は、ウォーターフォール開発です。
- 2人で1つのプログラムを共同で開発する手法は、ペアプログラミングです。
