CS 458 - Week 3 Lecture 2 - 2017-09-07
-----
CRC Cards -
* sometimes incuded as an XP design practice
* Class, Responsibilities, and Collaboration Cards
* you write the name of a class you might need on a card
* you list the responsibilities of that class on the left
(these will eventually help lead to determining methods
for that class?)
* you list classes this class might/will collaborate
with on the right
-----
Spike solutions
* to reduce risk
* A spike solution is a very simple program to
explore potential solutions
-----
* we'll be using a more Scrum-approach to project
management this semester;
BUT you should still be familiar with
the XP planning game/release planning practices;
* team members and customer negotiate
to figure out which small set of user
stories will be included in the
next iteration;
...each user story includes an estimate
of how long it will take
* as part of negotiations:
pick THREE from: cost
quality
scope
time
* planning happens often, for
each iteration
-----
* stand-up meeting
* "daily", short, standing in a circle so won't go too
long, everyone attends, communicate problems,
solutions, promote team focus --
then figure out which pairs will go work on what
-----
USER STORIES
* Beck and Martin, "Planning Extreme Programming"
A user story should be:
* UNDERSTANDABLE to customers and developers
* TESTABLE
* VALUABLE to the customer
* SMALL ENOUGH that several in an iteration
* the SET of user stories changes FREQUENTLY
...you can add user stories,
you can remove user stories,
you can modify user stories,
...you are actually never done writing user stories
during a project; <-- until it dies...!
(you ARE done with A user story when WORK
is started on it...)
* language needs to be NOT too technical,
needs to be understandable by the customer!
* often written on index cards
* each of our CS 458 user stories WILL include an estimate
of how long you think it will take to implement
* for example, how many hours
* (there are fancier ways to estimate, also)
* each will also include, on the back of its card,
the ACCEPTANCE CRITERIA <-- these will DRIVE
the Acceptance Tests
specifically, how you can tell you've "met" this
story!
* some examples using the style we will be trying
this semester
(pretend this is on an index card)
-----
EXAMPLE 1 of a user story
AS AN internet banking customer,
I WANT to see a rolling balance for my everyday account
SO THAT I know the balance of my account after transaction
is applied
estimate: 5 hours
Example acceptance criteria:
* The rolling balance is displayed
* The rolling balance is calculated for each transaction
* The balance is displayed for every transaction for the
full period of time transactions are available
* The balance is not displayed if a filter has been applied
-----
EXAMPLE 2
AS A Snapple cardholder
I WANT to be able to pick up my pending credit from MySnapper
[note: MySnapper is a client app for users to top up their
ePurse, check balance, etc.)
SO THAT I have money on my ePurse
Estimate: 3 hours
Example acceptance criteria:
* I can see on MySnapper that there are pending credit(s)
for my card
* I can choose which credit(s) to pick up
* I can see my new purse balance when I have chosen to
pick up a credit
* I can't top off my card or buy a pass when there are
pending credits for my card
-----
ATTEMPTED Example 3
As a customer,
I WANT words I enter into the comments field to be spell-checked
SO THAT I don't have to look up spellings myself
Estimate: 2 hours
Example Acceptance criteria:
* Most misspelled words
shows up highlighted in the comments field