令和3年度 秋期 応用情報技術者試験 午後 問題 問9 インターネット販売システム開発へのスクラムの導入とプロセス確立

学習ガイド

家電メーカのP社が、インターネット販売システムをスクラムで開発する事例です。プロダクトオーナの役割、人材育成を狙ったチーム編成、リリースのサイクルの狙い、バーンダウンチャートとリファクタリング、ストーリポイントとベロシティによる計算が問われます。プロダクトオーナのR氏とユーザチーム代表のT氏の会話から、要件追加をめぐる認識の違いと、あらかじめ決めておくべき調整の手順を読み取ります。

この記事で押さえる論点

  • アジャイル開発の目的に合わせたプロジェクトの体制と人材育成の方針を説明できる
  • リリース計画におけるストーリポイントとベロシティを用いた進捗管理を述べられる
  • 開発途中の要件追加依頼に対するスコープの調整と関係者との合意形成の手順を説明できる
  • リファクタリングによるソースコードの内部構造の整理の目的を説明できる

問題本文

問9 家電メーカでのアジャイル開発に関する次の記述を読んで,設問1~3に答えよ。

P社は,中堅の家電メーカである。従来,家電量販店を通じた拡大戦略で事業を伸ばしてきたが,ここ数年の競争激化によって収益性が急速に悪化している。そこで,P社は,ビジネスモデルを,家電量販店を通じた間接販売から,顧客となる消費者へ直接販売するインターネット販売へ転換する戦略を打ち出した。これを受けて,消費者向けのシステムの整備が急務となり,CDO (Chief Digital Officer)は,インターネット販売システム開発プロジェクト(以下,本プロジェクトという)を発足させた。

〔本プロジェクトの計画〕

(1) 本プロジェクトの目的
・インターネット販売は競合相手が多く,インターネット販売システムへの要求が満たされないと顧客は簡単に競合相手に移ってしまうので,P社として,顧客からの要求に対して,競合相手と比べてより迅速に対応できるようにする。
・これまで一部のプロジェクトだけで用いていたスクラムによるアジャイル開発を採用し,今後同社での利用を拡大させていく端緒とする。

(2) 本プロジェクトの方針
・P社にはスクラムの経験者が少ない。そこで試行開発の段階を設けて,スクラム開発の理解を深め,スクラムの開発要員を育成し,プロセスを確立しながら本プロジェクトを遂行する。
・試行開発を経て,本格的なスクラム開発の人材を確保し,顧客からの要求に迅速に対応できるようにする。

(3) 本プロジェクトのスコープ
・インターネット販売システムは,Webストア,モバイルアプリケーションソフトウェア(以下,モバイルアプリという)及びSNSの三つのサブシステムから構成される。Webストアから開発に着手することにして,これを試行開発と位置付ける。
・Webストアのプロダクトバックログアイテムのうち,本プロジェクトの開始時点で洗い出した要件をユーザストーリの形式で記述して,開発の規模,難易度,複雑さなどによる開発作業の量(以下,サイズという)と優先順位で分類し,ストーリポイントを算出した。Webストアのユーザストーリ数と,サイズごとのストーリポイントの合計を表1に示す。

表1 Webストアのユーザストーリ数とサイズごとのストーリポイントの合計
図の説明テキスト
サイズ ユーザストーリ数 (優先順位 A) ユーザストーリ数 (優先順位 B) ユーザストーリ数 (優先順位 C) ユーザストーリ数 (合計) ストーリポイントの合計
小 9 0 4 13 26
中 7 0 4 11 33
大 2 1 5 8 40
合計 18 1 13 32 99

注1) ユーザストーリをサイズに応じて小,中,大の三つに分類する。
注2) 優先順位は高い順にA,B,Cで表す。プロダクトバックログアイテムをスプリントバックログに割り当てるときに,この優先順位を厳守するものとする。
注3) ユーザストーリには,サイズに応じて小に2,中に3,大に5のポイント(以下,ptという)を付与して,これをストーリポイントとする。

