Alla ricerca della user story perduta

40
Alla ricerca della User Story perduta Firenze, 6 Maggio 2010 Edoardo Schepis Scrum Master Funambol

description

Edoardo Schepis

Transcript of Alla ricerca della user story perduta

Page 1: Alla ricerca della user story perduta

Alla ricerca della User Story perdutaFirenze, 6 Maggio 2010

Edoardo SchepisScrum Master

Funambol

Page 2: Alla ricerca della user story perduta

... ovvero come creare “un” motore di ricerca attraverso l'uso delle User Stories

Page 3: Alla ricerca della user story perduta

Ogni riferimento a fatti realmente accaduti e/o a persone realmente esistenti è da ritenersi puramente casuale.

Any resemblance to actual persons is purely coincidental

Page 4: Alla ricerca della user story perduta

E' il 1996...

Page 5: Alla ricerca della user story perduta
Page 6: Alla ricerca della user story perduta
Page 7: Alla ricerca della user story perduta

As a user I want to search the Internet so that I find the information I need

Page 8: Alla ricerca della user story perduta

Me

• Software Engineer • Scrum Master in Funambol

– 6 teams– 30 engineers

• 2,5 years = 50 iterations 3 000 user stories

• Links:– http://www.funambol.com– http://www.edschepis.net– http://pragmaticagile.wordpress.com

edschepis

[email protected]

Page 9: Alla ricerca della user story perduta

Agenda

• Introduction to User Stories– Epic/Theme/User Story/Task– INVEST– Estimation– DONE!

• Gugol User Stories• Critics• Conclusions

Page 10: Alla ricerca della user story perduta
Page 11: Alla ricerca della user story perduta

Quiz

• In general or for your particular product/service/company, what would you rather have your customers talk about?– A. “Their product is awesome”– B. “Their service is awesome”– C. “Their company is awesome”– D. “I am awesome”

