ARE+-+Class+Outline

=Outline=

Course Overview

 * Half-Day, Whole Thing
 * Several short discussions
 * Mostly exercised based
 * Working in **groups**
 * Working on different applications (randomly assigned)

Logistics

 * Hours
 * Breaks
 * Facilities

Half-Day, Whole Thing
This is a very rapid, hit all the big areas kick-off. After this, we go through all of the subjects again but in more depth.
 * Exercise: **Group** Project vision
 * Exercise: **Group** Preliminary stories
 * Exercise: **Group** I.N.V.E.S.T
 * Exercise: **Group** Sequencing
 * Exercise: **Group** Release Planning
 * Exercise: **Group** Iteration Planning
 * Exercise: **Group** Iteration Burn-down
 * Exercise: **Group** Velocity

Setting the Context

 * Context Free Questions

Elevator Pitch

 * Examples
 * Hand Out Projects to **groups**
 * Create Elevator Pitch (5 minutes)
 * All **groups** report back
 * Pass 2
 * All **groups** report back
 * **Class** exercise, what makes a good elevator pitch?

Examples

 * Three kinds
 * Users ask for it: e.g. I want to withdraw money from ATM
 * Users assume: I can check my balance
 * Users won't ask but must be there: security, logging in
 * Exercise: **Groups brainstorm** user stories (15 minutes)
 * **Class** all groups report back
 * **Class** exercise: What should stories have?

I.N.V.E.S.T

 * The I.N.V.E.S.T Guideline
 * **Group** exercise, INVEST two stories

Stakeholder Analysis (G&W89, ch.7)

 * Customer versus User
 * Railroad Paradox
 * Listing Stakeholders
 * Exercise: **Group brainstorm** stakeholders
 * Exercise: **Group** merge, join, group stakeholders
 * Categorizing Stakeholders
 * Friendly
 * Ignore
 * Unfriendly
 * Exercise: **Group** categorize each of your stakeholders
 * Describing Stakeholder Participation
 * Who: By surrogate, sample or exhaustive
 * When: Participation continuous or at discrete intervals
 * How: Information based on experience or experiment
 * Exercise: **Group** define stakeholder participation

User Roles

 * What and Why
 * Exercise: **Group** create roles for your project
 * Be prepared to report back
 * Role Modeling Steps(cohn06, page 33)
 * Exercise: **Group** Brainstorm with cards
 * Organize
 * Consolidate
 * Refine
 * Exercise: **Class** exercise, how do you consolidate?(cohn06)
 * Frequency
 * Level of expertise
 * Proficiency with computers
 * Proficiency with software
 * General goal

Recommendations

 * For each role, develop stories
 * For each story, use one role
 * Exercise: **Group** find additional stories
 * Exercise: **Groups** report back on differences using roles
 * Exercise: **Class** where do you explore? (cohn06, ch04)
 * User Interviews
 * Questionnaires
 * Observation
 * Story-Writing workshops

General Discussion

 * Examples
 * Exercise: **Group** add/update tests for 3 stories
 * Exercise: **Groups** report back
 * Exercise: **Class** what makes a good test (cohn06, ch6)
 * Express details from conversations
 * Document assumptions
 * Basic criteria to know if story is implemented
 * Clarify details
 * Write before coding
 * Customer specifies
 * Testing is part of process

Example

 * FitNesse-based acceptance tests demonstration
 * Walk-through
 * Tables
 * Fixtures
 * General organization

Project Wiki

 * Preliminary Project Organization
 * Expressing Stories With Tables
 * Different kinds of stories
 * Common setup and configuraiotn
 * Who does what?

Exercise: **Class** what makes a good story? (chon06, ch07)

 * Start with user role goal epics* Slice the cake
 * Write closed stories
 * Put constraints on "constraint cards" (first version of quality attributes)
 * Size relative to time horizon
 * Defer UI as long as possible
 * Common sense, some things are not stories
 * Include roles
 * Write for one user
 * Write in active voice
 * Customer writes them
 * Do not number your cards
 * It's a reminder/placeholder, not the requirements

Initial Story Stack

 * MoSCoW Story Stack
 * Must have for release 1, 2, 3, etc.
 * Should have for release 1
 * Could have
 * Won't have this time

Exercise: **Group** story points must haves for release 1

 * Exercise: **Class** problems with estimation
 * Estimation Process 2: Wide-band Delphi
 * Note: Conversation starts, ends, cards updated
 * Discuss Story
 * Independent estimation
 * Discuss high/low
 * Repeat until group is close (more than 3x is an issue)
 * After you have "a few" triangulate
 * Continue with stack after triangulation