(4) 本プロジェクトの体制
本プロジェクトの体制を表2に示す。

表2 本プロジェクトの体制
図の説明テキスト
チーム 役割 役割の説明 担当者名 担当者の開発経験 所属・職位
スクラムチーム プロダクトオーナ a R氏 ・システム開発プロジェクトの経験はあるが,アジャイル開発プロジェクトは初めてである。 営業部門・課長
スクラムチーム スクラムマスタ ・スクラムの実施方法を計画・助言する。
・必要に応じてプロジェクトの関係者とのコラボレーションを促進する。
S氏 ・システム開発プロジェクトの経験は豊富で,スクラムによるアジャイル開発プロジェクトを多く経験している。 情報システム部門・主任
スクラムチーム 開発チーム ・スプリントの計画を作成する。
・実際の開発作業に携わる。
(略) ・情報システム部門と営業部門の混成で,専任8名をアサインする。8名のうち,3名はスクラムによるアジャイル開発プロジェクトを経験している。 情報システム部門及び営業部門・スタッフ
ユーザチーム ユーザチーム代表 ・顧客からの要求を調査・調整するユーザチームの代表 T氏 ・アジャイル開発プロジェクトに参加した経験はない。
・競合相手の状況や顧客の要求などを把握している。
マーケティング部門・課長
(以下,省略)

①開発チームは,まずは全メンバでWebストアの開発チームを編成し,Webストアの開発の完了後に,モバイルアプリの開発チームとSNSの開発チームを編成することとする。

〔本プロジェクトの実行と管理〕

スクラムチームは,本プロジェクトを次のように進めることになった。

(1) スケジュールとその管理方法

・競合相手のWebストアは,1年に1〜2回程度のリリースであるのに対して,P社のWebストアは,②リリースのサイクルを3か月に1回とした。
・Webストアのリリースは,リリース1とリリース2から成る。プロダクトバックログアイテムは優先順位によって次の計画でリリースする。
 ・優先順位A…リリース1
 ・優先順位B…リリース1 ただし,今後の進捗状況でリリース2でも可
 ・優先順位C…リリース2
・リリース内では一連のスプリントを繰り返し実施し,各スプリントはS-01,S-02というように連番を付けて表す。
・スプリントは2週間を1単位とする。
・本プロジェクトの進捗状況が計画からどのくらい離れているのかを管理するために,横軸に時間,縦軸にストーリポイントを割り当て,残りのストーリポイントを折れ線グラフで示すbを用いることにした。

(2) スプリントバックログの対応実績

・Webストアのスプリントバックログ対応実績集計表(S-04終了時点)を表3に示す。

表3 Webストアのスプリントバックログ対応実績集計表(S-04終了時点)
図の説明テキスト
サイズ リリース1 S-01 リリース1 S-02 リリース1 S-03 リリース1 S-04 リリース1 S-05 リリース1 S-06 リリース1 合計 リリース2 S-07〜S-12
小 A 2個
4pt
A 2個
4pt
4個
8pt
中 A 2個
6pt
A 1個
3pt
A 3個
9pt
6個
18pt
大 A 1個
5pt
A 1個
5pt
2個
10pt
合計 4個
10pt
2個
8pt
3個
9pt
3個
9pt
12個
36pt

注記1 サイズ別の各スプリントバックログの上段は,優先順位別のユーザストーリ数を表す。下段は,ユーザストーリのptを表す。合計行は終了したスプリントのユーザストーリ数及びptの合計を表す。
注記2 サイズ,優先順位,ptの意味は表1の注を参照すること。

(3) プロダクトバックログアイテムの追加依頼

S-04の途中で,T氏とR氏の間で次の会話が交わされていた。

T氏:重要な新規要件を優先順位Aとして追加することがビジネス上必須となった。

