Story - StickyMinds
Transcription
Story - StickyMinds
AW11 Class 6/9/2010 4:00:00 PM "Story-o-types: The Patterns Within the Stories" Presented by: Dan Rawsthorne Danube Technologies Brought to you by: 330 Corporate Way, Suite 300, Orange Park, FL 32073 888‐268‐8770 ∙ 904‐278‐0524 ∙ [email protected] ∙ www.sqe.com Dan Rawsthorne Danube Technologies, Inc. A software developer for more than twenty-five years, Dan Rawsthorne is an accomplished manager, mentor, coach, trainer, consultant, and architect. His experience runs the gamut—from e-commerce to databases to military avionics and air traffic control. Dan is an agent of change, helping organizations transform themselves through liberal applications of common sense and agile techniques. His formal training causes him to look for underlying problems rather than to focus on surface symptoms; his military background helps him understand the importance of teamwork and empowerment; and his common sense tells him that change must happen in small manageable bites. Dan is currently co-writing Exploring Scrum. Dan Rawsthorne Certified Scrum Trainer Senior Coach CollabNet [email protected] Storyotypes The Patterns Within the Stories Agile Development Practices June 9, 2010, 4:00 - 5:30 1 ©2010 Dan Rawsthorne: StoryoTypes Abstract Intro Brief Description of Scrum Team Background on Stories How I Found Storyotypes Uses of Storyotypes Agile Analysis Overview Story’s “Doneness” Agreement Organization “Need” to Standardize Examples Categories of StoryoTypes “Basic” Development Storyotypes Other Development Storyotypes We Could Even Have Storyotypes for Epics Analysis Storyotypes Other Storyotypes Summary 2 ©2010 Dan Rawsthorne: StoryoTypes Brief Description of Scrum Team 3 ©2010 Dan Rawsthorne: StoryoTypes The Basic Scrum Engine (Scrum Team) Stakeholders Business Owner SME SME Scrum Master SME SME 4 Product Owner ©2010 Walls of the Box: Time-boxing Impediment Resolution Cross-functionality Self-Organization Self-Management Self-Contained Definitions of “done” Dan Rawsthorne: StoryoTypes Getting Work Done (the RASCI model) R esponsible – the Team Members are Responsible for the work the Team agreed to A ccountable – the Product Owner is the only Team Member Accountable to the Business for the work the Team has committed to S upportive – The ScrumMaster is Supportive of the Team by facilitating its self-organization, coaching in scrum, removing impediments, and so on… C onsulted – external Subject Matter Experts (SMEs) are Consulted by Team Members if necessary. No one outside the team is either Responsible or Accountable for work the Team has committed to I nformed – all external Stakeholders are kept Informed of what the Team has committed to, and the progress the team is making 5 ©2010 Dan Rawsthorne: StoryoTypes Background on Stories 6 ©2010 Dan Rawsthorne: StoryoTypes What is a Story? A “promise for future conversations” – Cockburn A small unit of work that provides value Both a requirement and an activity Introduced by eXtreme Programming (XP) as a user story – something that a user needs Adopted by most scrum advocates – like myself – with appropriate changes 7 ©2010 Dan Rawsthorne: StoryoTypes Evolution of the Story concept XP (Beck, Jeffries, et all) introduced the “user story” as a way to drive small agile teams as “one thing the customer wants the system to do” All about production Brilliant combination of requirement and activity Scrum (Schwaber) says that the scrum team has all the skills you need to get the job done: Analysis, design, coding, test, QA, documentation, training, etc Whatever you define “done” to be for your team So… 8 ©2010 Dan Rawsthorne: StoryoTypes User Stories aren’t the only Stories in Scrum In Scrum, the Team does ALL the necessary work And it’s all managed by stories Not just User Stories So, we must have many different kinds of potential stories: Analysis stories Development stories (user stories) Infrastructure / environmental stories Business Support stories Etc And, we expand the definition of story to be A small unit of work that provides “project value” Promise for future conversations 9 ©2010 Dan Rawsthorne: StoryoTypes Sample Work Breakdown Structure CatAir.com Proj Product Capability Team Management Sales Spt Team Training Marketing Support Conversions Dev/SCM/Test Environments User Training Rewrites Dev Process User Docs Refactorings App Framework Business Framework Tools Adapt Processes Maintenance Docs … Quality Sell e-Ticket Status of Flights Cross-Sell Hotels Cross-Sell Cars Pilot Timesheets Good Cust Plan … 10 ©2010 Business Prod Env … … Dan Rawsthorne: StoryoTypes How I Found Storyotypes 11 ©2010 Dan Rawsthorne: StoryoTypes Making Better Stories I was coaching a team that was using Stories for their scrum project We were wondering what good stories should look like We knew INVEST(Bill Wake, 2003) Independent – don’t overlap in concept, implement in any order. Negotiable – they are “promises for conversations” Valuable – provide value to the customer Estimable – might require a spike to be able to estimate Small – a few person-days of work Testable – figure out how to know you’re “done” But this wasn’t enough… we were still confused… Had particular problems with Independent and Testable for noncoding stories… 12 ©2010 Dan Rawsthorne: StoryoTypes We Tried Developing a Story Template Title (required) – unique, descriptive, moniker for the story Description (required) – often in Connextra form: ‘as a <role> I want <something> so that <I get this value>’ Story Boss (optional) – the team member responsible for managing the story to completion Origin (optional) – the source of the story; includes its parent epic Dependencies (optional) – other stories that depend on this one, or that this one depends on SMEs (optional) – the people who “know about” this story Size (required) – an estimate of complexity for the story, usually represented Story Points, t-shirt sizes, etc Business Value (optional) – a statement of how much this story is “worth” “Done” Criteria (required) – our actual contract, our validation criteria Notes (optional) – whatever you want to help in the conversations the story represents Tasks (required) – eventually, you actually need to do some work… But this didn’t really work… too complicated 13 ©2010 Dan Rawsthorne: StoryoTypes Discovery of Storyotypes The problem was starting to get to me… so I googled on “type of story” and found a great paper Gerard Meszaros: “Using Storyotypes to Split Bloated XP Stories,” XP/Agile Universe 2004 This paper showed me several things: How to decompose a Use Case into User Stories Helped expand what I knew from Cockburn’s “Writing Effective Use Cases” book That the right size of a story was one “positive test” That each story should have only one focus Don’t combine adding functionality with getting a “good” interface These are all important lessons, BTW 14 ©2010 Dan Rawsthorne: StoryoTypes Incorporating Definition of “Done” About this time, the focus on “done” was just coming about I had coined the term “done/done/done” The concept of “done” was just coming clear… It was clear that stories that were alike had “the same” doneness criteria Actually, turned into my primary definition of “alike” I realized the Storyotypes were the tool we needed to capture the “doneness” criteria for similar stories So, that’s where we are today… 15 ©2010 Dan Rawsthorne: StoryoTypes Discussion Talk amongst ourselves… Have any of you gone through a search to try to write better stories? Talk to each other about your journey… 5 minutes 16 ©2010 Dan Rawsthorne: StoryoTypes To Summarize: What Storyotypes Do For Us Help us analyze and decompose epics Especially Functional Ones Help us capture “standard” doneness criteria For Development stories For Analysis stories For Cleanup stories etc Goals That a team grooming the backlog would “instantly” recognize 80% of the stories they need to extract from epics That the “Doneness” criteria for the stories will be easier to recognize and commit to in planning 17 ©2010 Dan Rawsthorne: StoryoTypes Backlog Evolution Items Tasks To Do In Progress Done Front Burner Acceptance StoryoTypes Help Here Back Burner prioritization Grooming Complete the Work Fridge In Box New In or Out of Scope Freezer 18 ©2010 Done Dan Rawsthorne: StoryoTypes Abstract Intro Brief Description of Scrum Team Background on Stories How I Found Storyotypes Uses of Storyotypes Agile Analysis Overview “Doneness” Agreement Organization “Need” to Standardize Examples Categories of StoryoTypes “Basic” Development Storyotypes Other Development Storyotypes We Could Even Have Storyotypes for Epics Analysis Storyotypes Other Storyotypes Summary 19 ©2010 Dan Rawsthorne: StoryoTypes Agile Analysis Overview 20 ©2010 Dan Rawsthorne: StoryoTypes Analysis: Product Capability Story Analysis is primarily about Decomposition Our Product decomposes into Capabilities Capabilities are implemented by doing stories But not all stories are capability-driven Our Project’s work can be seen as a collection of Stories But we’re only going to focus on the capability-driven ones Incremental Analysis is (basically): Find the Capabilities, validate them, then Find the Stories, and validate them Then we use the stories to drive development… Product 21 Capability ©2010 Story Dan Rawsthorne: StoryoTypes Agile Analysis I thought about Agile Analysis a little bit too hard… Before I discovered Storyotypes I went a little nuts… What Should The Product Do? Visions Capabilities For each Defect/Refinement/AddOn For each Capability What Do We Want To Happen? Stakeholder Desirements How Do We Make that Happen? Stories Interaction/Path/Algorithm Storyboard/Wireframes Testing Strategy …etc… What Pieces Do We Need? What Else Do We Need? 22 ©2010 Other Capabilities Other Systems UI/Data Elements Interfaces Sensors Business Rules Functional Tests …etc… Design and Development Capability Defect/Refinement/AddOn Dan Rawsthorne: StoryoTypes Agile Analysis Is actually pretty straightforward Agile Analysis is simply the finding of development stories, nomatter how we do it Can be done through standard Requirements Analysis Can be done through Testing PO (or Analyst) responsibility in all this… Communicate with Product Owner and Business Stakeholders Describe what’s being built 10-50,000 foot view Produce and Explain Stories for Development Team Ground-level to 5,000 foot view Work with Coders, Designers, Testers, Etc “Promise for a Conversation” - Alistair Cockburn 23 ©2010 Dan Rawsthorne: StoryoTypes Stories Resulting from Analysis Are put on the Backlog May not be the right size for developers, yet… This is a different problem than the one we’re looking at now We want to make sure we have the “right” stories, Not that the stories are “right” It’s ok that they’re epics now – the team will tell us when to dig in and split Then, we’ll use these stories as a “promise for a conversation”, and start digging into them and making them work for us… “They (the POs) told the developers what the customer wanted in the way the developers wanted to hear it” – Jeff Sutherland 24 ©2010 Dan Rawsthorne: StoryoTypes (Use Casey) Analysis Concept on One Slide “Connective Tissue” stories Backbone Capability System 25 Minimum, end-to-end, Demonstrable, Architecturally-Significant functionality ©2010 Releasable functionality Dan Rawsthorne: StoryoTypes “S-Shaped Curve” for Delivering Business Value "S-Shaped" Curve 1 critical mass point Earned Business Value 0.9 0.8 Buffer Rework Nice to haves 0.7 0.6 0.5 architecturally significant 0.4 Must haves 0.3 0.2 0.1 0 0 20 40 60 80 100 % of BV-Producing SPs Our PO’s job is to have the Team do the stories in the “right” order to keep the value produced on the S-Shaped curve 26 ©2010 Dan Rawsthorne: StoryoTypes “80/50 Curve” for Delivering Business Value And we just use the 80/50 curve if there is no Architectural component… "80/50" Curve critical mass point 1 0.9 Earned Business Value 0.8 Buffer Rework Nice to haves 0.7 0.6 0.5 0.4 Must haves 0.3 0.2 0.1 0 0 20 40 60 80 100 % of BV-Producing SPs 27 ©2010 Dan Rawsthorne: StoryoTypes How Much Detail? The key thing is that the stories we find are “fit for use” – that is, they are what the developers need It is not about “getting what they know” from the stakeholders; it is about being able to have the right conversations with them later… Could include some “designey” stuff Business Rules GUI stuff Storyboards, Wireframes, Mockups Etc But not too much It’s about getting enough so that the Team can commit to the Story The details will be found in future conversations Not about “getting it right” in the initial story 28 ©2010 Dan Rawsthorne: StoryoTypes Discussion Talk amongst yourselves How easy is it to find “good” stories How do you do it? 5 minutes 29 ©2010 Dan Rawsthorne: StoryoTypes Story’s “Doneness” Agreement 30 ©2010 Dan Rawsthorne: StoryoTypes Driving Development With Stories As a <Martian> I want <interesting cover art that reminds me of earth> so that <I’ll be attracted to your travel agency> 31 Tasks Not Started In Progress Sprint Backlog Agreement: 1. Make two versions 2. Sue chooses one 3. Make sure is on PostIt so that we can move it around Stories ©2010 Dan Rawsthorne: StoryoTypes One of the Main Things… Is the Story’s Agreement This tells the Team how they will know that they are done This is the “actual” requirement for the Story Must be something the team controls Nobody from the outside can tell you if you are done or not Verification is an intrinsic part of development You own it Remember the Product Owner is part of the Team PO and rest of team negotiate the Agreement for the Story 32 ©2010 Dan Rawsthorne: StoryoTypes Completed Parts of the Agreement – External and Internal Acceptance Criteria What we “Deliver” Externally Visible Definition of Done Technical Debt Invisible from Outside 33 ©2010 Dan Rawsthorne: StoryoTypes Common “Agreement” for Coding Stories • A List such as the following is often “on the side” of the StoryBoard, for use by the Team when considering any and all coding stories • • • For all Coding Stories, make sure that… 34 It works as a reminder of what to think about, and leads to storyotypes For each individual story, the team must “pick and choose” which items apply to this story. UI design reviewed in ‘paper’ form Logical Data Model reviewed Functional Test strategy (test cases) reviewed Periodic reviews with SME/Analyst Functional Tests running on Integration box Have automated unit tests protecting all class interfaces Regression tests (consisting of everybody’s unit tests) “green bar” on Integration box Information needed for documentation, training materials, and the like are captured Frequent pairing or peer reviews so that we have a second pair of eyes on ‘everything’ Do the XP practices as much as you are able Peer reviews to assure code and design standards are met ©2010 Dan Rawsthorne: StoryoTypes Iron Triangle and “Doneness” Effort balance Agreement List ---Tests to Pass Time Boxes -Inspections Process Reqts Agile Planning is actually about balancing effort, scope, and technical debt The expected scope and debt is seldom documented in detail, but maybe if should be I like to see an explicit list so that we can “check it off” Agreement has two parts concerning “doneness” Scope Side (acceptance), usually defined by tests, time boxes, etc Debt Side (doneness), usually defined by inspections, process steps, etc The Lists are different for different storyotypes, and the tasks must conspire to get the list completed 35 ©2010 Dan Rawsthorne: StoryoTypes Form of the Agreement These agreements have different forms for different kinds of stories (storyotypes), but for a functional story there are three parts to an Agreement: General Agreements: like which SMEs will we talk to? What are the simplifying assumptions? etc Acceptance Criteria: What will be verified to prove that the story provides the stakeholder-requested value? Definition of Done: What will be verified to prove that we have mitigated the risk of producing technical debt? These functional stories are the easiest to understand We’ll show some examples of various types 36 ©2010 Dan Rawsthorne: StoryoTypes Seeing is Believing… Probably the best way to understand this concept is to see some examples In the following examples, we some “complete” stories – stories that have been committed to What we see here defines the “what” for the story The “how” will be explored, defined, and implemented as the story is worked on There could be more stuff than this, but we usually defer it until we have committed to actually doing the story First we’ll look at some stories of different types, and then we’ll discuss Epics 37 ©2010 Dan Rawsthorne: StoryoTypes Sample Development Story Tasks Get List of Flights from CUTLASS Size: 8 SPs Type: [backbone] As a <flyer> I want <to have a list of flights that matches my itinerary> so that <I can choose one that works for me> Architecture and Design 32 hrs General: - Joe (SME) is the expert on CUTLASS - Simplifying Assumptions: One Way, Single Leg, No Seat Selection, Single Passenger, Full Fare, No Luggage … Write Functional Tests Acceptance: Pass in an itinerary and get a list of Flights back Doneness: Review Architectural Decisions with Team Design Review Review Functional Test Strategy Review Unit Tests Verify Tests passing on Development Machine Code Review Functional Tests Written Verify Tests passing on Integration Box Add Tests to Regression Test Suite 38 ©2010 12 hrs Code and Unit Test 80 hrs Dan Rawsthorne: StoryoTypes Sample Analysis Story Tasks Analyze Shopping for Flights Size: 2-day Timebox Type: [analysis] As a <developer> I want <some stories for ‘”shopping for flights”> so that <I’ll have some work to do> General: - Amir (Team Member) is the Coordinator Acceptance: The backbone epic is in the Backlog There is at least one validated backbone story, based on this backbone epic, in the Back Burner ready to be “worked on” Doneness: Identify SMEs and document in use case Meet with the SMEs and: Discuss the use case and document in the Wiki Generate, and validate, the backbone epic Decompose the backbone into at most 10 stories Work with SMEs and Team to prioritize and move at least 3 of these stories into the Back Burner for further grooming 39 ©2010 Meeting with SMEs 4 hrs Document in Wiki 6 hrs Generate Production Story 4 hrs Dan Rawsthorne: StoryoTypes Sample Infrastructure Story Install Copy of CUTLASS in Lab Size: 8 SPs Tasks Type: [enviro] As a <developer> I want <to have my own copy of CUTLASS to play with> so that <I can figure out how it works> General: - Joe (SME) is expert on CUTLASS - Sam will be CUTLASS expert on Team Set up clean machine in lab 8 hrs Acceptance: CUTLASS is “up and running” in the lab Doneness: Get CUTLASS Install from SirJeff Set up clean machine Install CUTLASS Do Smoke Test to see if it works 40 ©2010 Install CUTLASS on new machine 8 hrs Dan Rawsthorne: StoryoTypes Discussion Talk amongst ourselves… What about this? Do you have this much information when you start? More? Less? If not, why not? And, how’s that working out for you? 5 minutes 41 ©2010 Dan Rawsthorne: StoryoTypes Organization “Need” to Standardize 42 ©2010 Dan Rawsthorne: StoryoTypes Scrum Teams Live Within an Organization That can provide constraints upon the Scrum Team The Team’s process is part of an overall process The team owns what is not constrained What should an organizations constrain? What process issues are cross-cutting ones? Product Management Team Project Management Team Dev Team 43 Project Development Team Dev Team ©2010 Project Management Team Dev Team Dev Team Dev Team Dan Rawsthorne: StoryoTypes Organizational Issues Organizational Issues: Common Codebase across Teams Want to move people from Team to Team Want commonality of “process” Scrum wants: Self-organization, self-management, and freedom for teams A good candidate for standardization across teams is “Storyotypes” Cross-team integration issues Makes it easier for people to move from team to team But doesn’t micromanage the people themselves… 44 ©2010 Dan Rawsthorne: StoryoTypes Cross-Team Integration Integration is always hard – probably the biggest technical issue in most organizations Common “Def’n of Done” helps integration issues Know “what to expect” from the code you are integrating with Know “what to expect” if you need to work with somebody else’s code Know “what to expect” if you need to work with people from other teams Allows for cross-team Retrospections about what “done” should mean Good for the codebase Good for the organization 45 ©2010 Dan Rawsthorne: StoryoTypes Makes it Easier for People to Move A Common Definition of “Done” Leads to common development practices So, at the “working together” level it makes it easier for people to move from team to team Makes it easier to do technical training for an organization But, it gives the team flexibility To adapt their own team dynamics to their team members To add more restrictions to the def’n of done for their team And it’s not micro-managing It’s more of a “what” thing – it’s telling people what they need to do… It’s putting constraints on the hows, but not defining the hows 46 ©2010 Dan Rawsthorne: StoryoTypes Discussion Talk amongst ourselves… Does your Organization feel the need to “standardize” How’s that working out for you? 5 minutes 47 ©2010 Dan Rawsthorne: StoryoTypes Abstract Intro Brief Description of Scrum Team Background on Stories How I Found Storyotypes Uses of Storyotypes Agile Analysis Overview “Doneness” Agreement Organization “Need” to Standardize Examples Categories of StoryoTypes “Basic” Development Storyotypes Other Development Storyotypes We Could Even Have Storyotypes for Epics Analysis Storyotypes Other Storyotypes Summary 48 ©2010 Dan Rawsthorne: StoryoTypes Categories of Storyotypes 49 ©2010 Dan Rawsthorne: StoryoTypes Categories of Storyotypes Storyotypes Stereotype of a story Meszaros, “Using Storyotypes to Split Bloated XP Stories” 2004, XP/Agile Universe I extend the concept beyond “coding” stories to all types of stories we find in scrum projects There are various Categories of Storyotypes that I use 50 Production (coding) Analysis (finding stories) Business Support (non-coding) Chores (no immediate Business Value, but not Analysis) ©2010 Dan Rawsthorne: StoryoTypes 49 “Basic” Development Storyotypes 51 ©2010 Dan Rawsthorne: StoryoTypes Coding Storyotypes Catalog (use cases) [usecase] – the epic that represents the use case itself [coding] – generic for writing code (many companies do this) Use Case Based Storyotypes (from Meszaros) [backbone] [alt] [beefup] [interface] This is where it all starts And gives us much of the value of storyotypes And we’ll add some more after that… 52 ©2010 Dan Rawsthorne: StoryoTypes Use Case Based Storyotypes Use Case Implemented by Story Made up of Conform to Backbone Scenario Storyotype Many of them Single thread Always another one… Alternate [usecase] The use case itself [backbone] [alt] A Story on the backbone An alternative scenario [beefup] [interface] 53 Only one Architecturally significant Simplifying assumptions Single thread Improving a business rule in an existing scenario Improving the interface for the UC ©2010 Dan Rawsthorne: StoryoTypes 53 Example: Stories for “Buy an e-ticket” Capability [usecase] Buy an e-Ticket [backbone] Get List of Flights from CUTLASS (ugly interface) [backbone] Capture Itinerary Information [backbone] Capture Passenger Information [backbone] Reserve Flight in CUTLASS [alt] Modify CUTLASS to Understand When Flight is Full (note: was awful!) [analysis] Analysis Meeting with SirJeff [backbone] Pick One Flight and Pay for It (note: stubbed out actual payment) [alt] Handle Round Trip Flights (ugly Interface) [beefup] Hook Up Actual Visa/MasterCard Processing Widget (note: was a PITA) [backbone] Issue email Confirmation to Customer [interface] Improve Interface for buying e-ticket [beefup] Close Reservations when Plane is Full (note: turned out to be easy) [alt] Add Payment with PayPal (note: really straightforward) [alt] Reserve Flight to Pay upon arrival at Airport [alt] Handle multiple-Passenger Parties [interface] Web Interface for Adding/Modifying Flight Info [beefup] Get Luggage Info, including Scuba Tanks [analysis] Exploratory Testing to "See What's Left" for Buy an e-Ticket [spt] Make sure SirJeff’s Marketing materials have correct information [bug] Fix Bug in Luggage Weight Calculations [bug] Fix Small List of Bugs found in Exploratory Testing [alt] Pay with AMEX [alt] Bring Pet on Board [beefup] Special Needs (wheelchair, etc) [alt] Select Seat online [alt] Pay with Coupon [beefup] Seat Belt Extender Needed for 'large' Passenger [beefup] Special Meals [alt] Change Seat online [alt] Comfort Seat for 'really large' Passenger [alt] Pay with PayPal 54 ©2010 Fd 0 0 0 0 2 1 0 0 3 0 3 0 3 0 0 3 3 4 2 5 5 3 5 5 3 3 3 5 3 5 3 Dn 1 2 2 2 3 3 3 3 4 4 4 4 4 4 5 5 5 5 5 5 6 Size L L L L L S L L L M M L M M L L L S S S M M M S M M S S M S M Continuous Analysis As you move along, you will need to find new stories “within” the features What we see here is the list of stories for “Buy an eTicket” that were found / implemented in this release Dan Rawsthorne: StoryoTypes The Cool Thing About these Storyotypes They help us identify the Stories, once we have the Use Case (part of Grooming) Analyzing, looking for specific storyotypes “do we have an alternative scenario?” “do we need to beef up an existing scenario?” “do we need to clean up the interface?” We get the basics of the Agreement for “free” This makes effort estimation and commitment much easier Basically, storyotypes make much of producing the Backlog easier Extracting stories from Epics (grooming) Standardize Story Agreements (commitment) 55 ©2010 Dan Rawsthorne: StoryoTypes Backlog Evolution Items Tasks To Do In Progress Done Front Burner Acceptance StoryoTypes Help Here Back Burner prioritization Grooming Complete the Work Fridge In Box New In or Out of Scope Freezer 56 ©2010 Done Dan Rawsthorne: StoryoTypes Basic [coding] Story Agreement [coding] Story General The SMEs for this Story are XXX, YYY, and ZZZ Acceptance Criteria “Black Box” Test[s] and need to pass Doneness Definition Functional Test Strategy Review Information needed for documentation, training materials, and the like are captured Design, Code, and Unit Test Peer Reviews Verify working on Development Machine Have automated unit tests protecting all class interfaces Functional Tests Written Verify working on Integration Box, including all Tests Add All Tests to Regression Test Suite 57 ©2010 Do XP Dan Rawsthorne: StoryoTypes Other Use Case Storyotypes [coding] story [backbone] story Review Architectural Decisions with Team and Architecture SMEs Review Simplifying Assumptions of backbone and review “handoffs” between [backbone] stories [beefup] story Verify Business Rule with SME [alt] story Review business importance of scenario with SMEs and Team [interface] story Review Interface design with UI SME and Team Informal Usability Testing and make improvements Not surprisingly, the different Storyotypes add a few more things to the mix… 58 ©2010 Dan Rawsthorne: StoryoTypes 57 Discussion Talk amongst ourselves… Would something like this be useful to your developers? 5 minutes 59 ©2010 Dan Rawsthorne: StoryoTypes Other Development Storyotypes 60 ©2010 Dan Rawsthorne: StoryoTypes Other Coding Storyotypes (examples) Other Coding Storyotypes [perf] – actually an epic, requires strategy for decomposition [bug] – work directly with originator of bug [cleanup] – for cleaning up bad code Need to capture what needs cleaning up, refactoring, unit tests, design, whatever… [documentation] – for finalizing documentation from info already gathered as part of [coding] stories Mixins [hack] – intentional hacking, always comes with a [cleanup] story [arch] – architecturally significant Makes an important decision Need review by team, or architecture team, or something [UI] - UI design reviewed by “UI SME” added (DB] - DB design reviewed by “DB Guy” added 61 ©2010 Dan Rawsthorne: StoryoTypes Other Production Storyotypes There are many other Production Storyotypes we could have. Some examples are… [spike] – a research story, usually involving coding. It can easily turn into an epic or a project… [documentation] – assemble the documentation details into a document for use, either for users, maintainers, whatever [training materials] – similar to documentation [integration] – in large teams (multiple small teams) we need a story to explicitly integrate pieces produced by the different teams What the Agreements are for these are “left to the user” 62 ©2010 Dan Rawsthorne: StoryoTypes We could even have Storyotypes for Epics 63 ©2010 Dan Rawsthorne: StoryoTypes Discussion of Epics Epics are Items that the Team can’t commit to, for any reason (Complex, Unknown, Risky, or Big) Has other Stories inside it There is usually no definition of “done” for an epic, but These inside stories have Agreements that can be committed to Example: Epic: “I want page XYZ to render in < 1/10 sec because it’s too slow right now” Epic because team can’t commit to 1/10 second (too risky) Stories inside could be: Do 4 hours worth of improvements to the rendering and measure to see how fast it is Implement algorithm ABC to speed up the rendering Etc Note that what the stakeholder will get is NOT what they want – it’s what the team can commit to… 64 ©2010 Dan Rawsthorne: StoryoTypes There are Various types of Epics Here’s a sample [epic] – so big it needs to be decomposed Different kinds of [epic]s decompose differently [usecase] (seen this one already) SMEs for the Use Case are … Constraints for Backbone are… [maintenance] – for holding bug list for a particular product [maintenance] SouvSite Bugs Would usually hold [bug] stories [perf] – an epic for “scooching” up on a performance goal [perf] Increase Rendering Speed on XYZ Page [perf] Handle 100,000 simultaneous users [issue], [dependency] – tags to remind us something must be managed, and the stories that manage it live in here… What else? BTW, this may be thinking too hard… 65 ©2010 Storyotypes by Dan Dan Rawsthorne: StoryoTypes Analysis Storyotypes 66 ©2010 Dan Rawsthorne: StoryoTypes Rawsthorne 65 Analysis Storyotypes Catalog Remember, analysis stories are stories the Team does in order to find new stories There are many kinds of analysis, including Studying source material Working with Stakeholders Processing Change Requests Exploratory Testing Usability Testing Etc Each of these methods is used at different times, and for different reasons, in the project But the goal is always to find new, valid, prioritized stories And put them on the Backlog 67 ©2010 Dan Rawsthorne: StoryoTypes Analysis Storyotypes (examples) [analysis] story General define focus of analysis SMEs for this are xxx, yyy, zzz Acceptance Criteria document new stories in backlog work with PO to prioritize stories verbal report to Team Definition of “Done” timebox the work [paper analysis] story get docs and other sources validate new stories with SMEs [exploratory testing] story Verify focus of testing 68 ©2010 [process requests] story validate new stories with requestors [work with stakeholders] story schedule a facilitated meeting prepare for innovation game summarize the results Dan Rawsthorne: StoryoTypes Discussion Talk amongst ourselves… What kinds of analysis do you do in your projects? How do you control it in your backlog? 5 minutes 69 ©2010 Storyotypes by Dan Dan Rawsthorne: StoryoTypes Other Storyotypes 70 ©2010 Dan Rawsthorne: StoryoTypes Rawsthorne 69 Short and Sweet These Storyotypes are relatively straightforward, so I’ll just list them by category They exist because: They provide value to the business, project, or product, if not to the user We have to do these things, so must plan for them – so there are stories There are common patterns across projects and organizations – so there are storyotypes 71 ©2010 Dan Rawsthorne: StoryoTypes Infrastructure/Environment “Set Up” Storyotype – Makes our team able to do work better and easier Set up CM Environment, Development Environment, Test Lab, Etc Team Training – courses, internal training, etc Add a Tool – “Install FITnesse” Improve XXX – “New build process” 72 ©2010 Dan Rawsthorne: StoryoTypes Business Support Storyotypes Used to provide support to the Business. They provide Business Value, but aren’t developing product 73 [sales meeting] [trade show] [train users] [support help desk] etc ©2010 Dan Rawsthorne: StoryoTypes Chore Storyotypes Used to set up or improve the Team’s environments, infrastructure, etc [new tool] [new hardware] These storyotypes are much more “ad hoc” than the previous ones 74 ©2010 Dan Rawsthorne: StoryoTypes Abstract Intro Brief Description of Scrum Team Background on Stories How I Found Storyotypes Uses of Storyotypes Agile Analysis Overview “Doneness” Agreement Organization “Need” to Standardize Examples Categories of StoryoTypes “Basic” Development Storyotypes Other Development Storyotypes We Could Even Have Storyotypes for Epics Analysis Storyotypes Other Storyotypes Summary 75 ©2010 Dan Rawsthorne: StoryoTypes Summary Doneness criteria contribute to a Team’s success Different kinds of stories have different kinds of doneness criteria Doneness criteria are good candidates for standardization in an organization Same codebase Same development environment Somewhat the same process Storyotypes are a method for capturing these standardized Doneness criteria For training For retrospections For helping people move from team to team 76 ©2010 Dan Rawsthorne: StoryoTypes Any Questions? 77 ©2010 Dan Rawsthorne: StoryoTypes Thank You Very Much! 78 ©2010 Dan Rawsthorne: StoryoTypes