some differences between the role of the product owner and the ScrumMaster? 1 What are the primary responsibilities of the product owner? 3 What skills should the ideal product owner possess? 4 What things would you expect to happen on a project without a product owner? 2
and Agile, it was considered prudent to understand what was wanted and how it was going to be delivered at the very start of the project. J All future work hung off, depended on this work. J The theory was that changes at the start of the project cost $1, but the same change made when the project was 60% complete cost $100. 4
M,9:?<:?892C56CN2?5ME9:?<:?8=@?86CN42? uncover some requirements, but Every project has some emergent requirements J Emergent requirements are those are users cannot identify in advance 6
J We talk more, write less J But write some if you need to J Show software to users J Acknowledge that requirements emerge J And all that this implies J 'A>6A4BB8E4;HA4N=4>DAD=34ABC0=38=6>5C74 product J =34G?A4BBC78B?A>6A4BB8E4A4N=4<4=C8=C74?A>3D2C backlog 7
on note cards. JMay be annotated with notes, estimates, etc. Card Source: XP Magazine 8/30/01, Ron Jeffries. JDetails behind the story come out during conversations with product owner Conversation J224?C0=24C4BCB2>=NA<C74 story was coded correctly >=NA<0C8>= 10
want to reserve a hotel room. As a user, I want to cancel a reservation. As a vacation planner, I want to see photos of the hotels. As a frequent flier, I want to rebook a past trip, so that I save time booking trips I take often. 11
I can cancel a reservation. J Does the user get a full or partial refund? J Is the refund to her credit card or is it site credit? J How far ahead must the reservation be cancelled? J Is that the same for all hotels? J For all site visitors? Can frequent travelers cancel later? J !B02>=NA<0C8>=?A>E8343C>C74DB4A J How? 12
conditions of satisfaction can be added to a story J ,96D62C66DD6?E:2==JE6DED As a user, I can cancel a reservation. 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-day cancellation. Verify that an email confirmation is sent. Verify that the hotel is notified of any cancellation. 13
can cancel a reservation. As a premium site member, I can cancel a reservation up to the last minute. As a non-premium member, I can cancel up to 24 hours in advance. As a site visitor, I am emailed a confirmation of any cancelled reservation. 14
by identifying only a sprint’s worth of backlog items J But, it’s often quick and easy to stock the product backlog with most of its items J This is helpful for release planning, expectation setting, 0=320=8=OD4=2434B86=0=32>38=6 J The key is to write product backlog items with different levels of detail J Fine-grained for stories about to be worked on J Coarse-grained for stories further in the future 15
I want to review the performance of historical promotional campaigns so that I can identify and A4?40C?A>NC01;4>=4B As a VP Marketing, I want to select the timeframe to use when reviewing the performance of past promotional campaigns, so that I can identify and repeat ?A>NC01;4>=4B As a VP Marketing, I can select which type of campaigns (direct mail, TV, email, radio, etc.) to include when reviewing the performance of historical promotional campaigns. An epic; H66<DE@:>A=6>6?E !>A=6>6?E2E:@?D:K6DE@C:6D 52JDE@:>A=6>6?E 17
I want to see information on direct mailings when reviewing historical campaigns. As a VP Marketing, I want to see information on television advertising when reviewing historical campaigns. As a VP Marketing, I want to see information on email advertising when reviewing historical campaigns. 18
customer, others J Brainstorm to generate stories J Goal is to write as many stories as possible J Some will be “implementation ready” J Others will be “epics” J No prioritization at this point 19
As a frequent flier, I want to see check my account. As a frequent flier, I want to ... Frequent flier As a frequent flier, I want to book a trip using miles. As a frequent flier, I want to rebook a trip I take often. As a frequent flier, I want to request an upgrade. As a frequent flier, I want to see if my upgrade cleared. As a frequent flier, I want to book a trip. 20
J Ask open-ended, context-free questions as you go: J What will the users most likely want to do next? J What mistakes could the user make here? J What could confuse the user at this point? J What additional information could the user need? J Consider these questions for each user role 21
I want <goal> so that <reason>.” MyCookSpace.com Your team has been hired and given gobs of VC money to create a social networking site (like MySpace) for cooks. The idea is that cooks will exchange recipes and tips. They’ll also buy kitchen-related products from the advertisers on the site. We want some novel way of rewarding cooks who post the best and most popular recipes as noted by other cooks on the site. Write some user stories for MyCookSpace.com. 22
problems estimating and prioritizing J Can ideally select a story to work on without pulling in 18 other stories Negotiable J Stories are not contracts J #40E4>A8<?;HB><4O4G818;8CH Valuable J To users or customers, not developers J )4FA8C434E4;>?4ABC>A84BC>A4O42CE0;D4C>DB4AB>A customers 25
based on user stories, we need to be able to estimate them Sized Appropriately J Small enough to complete in one sprint if you’re about to work on it J Bigger if further off on the horizon Testable J Testable so that you have a easy, binary way of :=>F8=6F74C74A0BC>AH8BN=8B743 J >=4>A=>C3>=4=>K?0AC80;;HN=8B743L>AK3>=4 except” 26
stories cannot be prioritized against each other J What’s more important in a word processor? J The A key or the E key? J Tables or undo? J What’s more important on a car? J The left front wheel or the right front wheel? J Increased leg room or a larger engine? 29
1. Write each story on its own note card or post-it 2. Eliminate redundant stories 3. Group similar stories 4. Label each group with a theme name 5. If you have a lot of themes or have small themes, consider making themes of themes 6. Review the results If you started with a story-writing workshop you may already have themes. 30
to all participants J No particular pattern to how you do this J Someone reads a card and places in on wall / table J Others look for similar cards and add them to it J Next person reads a card, places it, and others place similar cards with it J Continue repeating until out of cards 31
!F0=CC>A4@D4BC0=D?6A034C>NABC2;0BB ..., I want to see if my upgrade cleared. Be sure you are organizing stories around user needs; not around how you’ll build the software or how the company is organized. 32
(approximately) selection criteria for what is important in the next release J Select a baseline theme J Likely to be included in the next release J Understood by most team members J Assess each candidate theme relative to the baseline theme 36
- + Importance to existing customers Competitiveness with ABC Corp. +E2CEDFD:?E68C2E:?8AC@5F4E=:?6D Theme F Theme E 2D6=:?6,96>6 Theme C Theme B Theme A 0 Theme G Net score + - 0 0 0 0 0 + 0 0 0 + + + 3 +6=64E:@?C:E6C:2 Generates revenue in Q2 0 0 0 0 + 0 + Themes 0 0 1 0 2 Rank 1 4 5 4 3 4 2 Continue? Y N N Y Y N Y + = better than 0 = same as - = worse than 37
J &665E@D6=64E232D6=:?6E96>67@C62494C:E6C:2 J Avoids compression of a category J 249E96>6:D2DD6DD65282:?DEE9632D6=:?67@C6249 D6=64E:@?4C:E6C:2 Much worse than reference 1 Worse than reference 2 Same as reference 3 Better than reference 4 Much better than reference 5 38
have a minimally functional site up with 4,000 registered cooks J We want 400,000 cooks J As groups, decide whether you want to use theme screening or theme scoring. J Identify 4-5 themes J Identify some selection criteria J What’s important to the company in making this decision? J Complete a theme screening/scoring worksheet 40
present in order for DB4ABC>14B0C8BN43 #2?@2?2=JD:D Linear The more of it, the better Three types of features Exciters / Delighters Features a user doesn’t know she wants, until she sees it 47
whether a feature is baseline, linear, or exciting we can: J Sometimes guess J Or survey a small set of users (20-30) J We ask two questions J A functional question J How do you feel if a feature is present? J And a dysfunctional question J How do you feel if that feature is absent? 48
!7J@FC9@E6=C@@> :?4=F56D27C66 3@EE=6@7H2E6C9@H 5@J@F766= I expect it to be that way. !=:<6:EE92EH2J !2>?6FEC2= !42?=:G6H:E9:EE92EH2J !5:D=:<6:EE92EH2J X JD7F?4E:@?2= form of question !7J@FC9@E6=C@@> 5@6D?@E:?4=F562 7C663@EE=6@7 water, how do you 766= I expect it to be that way. !=:<6:EE92EH2J !2>?6FEC2= !42?=:G6H:E9:EE92EH2J !5:D=:<6:EE92EH2J X 49
E E E L R I I I M R I I I M R I I I M R R R R Q Like Expect &6FEC2= Live with :D=:<6 Like Expect Neutral Live with Dislike Dysfunctional Question Functional Question M Mandatory L Linear E Exciter Q Questionable R Reverse I Indifferent 50
6CE:Q65+4CF>%2DE6C H:E9#6?+49H236C 8:=6DE:>2E:?8(=2??:?8 'C=2?5@$ February 2?5 6CE:Q65+4CF>%2DE6C London 63CF2CJ March 1, 2007 6CE:Q65+4CF>%2DE6C 8:=6DE:>2E:?8(=2??:?8 Denver, CO AC:= 2007 6CE:Q65+4CF>%2DE6C 8:=6DE:>2E:?8(=2??:?8 +2?E2=2C2 CA Register at www.mountaingoatsoftware.com 53