R氏:その要件が重要なことは理解したが,サイズ大のプロダクトバックログアイテム1個を新規追加することになるので,リリース1でリリースする計画のプロダクトバックログアイテムを見直すことになる。

T氏:アジャイル開発なので,要件の柔軟な追加や変更ができると思っていた。新規追加のプロダクトバックログアイテムは優先順位Aなので,これは必ずリリース1に入れてほしい。その上で,アジャイルの作業生産性は高いはずだから,計画したプロダクトバックログアイテムも全てリリース1に入れられるのではないか。

R氏:依頼については理解したが,リリース1でリリースするプロダクトバックログアイテムの見直しは不可避だ。

T氏:納得できないので,別途調整させてほしい。別件だが,機能的に重複するところがある類似の要件を,今後数件追加させてもらう可能性が高い。

R氏:了解した。その件については,プログラムの外部から見た動作を変えずにソースコードの内部構造を整理するcを実施することで,今後の拡張性・柔軟性を高めたいと思う。

〔プロセスの確立と実施〕

(1) S-04終了時のレトロスペクティブ

・開発チームは,人,関係,プロセス及びツールの観点からS-04のレトロスペクティブを実施し,うまくいった項目とうまくいかなかった項目を特定・整理した。
・開発チームは,S氏の助言を得て,③R氏とT氏との今回のプロダクトバックログアイテムの追加依頼の会話を踏まえて,関係者間でのプロセスの確立について検討することにした。
・R氏は,S氏の支援のもと,アジャイル開発は作業生産性の向上を目的とするものではないことをT氏に認識してもらうことにした。

(2) S-05開始時のスプリントプランニング

・S-05,S-06及びリリース2のベロシティとして,S-01~S-04の各スプリントで測定したベロシティの平均値を用いる。
・R氏は,確立したプロセスに則って調整した結果,リリース1については,T氏依頼のプロダクトバックログアイテム1個を新規追加した上で,優先順位Aのプロダクトバックログアイテムのリリース日を守り,リリース2については,残りの全てのプロダクトバックログアイテムをリリース日までに完了することでT氏と合意した。このとき,リリース2で対応予定のストーリポイントは d ptとなり,ベロシティ上の問題はない。

設問と解答・解説

設問1

〔本プロジェクトの計画〕について,(1),(2)に答えよ。

(1)配点 2点

表2中の a に入れる最も適切な字句を解答群の中から選び,記号で答えよ。

ア. S-04におけるスプリントバックログを作成する。
イ. ガントチャートで本プロジェクトのスケジュールを管理する。
ウ. 情報システム部門へのスクラムの導入を指導,トレーニング及びコーチングする。
エ. 本プロジェクトのプロダクトバックログアイテムを作成・管理する。

模範解答

選択肢エ: 本プロジェクトのプロダクトバックログアイテムを作成・管理する。

解説

表2の「プロダクトオーナ」の役割を問う問題です。
スクラムにおいて、プロダクトオーナはプロダクトの価値を最大化することに責任を持ち、プロダクトバックログの管理(アイテムの追加、優先順位付け、見直しなど)を行います。本文中でもR氏は「リリース1でリリースする計画のプロダクトバックログアイテムを見直すことになる」と判断しており、この役割を担っています。

各選択肢の解説

  • ア: スプリントバックログの作成は、スプリントプランニングにおいて開発チームが行う役割です。
  • イ: ガントチャートによるスケジュール管理は、従来のウォーターフォール開発におけるプロジェクトマネージャの役割であり、スクラムのプロダクトオーナの役割ではありません。
  • ウ: スクラムの導入指導、トレーニング、コーチングを行うのはスクラムマスタ(S氏)の役割です。
  • エ: 正解です。プロダクトバックログアイテムを作成・管理するのはプロダクトオーナの役割です。
(2)配点 4点

