Outline

Introductions

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

Project Kick-off

Setting the Context

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?

User Stories

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

Stakeholders & Roles

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

User Stories Revisited

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

Conditions of Satisfaction

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

Executable Tests: FitNesse

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?

Story Guidelines

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

Preliminary Story Sequenceing

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

Estimation and Story Points

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

Release Planning

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

Iteration Planning

Planing Poker

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

Post Iteration

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


Additional Project Work

  • Equipment Repair Facility

Appendix

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
  1. 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


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