CSC321.01 2016S, Class 06: User Stories
=======================================

_Overview_

* Preliminaries.
    * Admin.
    * Upcoming Work.
    * Good Things to Do.
    * Questions.
* User stories.
* Exercise: Developing user stories.
* Additional work time: Hartl 3.

Preliminaries
-------------

### Admin

* The Registrar's office wants me to remind you that today is the
  add/drop deadline.  (Yes, we've moved it forward a week.  Don't
  blame me)
* Friday PSA.

### Upcoming Work

* Reading Journal for Sunday at 8pm.
    * You have now read three different introductions to Ruby (the Codecademy
      course, the SaaSbook, and Hartl).  What do you see as the major 
      differences between the approaches?  What approach do you find
      most compelling?
    * Now that you've seen a broader introduction to Ruby, what do you
      consider the most exciting aspects of working with Ruby?
    * What aspect of Ruby confused you the most? Try to explain it in 
      your own words.
* For Monday: Finish the chapter 3 project.  Send me a link to your GitHub
  repo.  "CSC 321 Chapter 3 Project (Stu Dent and Par  Tner)"
* For Monday: Skim Hartl 5 and do any setup you consider necessary.
* For Wednesday: SaaSBook 2 and 4 (text or video or combination).

### Good Things to Do

#### Academic

* Africans vs African Americans, Noon, Saturday, JRC 101.
* Franz Schubert's Winterreise, Sunday, 2 p.m. Sebring-Lewis
* Next week's Rosenfield Symposium on Campaign Finance 
* Monday, February 8, 4:15 p.m. in Bucksbaum Miriam Langer enjoins you to 
  "Do Your Work in Public" 
  (part of the series "Digital in Public: Intellectual and Technical Skills 
  for Making a Difference")
* Monday, February 8, 7:30-9:00, JRC 101: The Complex Relation Between 
  Alcohol and Sexual Assault
* Noon Tuesday in the White PDR: Bowie, Mickey, and the NFL: Copyright in
  the 21st century (copies of the reading outside Sam's office)
* 7:30 pm next Tuesday in ARH 131 - Funding for unfunded internships
* 4:15 pm next Thursday: Alums!
* 5:30 pm next Thursday: ACM
* Anything in next week's Carnival and Creativity series

#### Peer

* Track and Field Grinnell Invite February 6. (11 a.m.)

#### Other

* Social Dance Workshop Tuesdays 7:00-8:00 in Bucksbaum Dance Studio
  (starting next week)
* Fill out the Disability Student Space Survey
  <https://docs.google.com/forms/d/1hIXOjkd1j9goBgoWoDv2EiZu8vhhETOZS3bDTcKypLE/viewform?usp=send_form>

### Questions

User Stories
------------

* What are they?
* How do we build them?
* How do we use them?

What are user stories?

* Narrative descriptions of features that your project needs, typically
  in the context of a particular audience for your project.
* Typically in the form "As a ______ I need to be able to ______ so that
  I can _______."  (Sometimes rearranged.)
* Should be specific, measurable, achievable, relevant, and more.

How do we write user stories?

* Interview the client.
* Record needs.
* Refine.
* Refine until it can be done within one sprint.
* Review with clients.

How do we use user stories?

* Select between them as we plan our sprints.
* Communicate with the client.
* Use them as tests for our system.
* Ask clients to prioritize.

User Stories Exercise
---------------------

_We are developing a new four-year planning system for the College ..._

* Whole group question: Who are your audiences?
    * Students (NB)
    * Faculty members (PW)
    * Registrar (AM)
    * Alumni (EM)
    * SGA (RJHB)
    * Administrators
    * Department chairs (SR)
* We will break into individual groups to conduct user interviews.  
* We will come back together with the stories we have gathered.
* Strive for relatively small/narrow stories.  

Stories!

* As a student, I want to enter all of my prospective classes for the
  next four years, so that I can fill in the declaration of major
  form.
    * As a student, I want to be able to enter a prospective class and
      see it on my four-year plan.
    * As a student, I want to be able to check that it meets the
      major requirements for my declaration of major form.
         * As a student, I want to be able to check that the semester
           I plan to take a course is the semester that it is offered
           so that I can be confident that my schedule is viable.
             * In particular, I want to make sure that CSC 321 is offered
               in fall 2017 given the current department plans.
* As a student, I'd like to be able to track progress toward my major so
  that I can graduate in time.
     * As a student, I'd like to see a check box for each requirement
       I have met (green) and a note for each requirement I have not met
       (red).
* As Dean, I want to see the distribution of classes, so that I can 
  make sure that there is sufficient staffing in each department.
* As a _, I want to _, so that I can _.
* As a _, I want to _, so that I can _.
* As a _, I want to _, so that I can _.
* As a _, I want to _, so that I can _.
* As a _, I want to _, so that I can _.
* As a _, I want to _, so that I can _.

Debrief

* Knowing that you need to keep asking questions
* It's easy to think about think about things that I want when you
  are pretending to be someone else.  But you really want to talk
  to the real person.
* A lot of ambiguity 
    * From your manager (resolve by talking)
    * From your client (resolve by user stories)
* The order in which people describe things may suggest something about
  importance.
* With appropriate prompts, you can get your client to come up with new
  ideas (some times more than you would ever want to implement)

Work Time
---------

_Continue working on Hartl 3._

_Sam notes that next time I should just do user stories._