本文中の下線①の体制とした狙いは何か。本プロジェクトの方針に沿った人材育成の観点から,40字以内で述べよ。

模範解答

スクラムの開発要員を育成し,本格的なスクラム開発の人材を確保する。

採点基準

知識・理解度(内容)2点
  • 2点: 「スクラムの開発要員を育成する」という趣旨が明確に含まれている
  • 1点: 開発メンバーの育成に関する言及はあるが、目的として不十分な表現となっている
  • 0点: 開発要員の育成に関する趣旨が含まれていない
論理性(構造)2点
  • 2点: 「本格的なスクラム開発の人材を確保する」といった将来を見据えた目的が構造として示されている
  • 1点: 人材確保への言及はあるが、試行段階と本格的な展開のつながりが不明確である
  • 0点: 本格的な人材確保という将来への目的が示されていない

解説

本文中の「まずは全メンバでWebストアの開発チームを編成し」という体制の狙いについて、人材育成の観点から記述する問題です。
根拠となるのは〔本プロジェクトの方針〕(2)の記述です。
そこには「試行開発の段階を設けて,スクラム開発の理解を深め,スクラムの開発要員を育成し,プロセスを確立しながら本プロジェクトを遂行する」「試行開発を経て,本格的なスクラム開発の人材を確保し,顧客からの要求に迅速に対応できるようにする」とあります。
Webストアの開発は〔本プロジェクトのスコープ〕(3)において「試行開発」と位置付けられています。したがって、この試行開発を通じて要員を育成し、その後の本格的な開発に向けた人材を確保することが狙いです。

高得点のポイント

  • 「スクラムの開発要員を育成する」という試行段階での直接的な目的が含まれていること
  • 「本格的なスクラム開発の人材を確保する」という将来に向けた目的が含まれていること

設問2

〔本プロジェクトの実行と管理〕について,(1),(2)に答えよ。

(1)配点 4点

本文中の下線②の狙いは何か。顧客の特性を考慮し,30字以内で述べよ。

模範解答

顧客からの要求に競合相手より迅速に対応すること

採点基準

知識・理解度(内容)2点
  • 2点: 「顧客からの要求に対応する」という趣旨が明確に記述されている
  • 1点: 顧客の要求に関する言及はあるが、対応の意図が不十分である
  • 0点: 顧客の要求に関する趣旨が含まれていない
論理性(構造)2点
  • 2点: 「競合相手より迅速に」という比較に基づく目的構造が示されている
  • 1点: 迅速に対応することには触れているが、競合相手との比較構造が欠けている
  • 0点: 迅速さや競合比較の構造が示されていない

解説

「リリースのサイクルを3か月に1回とした」という方針の狙いを、顧客の特性を踏まえて記述する問題です。
根拠となるのは〔本プロジェクトの計画〕(1)の目的です。
顧客の特性として「インターネット販売システムへの要求が満たされないと顧客は簡単に競合相手に移ってしまう」ことが挙げられています。
これに対するP社の方針は「顧客からの要求に対して,競合相手と比べてより迅速に対応できるようにする」ことです。競合相手のリリースサイクルが「1年に1〜2回程度」であるのに対し、P社は「3か月に1回」と短く設定することで、競合よりも素早く顧客の要求をシステムに反映し、顧客の流出を防ぐ狙いがあります。

高得点のポイント

  • 顧客の要求に対応するという目的が明示されていること
  • 「競合相手より迅速に」対応するという、サイクルを短くした理由となる比較構造が含まれていること
(2)配点 2点

本文中の b に入れる適切な字句を解答群の中から選び,記号で答えよ。

ア. アーンドバリュー
イ. アローダイアグラム
ウ. インクリメンタル
エ. スパイラル
オ. バーンダウンチャート
カ. プロトタイピング
キ. マイルストーン
ク. リファクタリング

模範解答

選択肢オ: バーンダウンチャート

解説

