<?php // Header information for all assignments
	$path = ".."; // What is the header level required?
	$itemid = "4";
	include "${path}/header.php";

	// Find this group
	$result = isolateXMLNode("communication.xml","/communication/lab",$itemid);
	if ($result != null) {
		$groupNode = $result->getElementsByPath("group",1);
		if ($groupNode != null) {
			$itemid = $groupNode->getText();
		}
	
		echo "<h2 align=\"center\">Communication Lab ${itemid}";
		$taskNode = $result->getElementsByPath("name",1);
		if ($taskNode != null) {
			$task = $taskNode->getText();
			echo "<br/>\n${task}";
		}
		echo "</h2>\n\n";
	}
?>


<p>
The focus of today's discussion is to work on the  
<?php echo "<a href=\"${path}/assignments/assignment5.php\">"; ?>milestone document</a>,
which is due this weekend, together with your
<?php echo "<a href=\"${path}/assignments/assignment4.php\">"; ?>nondigital prototype</a>.
In this document, you will layout your sprints for the semester, predicting what features 
will appear in each deliverable for the remainder of the semester.
</p>

<p>
We know that this is a hard document to write, because it is so early in the semester.  
While you might have a good idea what you will do for the gameplay prototype, beta release 
is very far off. We simply want you think constructively about the process. We understand 
that these milestones are very likely to change as the semester progresses.  But making 
a guess about what you are going to do helps you get organized.
</p>

<p>
If you are unsure about anything, the 
<?php echo "<a href=\"${path}/about/staff.php\">"; ?>course staff</a> will be 
circulating about the room.  They have been through this exercise before, do not 
hestitate to call on them for help.
</p>

<hr size=2 width="100%" align=center>

<h3>Outlining the Milestone Document</h3>

<p>
The milestone document outlines what you plan to do for each two week deliverables 
(gameplay, technical, alpha, beta, final), and how you plan to split up the work.  
This document is not a contract; you are allowed to change your mind as the semester 
progresses.  However, it is a good way to start thinking about your process.
</p>

<p>
Obviously, the milestone document is to big to do in a single communication lab.
Therefore, we want you to focus on the most important subset.  Start with the five
major two-week software deliverables:
</p>

<ul>
	<li style="margin-top: 5pt">
	<b>Gameplay Prototype</b>: First software prototype; a throw-away prototype in any language.
	</li>
	<li style="margin-top: 5pt">
	<b>Technical Prototype</b>: An evolutionary prototype of a technical component; written in CUGL and on a device.
	</li>
	<li style="margin-top: 5pt">
	<b>Alpha Release</b>: Basic code complete with a playable level and a level editor (level editor need not be on device)
	</li>
	<li style="margin-top: 5pt">
	<b>Closed Beta Release</b>: Basic features complete with a several playable levels and plans for user testing.
	</li>
	<li style="margin-top: 5pt">
	<b>Open Beta Release</b>: Levels complete but not polished. You should be able to distribute the game to other people.
	</li>
</ul>

<p>
For each of the these five milestones, write a paragraph describing the following two items.
</p>

<hr width="50%">

<a name="deliverables"></a>
<h4>Deliverables</h4>

<p>
What do you expect to show us in class for this particular milestone? Remember our 
description of Scrum(lite); you are picking a small list of features from your final 
project, and implementing them for this smaller milestone. Which features are you
choosing for for this milestone?
</p>

<p>
Obviously, your features should match the description of the tasks listed above.  
However, it is also a good idea to put in smaller tasks that are important, 
but not on the schedule. For example, we require that everyone complete a level 
editor for their game.  We strongly recommend that you finished this by alpha 
release. However some groups only create a simple editor for alpha, and push 
the most of the work on the level editor off until beta (and their games are
not as good because of this).
</p>

<p>
Another thing to keep in mind is issues such as game AI.  If your game is
a strategy game, where AI really matters, then you should start working on it
right away.  However, if it is a platformer or other game where AI is less
important, then you can delay it until the end.
</p>

<hr width="50%">

<h4>Test for Acceptance</h4>

<p>
Now that you know what the deliverables are, how do you measure success?
Or more appropriately, how would you tell that the milestone was a failure?  
Answers like "playable gameplay prototype" are not enough; we need to know 
what you mean by terms like "playable".  
</p>

<p>
To help you with your test for acceptance, imagine that I am grading your
milestone deliverable.  How would you like me to evaluate it for a grade?
What would count as an A, and what would count as a B? While I will not
actually give letter grades on an individual milestone, this is a good
way to express your test for acceptance.
</p>

<p>
It is very important that you have concrete goals for your tests for acceptance.
Subjective criteria like "the game is fun" is very hard to measure, and so 
you cannot tell if you passed the test or not.  On the other hand, you can
measure things like "my roommate really likes the game" or "the majority
of the focus group we kidnapped off the street believe the game is better than
<i>Modern Warfare</i>".  Other examples of good tests are "we can play the game
for 20 minutes without it crashing" or "our artist, who has no programming 
experience, can use the level editor to make a level".  These are the types of
things we are looking for.
</p>

<p>
If you are unsure of what consitutes a good Test for Acceptance, look
at the milestone document for 
<a href="http://web3.cs.cornell.edu/cs3152/documents/milestones-lifted.pdf">Lifted</a>.
This early document has served as a good model for acceptance tests in this class.
</p>

<hr size=2 width="100%" align=center>

<h3>Submission</h3>

<p>
You should try to complete as many of the deliverables and tests for acceptance as you
can during lab time.  However, we are not going to ask you to submit this communication
lab by itself.  Instead, you should spend the rest of the week expanding your work from 
this lab into a full-blown 
<?php echo "<a href=\"${path}/assignments/assignment5.php\">"; ?>milestone document</a>.
You will then submit this document this weekend.
</p>

<br/>
<?php
	include "${path}/footer.php";
?>