day2_planninganagileproject

Upload: sam-hwang

Post on 09-Apr-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 Day2_PlanningAnAgileProject

    1/85

    Planning an Agile Projectfor advance user

    Sam Hwang

    Sep 2009

  • 8/8/2019 Day2_PlanningAnAgileProject

    2/85

    2

    Course agenda

    Overview of Agile Planning High-Level Visioning Product Backlog User Stories

    Release Planning Estimating Velocity

    Today

  • 8/8/2019 Day2_PlanningAnAgileProject

    3/85

    3

    Overview

    Agile Perspective onPlanning Projects vs.Traditional

    Overview of Agile Planning

    High-Level Visioning

    One Pager Jefferies Exercise

    Product Backlog

    User Stories

    Spikes

    Write User Stories

    Release Planning

    Estimating

    Summary (Recognize thatchange will happen, Utilize

    Feedback, Ask forAutonomous bits offunctionality)

  • 8/8/2019 Day2_PlanningAnAgileProject

    4/85

    4

    Adaptive process control

    Useful when

    A market is moving so fast, that requirementschange frequently

    Technology is moving so fast, thatimplementation details change frequently

    Embrace Change Inspect and Adapt

  • 8/8/2019 Day2_PlanningAnAgileProject

    5/85

    5

    An Iterative Process

    v2.0 v2.1 v2.3 v2.4

    Design

    Test

    Build

    Innovate

  • 8/8/2019 Day2_PlanningAnAgileProject

    6/85

    6

    Course agenda

    Overview of Agile Planning High-Level Visioning Product Backlog User Stories

    Release Planning Estimating Velocity

    Today

  • 8/8/2019 Day2_PlanningAnAgileProject

    7/85

    7

    The Scrum Process

    Sprint Planning Meeting Sprint Review/Sprint Retrospective

  • 8/8/2019 Day2_PlanningAnAgileProject

    8/85

    8

    PlanningVision

    1

    2

    V1.0 V1.1 V1.2

    3

    ReleasePlan

    SprintPlan

  • 8/8/2019 Day2_PlanningAnAgileProject

    9/85

    9

    Product PlanVision

    1

    Elevator Statement(Short Description)

    ForwhothatUnlike

    Customer Attributes

    1. People who work in 2. Those who need a 3.

    Feature / Ability to

    1. Share content with2. Personalized ads on3.

    Metrics:Sign-ups xxx

    Customer Benefits

    1. More accurate 2. Better customer service 3.

    Performance Attributes

    1. 3000 hits/hour2.

    Tradeoff Matrix

    Scope

    Resources

    Schedule

    Quality

    Fixed

    Firm Flexible

    Major Milestones

    Xyz features xxxAbc features xxx

    One Pager

  • 8/8/2019 Day2_PlanningAnAgileProject

    10/85

    10

    Create your one pager

    Elevator Statement

    ForwhothatUnlike

    Customer Attributes

    1. People who work in 2. Those who need a 3.

    Feature / Ability to

    1. Share content with2. Personalized ads on3.

    Metrics:

    Sign-ups xxx

    Customer Benefits

    1. More accurate 2. Better customer service 3.

    Performance Attributes

    1. 3000 hits/hour2.

    Tradeoff Matrix

    Scope

    Resources

    Schedule

    Quality

    Fixed Firm Flexible

    Major Milestones

    Xyz features xxxAbc features xxx

    Metrics and ROI

  • 8/8/2019 Day2_PlanningAnAgileProject

    11/85

    11

    Tradeoff matrix

    Fixed Firm Flexible Target

    Scope 300+ story points

    Schedule 4-5 months

    Resources $400,000

    Low Defects 1 high bug permonth

    Dark Bar

  • 8/8/2019 Day2_PlanningAnAgileProject

    12/85

    12

    Product vision box

    Design a box for the software

    Even if the software wont ship in abox

    Write 3-4 key bullet points to sellthe software

    Easier to come up with 15 The challenge is distilling the list to

    3-4 key points

  • 8/8/2019 Day2_PlanningAnAgileProject

    13/85

    13

    Sample product vision box

    Easy integration with most

    insurance systems Support for multiple chairs

    with appointment setting bychair

    Multi-language support One click database backup

  • 8/8/2019 Day2_PlanningAnAgileProject

    14/85

    14

    Write a press release (option)

    Collaboratively write the press release

    youd like to see released at the end What are the key points youd make about

    the product What quotes would you have and who

    would they be from?CEO? Team members? Customers?

  • 8/8/2019 Day2_PlanningAnAgileProject

    15/85

    15

    Press release templateThe _______company announced today the successful completion of the _________project.

    This project provides _________________________________________________. The

    customer for this project, ________________, indicated in a recent interview that they selected

    ___________ as their supplier due to the following key benefits:

    1. ______________________________________

    2. ______________________________________

    3. ______________________________________

    ________________ also identified several features that they felt were particularly useful. Theseinclude:

    1. ______________________________________

    2. ______________________________________

    3. ______________________________________

    ____________ noted that the single most important benefit of their successful project was

    _________________________________________________________________.

  • 8/8/2019 Day2_PlanningAnAgileProject

    16/85

    16

    Course agenda

    Overview of Agile Planning

    High-Level Visioning Product Backlog User Stories

    Release Planning Estimating Velocity

    Today

  • 8/8/2019 Day2_PlanningAnAgileProject

    17/85

    17

    ProductBacklogProductBackl

    og

  • 8/8/2019 Day2_PlanningAnAgileProject

    18/85

    18

    Product backlog

    A prioritized list of

    requirements Items of highest value

    at the top Prioritized by the

    product owner

    This is the

    product backlog

    This is the

    product backlog

  • 8/8/2019 Day2_PlanningAnAgileProject

    19/85

    19

    Items get more thought at the top Mirum est ut animus agitatione

    motuque corporis excitetut.

    Iam undique silvae

    et solitudo ipsumque illud silentium

    quod venationi datur

    magna cogitationis

    incitamenta

    sunt. Proinde cum venabere

    licebit, auctore me

    ut panarium et lagunculam

    sic etiam pugillares feras.

    Experieris non Dianam

    magis montibus quam

    Progressively refined

    As an item nears the top, it

    gets more thought

    Items at the top are

    Smaller

    More thought through

    Ready to be worked on

    Reproduced with kind permission byMike Cohn mountaingoatsoftware.com

  • 8/8/2019 Day2_PlanningAnAgileProject

    20/85

    20

    Feature use Keep it lean

    Always

    7%

    Often

    13%

    Sometimes

    16%

    Rarely

    19%

    Never

    45%

    Standish Group study reported at XP2002 by Jim Johnson, Chairman

    Often or AlwaysUsed: 20%

    Rarely or Never

    Used: 64%

  • 8/8/2019 Day2_PlanningAnAgileProject

    21/85

    21

    A sample product backlog

    Backlog item Estimate

    Allow a guest to make a reservation 3As a guest, I want to cancel a reservation. 5

    As a guest, I want to change the dates of a

    reservation. 3

    As a hotel employee, I can run RevPAR reports(revenue-per-available-room)

    8

    Improve exception handling 8

    Bug #4334 Improve error handling with 1

    Investigate PayPal integration 9

    Wh i h P d B kl

  • 8/8/2019 Day2_PlanningAnAgileProject

    22/85

    22

    Whats in the Product Backlog

    Everything that needs to be done!

    Features Can be in the form of user stories

    Tasks/Bugs

    Spikes

    Wh S ik ?

  • 8/8/2019 Day2_PlanningAnAgileProject

    23/85

    23

    Whats a Spike?

    A Spike is an investigation

    The deliverable is team knowledge Estimates

    Documentation

    Education

    A Spike is time boxed

    C d

  • 8/8/2019 Day2_PlanningAnAgileProject

    24/85

    24

    Course agenda

    Overview of Agile Planning

    High-Level Visioning Product Backlog User Stories

    Release Planning Estimating Velocity

    Today

    U S i k b kl i

  • 8/8/2019 Day2_PlanningAnAgileProject

    25/85

    25

    User Stories make great backlog items

    Stories are traditionally written onnote cards.May be annotated with

    notes, estimates, etc.

    Card

    Source: XP Magazine 8/30/01,Ron Jeffries.

    Details behind the story comeout during conversations withproduct owner

    Conversation

    Acceptance tests confirm the

    story was coded correctly

    Confirmation

    S l f t l b it

  • 8/8/2019 Day2_PlanningAnAgileProject

    26/85

    26

    Samples from a travel website

    Asauser,Iwantto

    reserveahotelroom.

    Asauser,Iwantto

    reserveahotelroom.

    As a user, I want tocancel a reservation.

    As a user, I want tocancel a reservation.

    As a vacation planner, Iwant to see photos of thehotels.

    As a vacation planner, Iwant to see photos of the

    hotels.

    As a frequent flyer, Iwant to rebook a past trip.As a frequent flyer, Iwant to rebook a past trip.As a frequent flyer, Iwant to rebook a past trip,so that I save time

    booking trips I take often.

    As a frequent flyer, Iwant to rebook a past trip,so that I save time

    booking trips I take often.

    Wh th d t il ?

  • 8/8/2019 Day2_PlanningAnAgileProject

    27/85

    27

    Where are the details?

    As a user, I can cancel a reservation.

    Does the user get a full or partial refund?

    Is the refund to her credit card or is it site credit?

    How far ahead must the reservation be

    cancelled? Is that the same for all hotels?

    For all site visitors? Can frequent travelers cancellater?

    Is a confirmation provided to the user?

    How?

    D t il diti f ti f ti

  • 8/8/2019 Day2_PlanningAnAgileProject

    28/85

    28

    Details as conditions of satisfaction

    The product owners conditions of satisfaction can beadded to a story

    These are essentially tests

    As a user, I can cancel areservation.

    As a user, I can cancel areservation. Verify that a premium member can

    cancel the same day without a fee.Verify that a non-premium member is

    charged 10% for a same-daycancellation.

    Verify that an email confirmation issent.

    Verify that the hotel is notified ofany cancellation.

    Verify that a premium member can

    cancel the same day without a fee.Verify that a non-premium member is

    charged 10% for a same-daycancellation.

    Verify that an email confirmation issent.

    Verify that the hotel is notified ofany cancellation.

    Details added in smaller stories

  • 8/8/2019 Day2_PlanningAnAgileProject

    29/85

    29

    Details added in smaller stories

    As a user, I cancancel a reservation.

    As a user, I cancancel a reservation.

    As a premium sitemember, I can cancel areservation up to the

    last minute.

    As a premium sitemember, I can cancel areservation up to the

    last minute.

    As a non-premiummember, I can cancelup to 24 hours inadvance.

    As a non-premiummember, I can cancel

    up to 24 hours inadvance.

    As a site visitor, I amemailed a confirmationof any cancelledreservation.

    As a site visitor, I amemailed a confirmationof any cancelledreservation.

    MMF: Minimal Marketable Feature

  • 8/8/2019 Day2_PlanningAnAgileProject

    30/85

    30

    MMF: Minimal Marketable Feature

    Headline

    Scenarios

    "As a (user),

    I want to (do something),

    so that (I achieve some goal)"

    Stocking the product backlog

  • 8/8/2019 Day2_PlanningAnAgileProject

    31/85

    31

    Stocking the product backlog

    You can start by identifying only a sprintsworth of backlog items

    The key is to write product backlog itemswith different levels of detail

    Fine-grained for stories about to be worked on

    Coarse-grained for stories further in the future

    The product backlog iceberg

  • 8/8/2019 Day2_PlanningAnAgileProject

    32/85

    32

    The product backlog iceberg

    User Story

    A description of desiredfunctionality told from the

    perspective of the user orcustomer.

    Theme

    A collection of relateduser stories.

    Epic

    A large user story.

    An example

  • 8/8/2019 Day2_PlanningAnAgileProject

    33/85

    33

    An example

    As a VP Marketing, I wantto review the performance

    of historical promotionalcampaigns so that I canidentify and repeatprofitable ones.

    As a VP Marketing, I wantto review the performance

    of historical promotionalcampaigns so that I canidentify and repeatprofitable ones.

    As a VP Marketing, I want toselect the timeframe to use whenreviewing the performance of past

    promotional campaigns, so that Ican identify and repeat profitableones.

    As a VP Marketing, I want toselect the timeframe to use whenreviewing the performance of past

    promotional campaigns, so that Ican identify and repeat profitableones.

    As a VP Marketing, I can select

    which type of campaigns (directmail, TV, email, radio, etc.) toinclude when reviewing theperformance of historical

    promotional campaigns.

    As a VP Marketing, I can select

    which type of campaigns (directmail, TV, email, radio, etc.) toinclude when reviewing theperformance of historical

    promotional campaigns.

    A large user story;weeks to implement

    Implementation-size stories;days to implement

    An example

  • 8/8/2019 Day2_PlanningAnAgileProject

    34/85

    34

    An example

    As a VP Marketing, I want to seeinformation on direct mailings whenreviewing historical campaigns.

    As a VP Marketing, I want to seeinformation on direct mailings whenreviewing historical campaigns.

    As a VP Marketing, I want to see

    information on television advertisingwhen reviewing historical campaigns.

    As a VP Marketing, I want to see

    information on television advertisingwhen reviewing historical campaigns.

    As a VP Marketing, I want to seeinformation on email advertising whenreviewing historical campaigns.

    As a VP Marketing, I want to seeinformation on email advertising whenreviewing historical campaigns.

    Story writing workshops

  • 8/8/2019 Day2_PlanningAnAgileProject

    35/85

    35

    Story-writing workshops

    Includes developers, users, customer,others

    Brainstorm to generate stories

    Goal is to write as many stories aspossible

    Some will be implementation ready Others will be epic user stories

    No prioritization at this point

    Start with large user stories and

  • 8/8/2019 Day2_PlanningAnAgileProject

    36/85

    36

    giterate

    As a frequent flyer,I want to see checkmy account.

    As a frequent flyer,I want to see checkmy account.

    As a frequent flyer,I want to ...

    As a frequent flyer,I want to ...

    Frequent

    flyer

    Frequent

    flyer

    As a frequent flyer,I want to book atrip using miles.

    As a frequent flyer,I want to book atrip using miles.

    As a frequent flyer,I want to rebook atrip I take often.

    As a frequent flyer,I want to rebook atrip I take often.

    As a frequent flyer,I want to requestan upgrade.

    As a frequent flyer,I want to requestan upgrade.

    As a frequent flyer,I want to see if my

    upgrade cleared.

    As a frequent flyer,I want to see if my

    upgrade cleared.

    As a frequent flyer,I want to book a

    trip.

    As a frequent flyer,I want to book a

    trip.

    For Your Project

  • 8/8/2019 Day2_PlanningAnAgileProject

    37/85

    37

    For Your Project

    Write the product backlog for your project. Identify your Users 10 minutes

    Write some epics 10 minutes 15 minutes:

    Write some large stories Write some implementation-ready userstories

    Write the product backlog for your project.Write the product backlog for your project.

    Identify your UsersIdentify your Users10 minutes10 minutes

    Write some epicsWrite some epics10 minutes10 minutes 15 minutes:15 minutes:

    Write some large storiesWrite some large stories

    Write someWrite some implementationimplementation--readyready useruserstoriesstories

    Consider this template

    As a , I want to , so

    that .

    What makes a good story?

  • 8/8/2019 Day2_PlanningAnAgileProject

    38/85

    38

    What makes a good story?

    Independent

    Negotiable

    Valuable

    Estimable

    Sized Appropriately

    Testable

    INVEST

    Reproduced with kind permission byMike Cohn mountaingoatsoftware.com

    Independent1

    1

  • 8/8/2019 Day2_PlanningAnAgileProject

    39/85

    39

    Negotiable

    Stories are not contracts

    Leave or imply some flexibility

    Valuable

    To users or customers, not developers Rewrite developer stories to reflect value to users orcustomers

    22

    33

    Independent

    Dependencies lead to problems estimating andprioritizing Can ideally select a story to work on without pulling in 18other stories

    Estimatable

    4

    4

  • 8/8/2019 Day2_PlanningAnAgileProject

    40/85

    40

    Estimatable

    Because plans are based on user stories, we need to beable to estimate them

    Sized Appropriately

    Small enough to complete in one sprint if youre about towork on it Bigger if further off on the horizon

    Testable

    Testable so that you have a easy, binary way of knowingwhether a story is finished Done or not done; no partially finished or done except

    66

    55

    Product Owner adds a feature

  • 8/8/2019 Day2_PlanningAnAgileProject

    41/85

    41

    Product Owner adds a feature

    You are the ScrumMaster for the teamdeveloping the online dating website

    You are 3 months into a 6-month plan The team is halfway through a 2-week sprint The Product Owner comes to the you andwants to add wedding planning features to thedating site.In fact, the Product Owner hasscheduled a trade-show demo in two weeks.

    Youve never heard of this feature before What do you do?

    Put all requirements in the PB

  • 8/8/2019 Day2_PlanningAnAgileProject

    42/85

    42

    Put all requirements in the PB

    Product

    Backlog

    User Stories

    Bugs List

    Performance

    Capacity & BCP

    BUSINESS

    REQUIREMENTS

    Continuous Integration

    Complex Activity

    Tools implementation

    Retrospective actions

    ENGINEERING

    REQUIREMENTS

    Deployment

    simplicity

    Live service cost

    reduction

    RUN/SUPPORT

    REQUIREMENTS

    Values

  • 8/8/2019 Day2_PlanningAnAgileProject

    43/85

    43

    Values

    Time and Moneysavings

    Increase satisfaction

    Performance, Faster delivery Run/Support

    More users

    More Revenue

    Increase satisfaction

    Quality, Stability, Faster delivery Engineering

    More users

    More Revenue

    Increase satisfaction

    Features, Stability,

    Performance, Accessibility

    Business

    Values forCompany

    Values for CustomerRequirements

    Prioritization

  • 8/8/2019 Day2_PlanningAnAgileProject

    44/85

    44

    Prioritization

    Ensure some requirements of eachcategory are in the Product Backlog

    Set up priorities in the Product Backlog toensure implementing some requirementsof each category for any release (one or

    several sprints)

    Course agenda

  • 8/8/2019 Day2_PlanningAnAgileProject

    45/85

    45

    Course agenda

    Overview of Agile Planning

    High-Level Visioning Product Backlog User Stories

    Release Planning Estimating Velocity

    Today

  • 8/8/2019 Day2_PlanningAnAgileProject

    46/85

    46

    ReleasePlanningReleasePlanning

  • 8/8/2019 Day2_PlanningAnAgileProject

    47/85

    Release Planning Exercise

    Release Plan

  • 8/8/2019 Day2_PlanningAnAgileProject

    48/85

    48

    Sprint

    1

    Sprint

    2

    Sprints 5-7Sprint

    3

    Sprint

    4

    V1.0

    Release

    2

    V1.0 V1.1 V1.2

    V1.1

    Release

    Release planning, not sprint planning

  • 8/8/2019 Day2_PlanningAnAgileProject

    49/85

    49

    p g, p p g

    As a user,I...

    8 points

    As a user,I...

    8 points

    Story To DoIn

    Process

    To

    VerifyDone

    Code the...

    9

    Code the...

    9Test the...

    8

    Test the...

    8

    Code the...

    2

    Code the...

    2Code the...

    8

    Code the...

    8

    Test the...

    8

    Test the...

    8Test the...

    4

    Test the...

    4

    Code the...DC4

    Code the...DC4

    Test the...SC8

    Test the...SC8

    Test the...SC6

    Test the...SC6

    As a user,I...5 points

    As a user,I...5 points

    Code the...

    8

    Code the...

    8Test the...

    8

    Test the...

    8

    Code the...

    4

    Code the...

    4Code the...

    6

    Code the...

    6

    Code the...DC8

    Code the...DC8

    Code the...DC4

    Code the...DC4

    Test the...SC8

    Test the...SC8

    Test the...SC6

    Test the...SC6

    Test the...SC6

    Test the...SC6

    Test the...SC6

    Test the...SC6

    Test the...SC6

    Test the...SC6

    Test the...SC6

    Test the...SC6

    Test the...SC

    6

    Test the...SC6

    Product Backlog

    DrivesMultiple Sprints

    Sprint Task List

    Drives Work

    on a Daily Basis

    M WM T W Th F

    Release planning

  • 8/8/2019 Day2_PlanningAnAgileProject

    50/85

    50

    p g

    To answer questions such as: How much will be done by June 30?

    When can we ship with this set of features? How many people or teams should be on thisproject?

    Purpose

    Velocity The amount of work completed in a sprint

    The length of the project Prioritized product backlog

    Inputs

    Course agenda

  • 8/8/2019 Day2_PlanningAnAgileProject

    51/85

    51

    g

    Overview of Agile Planning

    High-Level Visioning Product Backlog User Stories

    Release Planning Estimating Velocity

    Today

    Product Backlog Estimating

  • 8/8/2019 Day2_PlanningAnAgileProject

    52/85

    52

    g g

    6 minutes

    8 minutes

    1

    ki lomet er

    Team must agree on high-level estimate

    Common product backlogestimating units

  • 8/8/2019 Day2_PlanningAnAgileProject

    53/85

    53

    Ideal Time

    Calendar Time

    estimating units

    Ideal Time -or- Calendar Time

  • 8/8/2019 Day2_PlanningAnAgileProject

    54/85

    54

    Ideal time

    The amount of time something is likely to take oneperson if they arent disrupted or distracted

    If two people will work on it, their time is added Often expressed in days (including day, etc.)

    Calendar Time

    Just old-fashioned guessing at the hours or dayssomething will take

    Estimating in Scrum

  • 8/8/2019 Day2_PlanningAnAgileProject

    55/85

    55

    Product Backlog

    Coarse-grained Think: Days or

    Weeks

    Sprint Tasks

    Hours 4-8 hour tasks

    Planning poker

  • 8/8/2019 Day2_PlanningAnAgileProject

    56/85

    56

    An iterative approach to estimating

    Steps

    Each estimator is given a deck of cards, each cardhas a valid estimate written on it

    Customer/Product owner reads a story and itsdiscussed briefly

    Each estimator selects a card thats his or herestimate

    Cards are turned over so all can see them

    Discuss differences (especially outliers)

    Re-estimate until estimates converge

    Planning poker - an example

  • 8/8/2019 Day2_PlanningAnAgileProject

    57/85

    57

    Estimator Round 1 Round 2Susan 3 5

    Vadim8 5Ann 2 5

    Chris 5 8

    20138532

    1

    For Your Project

  • 8/8/2019 Day2_PlanningAnAgileProject

    58/85

    58

    Estimate the user stories for your project Choose what units you will use to estimate

    Use planning poker

    Estimate the user stories for your projectEstimate the user stories for your project

    Choose what units you will use to estimateChoose what units you will use to estimate

    Use planning pokerUse planning poker

    Estimate these

  • 8/8/2019 Day2_PlanningAnAgileProject

    59/85

    59

    Product backlog item EstimateRead a high-level, 10-page overview of agile softwaredevelopment in a business magazine.

    Read a densely written 5-page research paper about agilesoftware development in an academic journal.

    Write the product backlog for a simple eCommerce site

    that sells only clocks.

    Recruit, interview, and hire a new member for your team.

    Create a 60-minute presentation about agile estimating

    and planning for your coworkers.

    Read a 150-page book on agile software development.

    Write an 8-page summary of this session for your boss.

    Course agenda

  • 8/8/2019 Day2_PlanningAnAgileProject

    60/85

    60

    Overview of Agile Planning

    High-Level Visioning Product Backlog User Stories

    Release Planning Estimating Velocity

    Today

  • 8/8/2019 Day2_PlanningAnAgileProject

    61/85

    Velocity

  • 8/8/2019 Day2_PlanningAnAgileProject

    62/85

    62

    Velocity is a measure of how much work wecan plan on completing each sprint

    Product Backlog

    Track velocity

  • 8/8/2019 Day2_PlanningAnAgileProject

    63/85

    63

    0

    10

    20

    30

    40

    1 2 3 4 5 6 7 8 9

    Sprints

    Mean (Worst 3) = 28

    Mean (Last 8) = 33Last Observation = 36

    Velocity

  • 8/8/2019 Day2_PlanningAnAgileProject

    64/85

    64

    A useful long-term measure of the amountof work completed per sprint

    Not a measure of the amount of workcompleted in eachsprint

    Sprints

    Velocityismeasured

    intheunitsyouuse

    toestimateproduct

    backlogitems

    Extrapolate from velocity

  • 8/8/2019 Day2_PlanningAnAgileProject

    65/85

    65

    At our long-term average well finish here

    At our slowest velocity well finish here

    At current velocity well finish here

    Release planning

  • 8/8/2019 Day2_PlanningAnAgileProject

    66/85

    66

    Release Plan

    Sprint 1Sprint 1 Sprint 2Sprint 2 Sprint 3Sprint 3 Sprints 47Sprints 47

    Release PlanningMeeting

    Release PlanningMeeting

    An Agile Stance on Planning

  • 8/8/2019 Day2_PlanningAnAgileProject

    67/85

    67

    Recognize that change will happen

    Utilize feedback Ask for autonomous bits of functionality

  • 8/8/2019 Day2_PlanningAnAgileProject

    68/85

    Thank You!

  • 8/8/2019 Day2_PlanningAnAgileProject

    69/85

    Agile practices

    Agile engineering practices

  • 8/8/2019 Day2_PlanningAnAgileProject

    70/85

    70

    1. Simple design2. Continuous integration3. Refactoring

    4. Test-driven development

    Reproduced with kind permission byMike Cohn mountaingoatsoftware.com

    1. Simple design

  • 8/8/2019 Day2_PlanningAnAgileProject

    71/85

    71

    Safe steps Balance between efficiency and risk

    Small design and get feedback often

    Beneficially relating elements

    Design only for today

    If the future is uncertain, dont code for it today Do not add infrastructure in this sprintfor stories coming in

    future sprints

    Upcoming stories could be cancelled or lowered in priority

    Do the simplest thing that can possibly work

    2. Continuous integration

  • 8/8/2019 Day2_PlanningAnAgileProject

    72/85

    72

    An automated nightly build is a bare minimum for a Scrumteam

    Really want continuous integration:

    Developer checks in code Build server notices the check-in, waits to see if

    more is coming Builds the software Runs a suite of automated tests Emails results

    Products to help:

    Hudson, Cruise Control, and AntHill

    Y!K development process with CI

  • 8/8/2019 Day2_PlanningAnAgileProject

    73/85

    75

    Y!Developer

    CVS / Subversion / Perforce

    CI System(php undercontrol)

    Staging Environment(Web / API / DB)

    Intg. Test (PhpUnit)

    Document (PhpDocumentator)

    Coding Standard (CodeSniffer)

    Security (Scanmus, ferret)

    commit

    trigger

    Additional works

    Build (ant / buildcious)

    testing

    report

    run

    CI tools

  • 8/8/2019 Day2_PlanningAnAgileProject

    74/85

    76

    Php under control:http://www.phpundercontrol.org/about.html

    CI tools

  • 8/8/2019 Day2_PlanningAnAgileProject

    75/85

    77

    yHudson:https://hudson.dev.java.net

    3. Test-Driven Development

  • 8/8/2019 Day2_PlanningAnAgileProject

    76/85

    78

    Tests guide the completion of thefeatures worked on during a sprint

    Started right at the beginning of thesprint Refined throughout the sprint

    Test guide the programmer duringthe writing of code

    Done a little at a time

    Augmented throughout the sprint

    Acceptance Test-Driven Development

    Unit Test-Driven

    Development

    Tests guide decisions

  • 8/8/2019 Day2_PlanningAnAgileProject

    77/85

    79

    Acceptance tests guide decisions about Which parts of a feature should be implemented In what order should the parts of a feature be

    implemented When is a feature done

    Unit tests guide decisions about How to write the code

    Which code is likely to change in thefuture

    Test-driven unit testing

  • 8/8/2019 Day2_PlanningAnAgileProject

    78/85

    81

    Write a failingtest

    Write code topass the test

    Run the test toverify the codeThis cycle is very short

    Minutes, not hours

    Unit tests

  • 8/8/2019 Day2_PlanningAnAgileProject

    79/85

    83

    Low level tests to make sure a class or moduleworks as expected

    Almost always done by a programmer to his or herown code

    Have become much more common over last five

    years Increased popularity of the xUnit tools

    Allows a programmer to test by writing more code

    Are ideally done test-first

    Unit tests

  • 8/8/2019 Day2_PlanningAnAgileProject

    80/85

    85

    Low level tests to make sure a class or moduleworks as expected

    Almost always done by a programmer to his or her

    own code

    Have become much more common over last fiveyears

    Increased popularity of the xUnit tools

    Allows a programmer to test by writing more code

    Test module first then move to develop next module

    It can help to develop fast than debug whole code after

    development

    A frequent objection

  • 8/8/2019 Day2_PlanningAnAgileProject

    81/85

    86

    Why cant I write my unit tests concurrently or right after mycode?

    You probably wont; doing this takes more discipline than

    writing them first

    Youll consider some things not testable with unit tests

    Because testability wasnt designed into them

    Youll completely miss out on the evolutionary design benefits

    The tests wont be as good

    Youll be testing to say or show you did it; not writing tests that lead you tothe result

    Test-driven acceptance tests

  • 8/8/2019 Day2_PlanningAnAgileProject

    82/85

    87

    Are specified by the product owner

    A tester can help, especially at first

    But only the product owner knows her expectations

    Are used to convey expectations about a feature

    Because product backlog items are lightweight and dont

    include details

    we need a way to pass along expectations about a productbacklog item

    Iterate the tests, too!

  • 8/8/2019 Day2_PlanningAnAgileProject

    83/85

    88

    Just as we iterate over the meaning of arequirement

    we iterate over the precision of a test

    We start with a simple test plan and thensimultaneously:

    Add more test cases

    Increase the precision of the test cases

    4. Refactoring (design improvement)

  • 8/8/2019 Day2_PlanningAnAgileProject

    84/85

    89

    Refactoring

    Simplifying or improving the code without

    changing its behavior

    Its kind of rule of design for repeated changes

    Automated unit tests ensure nothing breaks

    Allows programmers to refactor with confidence

    Always leave the code cleaner than youfound it.

  • 8/8/2019 Day2_PlanningAnAgileProject

    85/85

    Thank you!