この課題では、複雑でどこから取り組んだらよいか分からないような課題に取り組み、自分でプロジェクトを完成までガイドしていく方法を習得するのが目的です。
特に、以下のような考え方を学びます。
ゲームの分析と目標設定でみつけた最も重要な要素を実装し、その部分だけ遊べるゲームを作成してください。
このゲームに付け加えたい機能をひとつづつ挙げ、チケットを作成してください。
チケットの内容は、機能の追加だけではなく、ゲーム内に表示すべき「何か」を表す変数を定義するというチケットも必要な場合は作成してください。
どの順番でチケットを完了させることができるか、考えてください。
作成されたチケットのうち、実現すれば達成感のあるようなひとまとまりの機能のかたまりをリストアップします。これをマイルストーン(一里塚)と呼びます。
スプリントとは、短距離のダッシュをあらわします。どこかに急いでいくときに、息切れするまでは走り、疲れたら歩くというのを繰り返すと思いますが、この「息切れするまで走る」ことの一回一回をスプリントと呼びます。
スプリント作業中はこの機能の実現に集中し、作業中に見つけた今回のマイルストーンとは関連の薄い不具合やアイデアは、新しくチケットを作るだけにします。
プログラミングで実装する関数や変数をイメージし、どのように使うのかを先に決めてしまいます。
正常に動くとどうなるかを記載します。trueになるはずの式をassertで表現します。また、異常な入力や例外的な入力(例えば対戦相手のモンスターのHPが最初から0であった場合など)に対しても、どのような対応をするのかを決めて置き、想定する動作をテストプログラムに書いておきます。
チケットに書かれた内容をこなし、一通りの実装作業が終わったら、講師は作業結果をバージョン管理システムへ登録します。バージョン管理システムを利用することで、どのような目的でコードが編集されたのか一目瞭然になり、問題がおきたときに見直しやすくなります。
スプリントの間、プログラムの更新とバージョン管理システムへの登録を繰り返し、マイルストーンが達成されたらスプリントは終了となります。
スプリントの間達成が困難だと判断したチケットは、先送りにすることもできます。
マイルストーンの作成し、スプリントで機能を実装していく流れを繰り返します。