本文中の bb に入る、プロジェクトの進捗状況を管理するためのグラフの名称を問う問題です。
「横軸に時間,縦軸にストーリポイントを割り当て,残りのストーリポイントを折れ線グラフで示す」という説明は、アジャイル開発(スクラム)でスプリントやリリースの進捗・残作業量を視覚化するために用いられるバーンダウンチャート(Burndown Chart)の定義そのものです。

各選択肢の解説

  • ア: アーンドバリューは、プロジェクトの計画と実績をコストとスケジュールの観点から定量的に評価する進捗管理手法です。
  • イ: アローダイアグラムは、作業の順序関係を矢印で結んで表現し、クリティカルパスを特定する図法です。
  • ウ: インクリメンタルは、システムを少しずつ構築して機能を追加していく開発手法(インクリメンタル開発)のことです。
  • エ: スパイラルは、設計・実装・テストのサイクルを繰り返し、徐々にシステムの完成度を高めていく開発モデルです。
  • オ: 正解です。残作業量を示す折れ線グラフはバーンダウンチャートです。
  • カ: プロトタイピングは、開発の初期段階で試作品(プロトタイプ)を作成し、ユーザの要件を確認する手法です。
  • キ: マイルストーンは、プロジェクトにおける重要な節目やイベントを指します。
  • ク: リファクタリングは、外部から見たプログラムの振る舞いを変えずに内部構造を改善することです。
(3)配点 2点

本文中の c に入れる適切な字句を解答群の中から選び,記号で答えよ。

ア. アーンドバリュー
イ. アローダイアグラム
ウ. インクリメンタル
エ. スパイラル
オ. バーンダウンチャート
カ. プロトタイピング
キ. マイルストーン
ク. リファクタリング

模範解答

選択肢ク: リファクタリング

解説

本文中の cc に入る、プログラムの内部構造を整理する手法の名称を問う問題です。
「プログラムの外部から見た動作を変えずにソースコードの内部構造を整理する」手法は、リファクタリング(Refactoring)と呼ばれます。機能拡張や仕様変更が繰り返されるアジャイル開発において、ソースコードの可読性や保守性(今後の拡張性・柔軟性)を保つために重要なプラクティスです。

各選択肢の解説

  • ア〜キ: 設問2(2)の解説と同様、進捗管理手法や別の開発モデルなどを指しており、ソースコードの内部構造を整理する手法ではありません。
  • ク: 正解です。動作を変えずに内部構造を改善するのはリファクタリングです。

設問2(1)は,正答率がやや高かった。アジャイル開発を社内で展開する際には,アジャイル開発の技術的な側面について習熟するだけでなく,企業の競争力を維持,強化し,市場の変化にも迅速に対応するという経営的な側面についても考慮することが重要であることを理解してほしい。

設問3

〔プロセスの確立と実施〕について,(1),(2)に答えよ。

(1)配点 3点

本文中の下線③について,誰とどのようなプロセスを確立しておくべきか。
40字以内で述べよ。

模範解答

T氏とプロダクトバックログアイテム変更に伴う対応方法を決めておく。

採点基準

知識・理解度(内容)2点
  • 2点: プロセス確立の対象者が「T氏(顧客・ユーザ側代表)」であり、対象が「バックログアイテム追加・変更時の対応(ルール)」であると明記されている
  • 1点: 対象者(T氏)か、対象プロセス(アイテム変更対応)のいずれか一方のみが明記されている
  • 0点: どちらも不明確、あるいは誤った内容が記述されている
論理性(構造)1点
  • 1点: 文脈に沿ったプロセス確立の目的として自然な構成で記述されている
  • 0点: 誰とどのようなプロセスを確立するかが文脈として繋がっていない

解説

