User story mapping Radim Göth How to record software requirements • Use cases • Software Requirements Specification document (SRS) • Fishbone diagrams • … • User stories • Informal • From user perspective • (Kent Beck 1997) Format As a < type of user >, I want < some goal > so that < some reason >. Acceptance criteria: • Acc1: … • Acc2: … Out of scope: • … Notes • … Examples • As a user, I can backup my entire hard drive. • As a power user, I can specify files or folders to backup based on file size, date created and date modified. • As a user, I can indicate folders not to backup so that my backup drive isn't filled up with things I don't need saved. Taken from: User Stories and User Story Examples by Mike Cohn (mountaingoatsoftware.com) User story mapping • Agile approach to refine difficult tasks. • From user perspective. • Helps us focus the conversation. • Helps us define priorities. • To keep in mind: • Deliver sooner, not faster. • Only one conversation. • Don’t move forward until all important information are noted. Taken from User Story Mapping: Discover the Whole Story, Build the Right Product: Patton, Jeff, Economy, Peter: 9781491904909: Amazon.com: Books Example: IS MUNI Calendar Release 1 – MVP (beta) Release 2 - GA Release 3 Agile manifesto • Manifesto for Agile Software Development (agilemanifesto.org) • Values: • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan • Principles: 1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. 2. … Refinement As a user, I want to see MUNI calendar along with my personal, so that I have all my agenda in one place. • Acceptance criteria: 1. Works with Apple Calendar, Google Calendar, Microsoft Outlook. 2. Different types of events are shown as in separate calendars. 3. Link can be copied by select and copy the text or with convenient button. • Out of scope: • Translations or i18n. • Other calendar clients. • Notes: • UX & design from Jirka is at https://.... • Don’t forget to add brief explanation of synchronization link usage and consult the text with our interaction designers. • Estimation: • Planning poker (story points or man days interval) Splitting user stories As a user, I want to see national holidays in calendar, so that I know when I don’t need to go to school. Dev team: Which national holidays? Only Czech or Slovak? PO: According to institution location – if the faculty/university is in Czech, then Czech holidays, if it is in France, then France holidays etc. Dev team: It’s too complicated. Would it be ok to split it to two stories: “Show only Czech holidays” and “Show holidays according to location”? PO: Sure. But I want to release is ASAP and I don’t want French students to see Czech holidays. Dev team: No problem. We will put there feature toggle so that first story will be only available for Czech. PO: Deal. A good user story • “I” ndependent (of all others) • “N” egotiable (not a specific contract for features) • “V” aluable (or vertical) • “E” stimable (to a good approximation) • “S” mall (so as to fit within an iteration) • “T” estable (in principle, even if there isn’t a test for it yet) What does INVEST Stand For? | Agile Alliance Project Our client, the stock advisory company, provides services of stock market analyses, stock monitoring and stock recommendation. More and more of their clients ask for news about ARK invest ETFs funds and want to know what CEO Cathie Wood buys and sells. So far, their analysts go every month to https://ark-funds.com/funds/arkk/ download the full holding in CSV, do the diff in Excel and send it via email to their clients. The diff looks like this: New positions: Company name, ticker, #shares, weight(%) Increased positions: Company name, ticker, #shares (🔺x%), weight(%) Reduced positions: Company name, ticker, #shares (🔻x%), weight(%) Your task is to work with the stock advisory company to help them automate it. This company has been our customer for a long time. This is not a fixed scope project. Both parties agree to cooperate and adjust plans as needed in an agile way. Our ultimate goal is satisfied customer.