Iteration, Part 1

 * 1 - 4 weeks
 * Stories developed, tested, usable

Sequencing, part two

 * Why don't we use the work priority?
 * Exercise: **Group** sequencing stories
 * Exercise: **Class** discussion on sequencing
 * Customer always wins
 * Applies to a lot of customers
 * Applies to a few important customers
 * Cohesion to other stories
 * Address risk
 * Addresses constraints/infrastructural needs

Sequencing part three

 * Sum of pairs of comparisons
 * Exercise: **Group** review & review sequen

Iteration, Part 2

 * Story points per iteration
 * Plan iterations
 * Velocity
 * Guessing
 * Run initial iteration
 * Historical
 * Exercise: **Group** develop release plan
 * Exercise: **Class** discussion recommendations and guidelines

Planing Poker

 * Discuss stories, highest priority first
 * Break into tasks
 * Estimate tasks
 * Take assignments
 * Validate sensibility

Assessing Progress

 * Measure actual velocity
 * **Group** exercise, measure velocity
 * Assign developer role to member of group
 * S/he picks how much was completed
 * Any new stories to add?
 * Any experience suggesting changing other stories?
 * Exercise: **Group** burn-down chart 1

Iteration Planning Simulation

 * IterationPlanningSimulationInstructions
 * Repeat the first process a few times
 * Add a few, re-estimate a few
 * Practice measuring velocity
 * Practice developing burn-down charts

Additional Project Work

 * Equipment Repair Facility

Brainstorming

 * First Part
 * Do not allow criticism or debate
 * Let your imagination soar
 * Shoot for **quantity**
 * Mutate and combine ideas
 * **Group** brainstorm project 1
 * Second Part
 * Voting with a threshold
 * Voting with campaign speeches
 * Blending ideas
 * Apply criteria
 * Scoring or ranking systems
 * **Group** pair down list

Making Meetings Work

 * Participation and Safety
 * Establish an interruption policy
 * Set time limits (and meet them)
 * Outlawing personal attacks and put-downs
 * Reduce pressure
 * Allow time to finish & finish on time
 * Handling related issues
 * Amend the Rules
 * Make it safe to** //not//** attend
 * Publish an agenda and stick to it
 * Stay out of emergency mode
 * Handling people who don't belong
 * Include the right people

Lightweight Domain Modeling

 * Example
 * Discussion: **Class** where can this be useful?
 * Visual vocabulary
 * Gets developers understanding domain
 * Consistent vocabulary
 * Aids in effective communication
 * Exercise: **Group** develop DM for some stories
 * All **groups** report back
 * **Group** DM pass 2

UML

 * (System-level) Sequence Diagrams
 * State Models
 * Analysis Patterns
 * Part-part specification
 * Role

Props

 * Role Cards
 * Developer (x4)
 * Subject Matter Expert (x4)
 * User (x4)
 * Product Owner (x4)
 * Business Analyst (x4)
 * Item||Formula||Minimum||
 * 3x5 Cards||1 + 1 for every 2 students||2||
 * PostIts(r)||1 + 1 per every 2 students||2||
 * Static Images||1 + 1 for every 4 students||2||
 * Dry Erase Markers(4 pack)||1 + 1 for every 4 students||2||
 * Slides||1 for every student||#Students||
 * Book||1 per student||# Students||
 * 6-sided dice||1 + 1 for every 4 students||2||
 * Decks of Playing cards||1 + 1 for every 4 students||2||


 * Ref||Title||
 * Cohn06||User Stories Applied - For Agile Software Development||
 * G&W89||Exploring Requirements - Quality Before Design||

Design Problems

 * ITunesCompetetorDesignProblem
 * GmOnStarCompetetorDesignProblem
 * TimeTrackingForConsultingCompanyDesignProblem
 * ClinicalTrialsTrackingDesignProblem
 * DvrDesignProblem

=Notes=
 * For the purpose, **Sprint** <--> **Iteration**
 * Group** --> Small group, approximately 4 people
 * Class** --> Entire class

=Work in Progress= = Introduction = = Setting the Context = = The Elevator Pitch = = Brainstorming = = User Stories = = Stakeholder Analysis = = User Roles = = User Stories Revisited = = Acceptance Testing User Stories = = Story Guidelines = = Lightweight Domain Analysis = = Must, Should, Could, Won't = = Making Meetings Work = = Estimation and Story Points = = Release Planning = = Iteration Alpha and Omega = = ATM Exercise =