チームによるゲーム開発を通じてスクラムの演習をします。
今回はファシリテーターがスクラムマスターになります。
ユーザーは自分達が兼任します。


1. キックオフ


演習 2-1: 開発用のリモートリポジトリを新規作成してメンバーを登録しましょう。

こちらの演習1-3を参考にして、代表者は GitHub 上に新規でパブリック・リモートリポジトリを作成します。

※ リポジトリ名は「team(チーム番号)」としてください (例) 1班なら team1

※ パブリック・リモートリポジトリなので著作権等に注意して下さい

代表者は端末を開いてリモートリポジトリを clone します。
再び GitHub に戻り、 こちらを参考にして代表者は他のチームメンバーにインビテーションを送ってコラボレーターとして登録をします。
各メンバーはリモートリポジトリを clone します。
代表者はリモートリポジトリへのリンクをプロジェクトフォルダ内に作成して下さい。
リンク名は「リモートリポジトリ.url」とします。

演習 2-2: Godot のプロジェクトをリモートリポジトリに登録しましょう。

A〜Dさん役を決めます。
Aさんはプロジェクトのテンプレートをダウンロードし、中に含まれるsrcフォルダを演習 2-1 で作成したローカルリポジトリ上に移動し、srcフォルダの名前を「game(チーム番号)」に変更してください。
Aさんは Godot を起動し、上で追加したプロジェクトをインポートして開いて下さい。
Aさんはこちらを参考にして「MyWorld」シーンを作成してください。
Aさんは端末を開き、ローカルリポジトリの中に移動します。
Aさんは

git status
git add .
git status
git commit -m "プロジェクト追加"
git push

の順にコマンドを実行してローカルリポジトリとリモートリポジトリを更新して下さい。
B〜Dさんも端末を開き、ローカルリポジトリの中に移動します。
B〜Dさんは

git pull --no-edit

を実行してローカルリポジトリを最新状態に更新して下さい。

※ --no-edit オプションを付け忘れると端末の画面が切り替わってコミットのメッセージを求められる場合があります。
その場合は「適当にコメントを入力する → ESC 押す → :wq と入力する → Enter 押す」の手順でコミットメッセージを入力して下さい。

提出物はありません。


演習 2-3: リポジトリの同時編集の練習をします。各自で自分のキャラクターを追加してみましょう。

全員 Godot を起動し、演習 2-2 で追加したプロジェクトをインポートして開いて下さい。
全員 こちら を参考にしてキャラクターシーンを作成し、インスタンス化してMyWorld上に表示してください。 AさんはTARO、BさんはHANAKO、CさんはAPPLE、DさんはORANGEとします。
実行確認をしてください。
全員

git status
git add .
git status
git commit -m "(自分の記号)がキャラ追加"

の順にコマンドを実行してローカルリポジトリを更新して下さい。 (例) Aさんなら git commit -m "Aがキャラ追加"
他のメンバーの更新内容を取り込むために

git pull --no-edit

を実行して下さい。

衝突が生じた場合、こちらを参考に衝突を解決してからもう一度上記コマンドを実行してください。

衝突が無くなったら

git push

を実行してリモートリポジトリを更新して下さい。
全員の git push が終わったら、最後に全員が

git pull --no-edit

を実行してローカルリポジトリを最新状態に更新して下さい。
提出物はありません。


2. リリースプランニング


演習 2-4: 要求定義をします。具体的には要求仕様書を作成しましょう。

代表者は要求仕様書のテンプレートファイル(yokyu.docx)をプロジェクトフォルダ内にアップロードして「要求仕様書.docx」に名前を変更して下さい。
メンバー各自は要求仕様書を開き、班名と氏名を記入して下さい。
開発チーム(自分達)がユーザー(自分達)に対してヒアリングを行い、どういうゲームをユーザーが作って欲しいと思っているのかを理解して箇条書きやイラスト等にまとめて下さい。なお

ユーザー(自分達)にゲームの名前を決めてもらい、要求仕様書に記述して下さい。