S-04途中での、プロダクトバックログアイテム追加に伴うR氏(プロダクトオーナ)とT氏(ユーザチーム代表)の認識のズレを踏まえ、今後誰とどのようなプロセスを確立すべきかを記述する問題です。
T氏は「アジャイル開発なので,要件の柔軟な追加や変更ができると思っていた」と述べ、「計画したプロダクトバックログアイテムも全てリリース1に入れられるのではないか」とも考えていました。これに対し、開発チームの生産性(ベロシティ)は一定であるため、R氏は「リリース1でリリースするプロダクトバックログアイテムの見直しは不可避だ」と説明しました。
この対立(ステークホルダ間の認識不一致)を防ぐため、要件の出し手であるT氏との間で、アイテムの追加・変更が発生した際の対応方法(優先順位の見直しやスコープの調整など)についてあらかじめ合意し、ルール化しておくプロセスが必要です。

高得点のポイント

  • 対象者が「T氏」(またはユーザチーム代表)であると明確に示されていること
  • 確立すべきプロセスが「プロダクトバックログアイテム追加・変更時の対応方法(ルール化や調整手順)」に関することであると示されていること
(2)配点 3点

本文中の d に入れる適切な数値を整数で答えよ。

模範解答

50

解説

リリース2で対応予定となる残りのストーリポイント dd を計算する問題です。

  1. ベロシティの算出
    S-05以降で用いるベロシティは、S-01~S-04の平均値です。
    表3より、各スプリントの完了ptは以下の通りです。
  • S-01: 1010 pt
  • S-02: 88 pt
  • S-03: 99 pt
  • S-04: 99 pt
    合計 10+8+9+9=3610 + 8 + 9 + 9 = 36 pt となり、4スプリントの平均ベロシティは 36÷4=936 \div 4 = 9 pt/スプリント です。
  1. 当初の総ストーリポイントの確認
    表1より、優先順位ごとの合計ストーリポイントを算出します。
  • 優先順位A: (9×2)+(7×3)+(2×5)=18+21+10=49(9 \times 2) + (7 \times 3) + (2 \times 5) = 18 + 21 + 10 = 49 pt
  • 優先順位B: (1×5)=5(1 \times 5) = 5 pt
  • 優先順位C: (4×2)+(4×3)+(5×5)=8+12+25=45(4 \times 2) + (4 \times 3) + (5 \times 5) = 8 + 12 + 25 = 45 pt
    全体の当初合計は 49+5+45=9949 + 5 + 45 = 99 pt です。
  1. リリース1の消化と追加要件
    T氏の依頼で優先順位A・サイズ大(55 pt)が1個追加されたため、優先順位Aの合計は 49+5=5449 + 5 = 54 pt となりました。
    表3より、S-04までに完了した優先順位Aのアイテムは合計 3636 pt です。
    したがって、優先順位Aの残りは 54−36=1854 - 36 = 18 pt となります。
    S-05とS-06(2スプリント)の想定ベロシティ合計は 9×2=189 \times 2 = 18 pt であり、リリース1で優先順位Aのアイテムは全て完了できます。

  2. リリース2で対応予定のポイント
    リリース2では「残りの全てのプロダクトバックログアイテム」を完了させます。
    これは優先順位B(55 pt)と優先順位C(4545 pt)の全てを指すため、対応予定のストーリポイント dd は 5+45=505 + 45 = 50 pt となります。
    (※リリース2はS-07~S-12の6スプリントであり、想定対応可能ptは 9×6=549 \times 6 = 54 pt なので、5050 ptであれば「ベロシティ上の問題はない」という記述とも矛盾しません)

設問3(1)は,正答率がやや低かった。スプリントの途中で生じたステークホルダ間の認識不一致という問題に対して,誰とどのようなプロセスを確立しておくべきかを問うたが,アジャイル開発におけるプロダクトオーナなどの役割について理解できていないと思われる解答が散見された。アジャイルの基本概念だけでなく,実際のプロジェクトにアジャイルを適用する場合,誰にどのような役割を担わせるのかが重要であることについて理解を深めてほしい。

Spineチーム