Planning in XP

planning loops

(from https://en.wikipedia.org/wiki/Extreme_programming)

Project Phases

This is not waterfall! These phases often overlap and recur.

Recurring Meetings

Stories

Stories vs Features

Usually a given feature has one or more stories.

There are other types of stories and tasks...

Story Lifecycle

tracker story lifecycle

(this diagram is from Pivotal Tracker but the workflow applies to most Agile processes and tools)

Story Independence

Story Body Template

Story titles should be brief; story bodies should follow this pattern:

AS A ____      [role]
I WANT TO ____ [action]
SO THAT ____   [motivation]

Notes: * If you write "As a user" you're probably doing it wrong -- use a more specific role name instead * "I want to" should be an action, not just a desire

Acceptance Criteria

Acceptance Criteria Template

GIVEN ____ [precondition]
WHEN ____  [action]
THEN ____  [postcondition/assertion]

Sample Story

Title: Sign Out

Body: As a logged-in user at home, I want to sign out of the application, so that my other family members can't use my account

Acceptance Criteria:

Given I am signed in as a normal (non-admin) user
When I look at the nav bar
Then I see the "Sign Out" button

Given I am signed in as a normal user
When I click on the "Sign Out" button
Then I am returned to the home page

Given I am signed in as a normal user
When I click on the "Sign Out" button
Then I cannot view the "Edit Profile" page

Given I am not signed in
When I look at the nav bar
Then I do not see the "Sign Out" button

Backlog

A backlog is a list of stories

that have been

written,

estimated,

☑ and prioritized

☑ in linear order

Backlog checklist

When writing stories, it is very tempting to skip one of these steps

e.g. :

so please try to treat the previous slide as a checklist, and push back if someone wants to skip a step, or do it out of order, or impatiently do several steps at once

Planning Meeting

Estimation and Prioritization

The customer gets to say how soon; the coders get to say how hard

Estimation

Easy as 1-2-3

In general...

A point is not a promise of time, but is an estimate of effort

Points can also be awarded for complexity or risk or mystery

Prioritization

How to Prioritize?

It’s up to the customer, BUT here are some guidelines:

Acceptance Meetings

Flowchart:

        ____________fix________       
       v                       \   /-> new feature
in-progress -> done -> accept/reject? 
                          |        \-> new bug
                          v
                          Done

Acceptance Meetings: Coders Welcome!

Planning Meetings: Coders Welcome!

The Veil of Ignorance

The goal is for any coder to be able to work on any story (with help, if needed, from the right pair partner).

Retrospectives

  1. 5 minutes: intro and "take temperature"
  2. 10 minutes to brainstorm Happy/Sad/Confused (aka Good/Bad/Weird) topics
  3. 10 minutes to examine, cluster & vote on clustered topics
  4. 10 minutes each to discuss top two topics
  5. 5 minutes for wrapup and "appreciations"

Agile Planning Tools

Project Planning with Pivotal Tracker

Project Planning with Pivotal Tracker (2)

Project Planning with Pivotal Tracker (3)

Project Planning with Pivotal Tracker (4)

Next Lesson   Previous Lesson

Outline

[menu]

/