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
- 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?
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
- 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
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 tonot 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 | 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&Weinberg89 | Exploring Requirements - Quality Before Design |
Design Problems
Notes
For the purpose,
- Sprint <–> Iteration
- Group –> Small group, approximately 4 people
- Class –> Entire class
Comments