演習 2-5: 全体設計をします。具体的には全体仕様書を作成しましょう。

代表者は全体仕様書のテンプレートファイル(zentai.docx)をプロジェクトフォルダ内にアップロードして「全体仕様書.docx」に名前を変更して下さい。
メンバー各自は全体仕様書を開き、班名と氏名を記入して下さい。
全員で話し合い、要求仕様書を元に全体仕様書を作成して下さい。

※ プログラムする際に必要となる細かい仕様はスプリントに入ってから決めます。


演習 2-6: 企画書を作りプレゼンしましょう。

代表者は企画書のテンプレートファイル(kikaku.pptx)をプロジェクトフォルダ内にアップロードして「企画書.pptx」に名前を変更して下さい。
全員で話し合い、全体仕様書を元に企画書を作成して下さい。
発表者と記録係を選びます。
発表者はプロジェクタに映した企画書をプレゼン参加者に 1 分以内で説明します。
2 分間ディスカッションします。ディスカッション内容は記録係が記録します。
全てのチームのプレゼンが終わったら、ディスカッションで出た質問や意見を全体仕様書に反映させます。


演習 2-7: プロダクトバックログを作成しましょう。

こちらを参考にして、代表者はリモートリポジトリの Projects タブを開き、「プロダクトバックログ」という名前でカンバン(プロジェクト)を新規作成します。
他のメンバーもプロダクトバックログを表示し、 全体仕様書を元にチーム内で話し合いながらバックログアイテムを作成・登録していきます。

※1 担当者名は入れなくて良いです。
※2 「オンラインマニュアル作成」をアイテムに含めるのを忘れないで下さい

代表者はプロダクトバックログへのリンクをプロジェクトフォルダ内に作成して下さい。
リンク名は「プロダクトバックログ.url」とします。


以下準備中



3. スプリント


演習 2-8: スプリントが始まったら、まずはスプリントプランニングミーティングを行います。
まずは全体仕様書の見直しを行います。

代表者はプロジェクトフォルダ内に「スプリント(スプリント番号)」というフォルダを作成します。(例) スプリント1なら「スプリント1」
代表者は最新の全体仕様書をスプリントフォルダ内にコピーします。
代表者はコピーした全体仕様書の名前を「全体仕様書(スプリント番号).docx」に変更します。(例) スプリント1なら「全体仕様書1.docx」
全員がコピーした全体仕様書を開き、話し合って全体仕様書を見直します。
スプリント2以降なら前のスプリントで実施したレトロスペクティブやユーザーからのフィードバックも参考にして下さい。
「プロダクトバックログ」のToDo列に含まれるバックログアイテムの修正も合わせて行います。


演習 2-9: 次に今回のスプリントで実施するプロダクトバックログアイテムを選択します。

みんなで話し合ってこのスプリントで実施するバックログアイテムを選択し、Doing列に移動します。


演習 2-10: 次に詳細仕様書を作成しましょう。

代表者はスプリントフォルダ内に「詳細仕様書(スプリント番号).docx」を作成します。フォーマットは任意です。(例) スプリント1なら「詳細仕様書1.docx」
みんなで話し合って今回のスプリントで実装予定の内容を文章や箇条書き、クラス図、表、グラフ、イラスト等で詳しくまとめて下さい。


演習 2-11: 次はスプリントバックログを作成しましょう。

こちらを参考にして、代表者はリモートリポジトリの Projects タブを開き、「スプリントバックログ(スプリント番号)」カンバンを新規作成します。(例) スプリント1なら「スプリントバックログ1」
他のメンバーも作成したカンバンを表示し、 詳細仕様書を元にチーム内で話し合いながらスプリントバックログアイテムを作成・登録していきます。
その際に作業担当者も決めて名前(個人特定されないように要注意)も記入して下さい。
代表者はプロダクトバックログへのリンクをプロジェクトフォルダ内に作成して下さい。リンク名は「スプリントバックログ(スプリント番号).url」とします。(例) スプリント1なら「スプリントバックログ1.url」
スプリントバックログの ToDo の中にある作業の中から、各自が最初に実施する作業を一つ選んで Doing 状態に変えます。 ※ 依存関係に注意