Thanks to Kathy Sierra - Talk at Business of Software 2009 [http://www.blip.tv/file/3346148]

• First-person language... reverse engineer• It's not about the tools we build, it's what our tools let them do• Being better is... better

Page 12: Alla ricerca della user story perduta

User Story

• What's that?• 3 C

– Card– Conversation– Confirmation

• Limitations– It's not just “As a ... I want to... so that...”– Without acceptance tests are open to interpretation– They require close customer contact throughout the project which in some

cases may be difficult or may be unnecessary overhead– Can have difficulty scaling to large projects– Conversation starters... fail to serve as a form of reliable documentation of

the system

Kent Beck coined the term user stories in Extreme

Programming Explained 1 st

Edition, 1999

Page 13: Alla ricerca della user story perduta

User Stories vs. Use Cases

• User stories provide a small-scale and easy-to-use presentation of information– generally formulated in the everyday language of the user– contain little detail, thus remaining open to interpretation– should help the reader understand what it is the software should accomplish– User stories are about needs

• Use cases in contrast describe a process and its steps in detail, and may be worded in terms of a formal model. – is intended to provide sufficient detail for it to be understood on its own– a generalized description of a set of interactions between the system and

one or more actors, where an actor is either a user or another system– Use cases are about the behavior you’ll build into the software to

meet those needs

Page 14: Alla ricerca della user story perduta

Epic, Theme, Story, Task

• Theme– a top-level objective that may span projects and products– a collection (group) of user stories

• Epic– a large user story: break up epic to several user stories

• User Story• Task

Page 15: Alla ricerca della user story perduta

INVEST in User Stories

• Independent– User Stories should be as independent as possible.

• Negotiable– User Stories are not a contract.

• Valuable– User Stories should be valuable to the user.

• Estimable– User Stories need to be possible to estimate.

• Small– User Stories should be small. Not too small. But not too big.

• Testable– User Stories need to be worded in a way that is testable

Page 16: Alla ricerca della user story perduta

Define User Story

• Who (As a...)– User– Roles– Systems?!?

• What (I want to...)– Action

• Why (so that...)– Needs

Page 17: Alla ricerca della user story perduta
Page 18: Alla ricerca della user story perduta
Page 19: Alla ricerca della user story perduta

Defining Gugol Search Engine

• Search engine spiders follow links on the web to request pages that are either not yet indexed or have been updated since they were last indexed

• These pages are crawled and are added to the search engine index. Searching a slightly outdated index of content which roughly represents the content of the web

• Search interface and relevancy software– Accept the user query, checking to match any advanced syntax and checking

to see if the query is misspelled– Check to see if the query is relevant to other vertical search databases (such

as news search or product search) and place relevant links to a few items from that type of search query near the regular search results.

– Gather a list of relevant pages for the organic search results. These results are ranked based on page content, usage data, and link citation data.

Page 20: Alla ricerca della user story perduta

As a user I want to search the Internet so that I find the information I need

Page 21: Alla ricerca della user story perduta

Slice the feature• Why splitting is essential?

– a user story should be split when it is too large to fit within a single iteration– split a large user story if a more accurate estimate is necessary

• How to split?– Data Boundaries (the information, the results)

• along the boundaries of the data supported by the story– Operational Boundaries (search)

• separate CRUD operations– Orthogonal Features (security, logging)

• creating two versions of the story: one with and one without support– Performance Constraints (find quickly, millions of users)

• separating the functional and nonfunctional aspects into separate stories – Mixed Priorities (error paths)

• the priorities of the smaller stories are different.

• Don’t split a large story into tasks• Watch out the User Stories split f r enzy (“details are not needed now”)

Page 22: Alla ricerca della user story perduta

As a user I want to search the Internet so that I find the information I need

Page 23: Alla ricerca della user story perduta

As a user I want to search the Internet so that I find the information I need

Page 24: Alla ricerca della user story perduta

As a user I want to search the Internet so that I find the information I need

Page 25: Alla ricerca della user story perduta

As a user I want to search the Internet so that I find the information I need

Page 26: Alla ricerca della user story perduta

As a user I want to search the Internet so that I find the information I need

Page 27: Alla ricerca della user story perduta

Gugol User Stories

• Data boundaries: search contents, input and results• Operational Boundaries: searching... “I'm Feeling Lucky”• Performances and scalability• Mixed Priorities:

– Ranking– Advanced Search– Web Services– Localized searches

Page 28: Alla ricerca della user story perduta

Gugol User Stories• Web Search

– Simple input– “I'm Feeling Lucky”– No Ranking– IP-local searches– Subset of results

• Data boundaries:– News Search– Image Search– Code Search– Maps Search– ...

• Advanced Search• Web Services• Support millions of users

Advertising

Page 29: Alla ricerca della user story perduta

Estimation

Let's Try!

Page 30: Alla ricerca della user story perduta

For example...

Page 31: Alla ricerca della user story perduta

Estimation and Story Points

• Story Points are units of relative size used in estimating software requirements as an alternative to units of time

• Measurement of complexity vs. man-day• Advantages:

– cheaper to arrive at– collaborative estimation - it's not just developers who can or do estimate, it is

a product team including analyst, tester and developers– the estimates of size are more transparent and universally agreed upon

• Planning Poker and other techniques• Fibonacci sequence

Page 32: Alla ricerca della user story perduta

Definition of Done

• DoD is a checklist of valuable activities required to produce software– a simple list of activities (writing code, coding comments, unit testing,

integration testing, release notes, design documents, etc.) that add verifiable/demonstrable value to the product

• DoD is the primary reporting mechanism for team members– “This feature is done.”

• DoD is equivalent to “potentially shippable”• DoD is not static

Page 33: Alla ricerca della user story perduta

For example...1 2 8

2

13

2 ?

Page 34: Alla ricerca della user story perduta

Gugol estimates (collaborative)

Let's try!

Page 35: Alla ricerca della user story perduta

Gugol User Stories• Web Search

– Simple input– “I'm Feeling Lucky”– No Ranking– IP-local searches– Subset of results

• Data boundaries:– News Search– Image Search– Code Search– Maps Search– ...

• Advanced Search• Web Services• Support millions of users

Advertising

Page 36: Alla ricerca della user story perduta

… and now?

• Scaling: more than 4 billion of pages and 10Kb/page = tens of terabytes– Performances– Hardware requirements– Handling Failures– PageRank and Shards

• Documenting Gugol with a list of “As a user..”?• Prototypes and Spikes

Page 37: Alla ricerca della user story perduta

References

• http://www.mountaingoatsoftware.com• http://en.wikipedia.org/wiki/History_of_Google• http://xprogramming.com• http://www.searchenginehistory.com/• http://headrush.typepad.com/• http://pragmaticagile.wordpress.com

Page 38: Alla ricerca della user story perduta

Q&A

Page 39: Alla ricerca della user story perduta

Focus on what user does, not what you do

Don't build a better [x], build a better [user of x]

Thanks to Kathy Sierra - Talk at Business of Software 2009 [http://www.blip.tv/file/3346148]

Page 40: Alla ricerca della user story perduta

Alla ricerca della User Story perdutaFirenze, 6 Maggio 2010

Edoardo SchepisScrum Master

Funambol