演習 2-12: デイリースクラムミーティングを行いましょう。

相互に現状報告をしあってください。
相互にスコープ確認しあってください。
今後のスケジュールを確認しあってください。
もし詳細仕様の変更が必要なら、全員で話し合って詳細仕様書とスプリントバックログを更新して下さい。
もし全体仕様の変更が必要なら、全員で話し合って全体仕様書とプロダクトバックログを更新して下さい。
スプリントバックログを見て相互に本日自分が担当する作業の内容を確認しあってください。


演習 2-13: それでは開発作業を行いましょう。

各自はスプリントバックログで選んだ担当作業を行います。
適当なタイミングでローカルリポジトリを更新します。

Greenfootを閉じてから

git status
git add .
git status
git commit -m "(適当なコメント)"

の順にコマンドを実行してローカルリポジトリを更新して下さい。
担当作業が終わったら、他のメンバーの更新内容を取り込むために

git pull --no-edit

を実行して下さい。
もし衝突が起きたら演習 2-5 の手順で修正してください。

衝突しなかったら

git push

を実行してリモートリポジトリを更新して下さい。 ※ マナーとして git push するときは他のメンバーに「これから push する」と一声かけましょう。

対応するスプリントバックログのアイテムを Doing から Done 状態に変えます。
対応するタスクが全て終わったらプロダクトバックログも Done 状態に変えます。
スプリントバックログの ToDo の中に残っている自分の作業を一つ選び Doing 状態に変えて作業を再開します。
もし予定していた自分の作業が全て Done になっていたら他の人の手伝いをして下さい。


演習 2-14: 開発が終わったらスプリントレビューを行いましょう。

以下のチェック項目が全て満たされている事を確認して下さい。

スプリントバックログが全て Done 状態になっている(※)
今回のスプリントで実施する予定だったプロダクトバックログが全て Done 状態になっている(※)
リモートリポジトリにあるプロジェクトにはビルドエラーが起きない
リモートリポジトリにあるプロジェクトにはバグが無い
ライセンス違反をしていない
人格権違反や個人情報の漏洩をしていない

※ 時間内に Done 状態まで辿りつけなかったタスクは次のスプリントに回して下さい。


演習 2-15: レビューを終えたらレトロスペクティブ(振り返り)を行いましょう。

代表者はスプリントフォルダ内に「レトロスペクティブ(スプリント番号).docx」を作成します。フォーマットは任意です。(例) スプリント1なら「レトロスペクティブ1.docx」
全員で反省点や全体仕様書の見直し(※)などを話し合い、話し合った内容を記述して下さい。

※ ちゃんとした見直し作業はユーザーレビューも踏まえて次のスプリントのプランニングミーティングで行いますので、ここでは見直し項目を挙げる程度の簡単な作業で結構です。


演習 2-16: リリース作業を行いましょう。

代表者は Code → Download ZIP で最新リポジトリをzip形式で保存します。
zipファイルのファイル名を「(班番号)班-(スプリント番号).zip」に変更します。(例) 1班、スプリント1なら 「1班-1.zip」
スプリントフォルダ内にzipファイルをアップして下さい。


演習 2-17: クロスレビューをおこなってユーザーからフィードバックをもらいましょう。

各チームのゲームをプレイし、スクラムマスターが用意したアンケート項目に答えてください。


演習 2-18: 機会をみてオンラインマニュアルを作りましょう。

github pages を使ってオンラインマニュアルを作成して下さい。フォーマットは任意です。
プロジェクトフォルダにリンクを張って下さい。リンク名は「オンラインマニュアル.url」とします。


4. 保守・運用とクロージング


演習 2-19: 最後にクロージングをおこないましょう。

代表者はプロジェクトフォルダに「クロージング.docx」を作成します。フォーマットは任意です。
全体を通した振り返りを書いて下さい(1人1行程度、名前も記入)