[[Software Product Management Specialization]] [[Course 1. Introduction to Software Product Management]] [[Course 3. Client Needs and Software Requirements]] [[Course 3. Week 2. User Interaction.]] [[Week 4. Quality Requirements]] https://www.coursera.org/learn/client-needs-and-software-requirements/home/week/3 ## Week 3. Writing Requirements ### Agile Requirements ![[Agile Project Management - Coursera#^9a433f]] - Welcoming changing requirements - Based on the principle that software is dynamic, how software should functions. It's inevitable. - Form them to take into that considerations - produce the product right - Encouraging face to face interaction - Open and collaborative setting with the client Apply agile principles and techniques. ### User Stories How to express requirements, through user stories. User Stories - [[User Stories]] - Who - Defining user/ - What - what they want to accomplish/tasks. - Why? - Give context, give values. It give clarity to who, what, why. Compact enough to write on index card. Written by a client. Or Software development managers to express it in User Stories form. They can be organised into groups. What's a good requirement? Or a good user stories? - One that specific outline requirement in a product. ==**INVEST**== - Independent - It can be developed separately from other user stories. - Combine similar stories - Negotiable - General enough to work around implementations. things can change - Valuable - What's valuable to client - Estimable - Can allow developer to estimate how long it will take to produce the work. - Small - Small, that can be developed in short time. - Break down large stories - Testable - Can be verified to consider it done. **EPIC** "An 'Epic' is a user story that is nearly insurmountable. There are vague, broad descriptions of a requirement." - Usually introduced in the early stage, a general idea.. but vague. Example, is a customer would like to be able to pay for the bill so that he can settle what he owe quickly. - Sound simple, but because vague on how to pay, what methods, not clear. It will be described as an Epic. - Careful not to specific too much to constraint/limit the development options. - Break down Epic into smaller stories to make it doable. - e.g "As a customer, i want to be able to see a bill, with all the items in order so that i can see how much my order will cost." - e.g "As a customer, i want to be able to select a 'pay now' option when i view my bill so that i can pay the bill immediately." - e.g "As a customer, i want to be able to enter my payment details for visa or mastercard credit cards so that i can pay using a convenient method." ## Review criteria Formed by the clients, and developers. The flip side for each user stories. - Acceptance Test - How to verify that the user stories have been satisfied. - Acceptance Criteria are specific conditions which must be met - Acceptance Tests are the methods for verifying whether the condition has been met or not. **E.g acceptance criteria** ![[Screenshot 2022-05-25 at 8.53.47 PM.png]] **Acceptance Tests** ![[Screenshot 2022-05-25 at 8.54.41 PM.png]] "A room can be marked as clean from the room overview screen" is a Acceptance criteria "From the room overview screen, select 'mark room as clean'" is an Acceptance tests specific condition to be met / method to check for that condition - I think the language. Tests are actions. - Criteria are "can be, should be. " ### Acceptance Tests Testable. ### Product Backlog [[Product Backlog is a list of software features which you and your team intend to develop]] - Consist of user stories - Work Tasks - Physical to do tasks - Knowledge Tasks - Things to learn. - Bugs In the beginning, there is no order, just a log. Unique identifier for each user stories. To easy to refer to them Rank the user stories, Highest to lowest priorities. Developer do what's on top first. Then do them one sprint at a time Discussion and collaboration all the time. Product owner role to manage the backlog. During sprint, cannot change. Can only change for the next sprint. Product backlog is dynamics, live, changing. ![[Stanley's Problem_ Part 2, Product Backlog.pdf]] ### Story Maps Another way to organise product backlog, user stories. Grouping of user stories based on a common functions, and tasks Like the example of creating a email software. The different user stories are grouped under a heading. ![[Screenshot 2022-05-25 at 9.13.54 PM.png]] Then can prioritise which user stories to go on top, in earlier releases. It give a backlog into a more visual look It give how user stories fits together, and see the link between groups.. to see if there are holes in requirements. Story map focus development evenly. Give contexts to development, how it will develop over releases. Working prototype in progress. Story Maps is not Kanban Story map just make organising user stories better. --- # Module 3: Supplemental Resources ## Listed below are selected resources related to the topics presented in this module: ### User Stories and Acceptance Tests _A wikipedia article that explain acceptance testing._ "Acceptance testing - Wikipedia, the free encyclopedia." 2011. 19 Nov. 2015 <[https://en.wikipedia.org/wiki/Acceptance_testing](https://en.wikipedia.org/wiki/Acceptance_testing)> _A presentation on how to write effective user stories. Written by the author of the Mountain Goat Software blog._ "Writing Effective User Stories for Agile Requirements Mike ..." 2015. 19 Nov. 2015 <[https://www.mountaingoatsoftware.com/uploads/presentations/Writing-Effective-User-Stories-Agile-Requirements-Software-Development-Best-Practices-2005.pdf](https://www.mountaingoatsoftware.com/uploads/presentations/Writing-Effective-User-Stories-Agile-Requirements-Software-Development-Best-Practices-2005.pdf)> _Explains how to write acceptance criteria for user stories._ "User stories: a beginner's guide to acceptance criteria." 2013. 19 Nov. 2015 <[http://www.boost.co.nz/blog/2010/09/acceptance-criteria/](http://www.boost.co.nz/blog/2010/09/acceptance-criteria/)> _A wikipedia article that explains the Cone of Uncertainty._ "Cone of Uncertainty - Wikipedia, the free encyclopedia." 2011. 19 Nov. 2015 <[https://en.wikipedia.org/wiki/Cone_of_Uncertainty](https://en.wikipedia.org/wiki/Cone_of_Uncertainty)> _Some frequently asked questions about user stories (and the answers, of course)._ "User Stories - Mountain Goat Software." 2015. 19 Nov. 2015 <[https://www.mountaingoatsoftware.com/agile/user-stories](https://www.mountaingoatsoftware.com/agile/user-stories)> _Some tips on how to write good user stories. Covers the INVEST acronym._ "Write a Great User Story | CA Agile Central Help." 2013. 19 Nov. 2015 <[https://help.rallydev.com/writing-great-user-story](https://help.rallydev.com/writing-great-user-story)> _A wikipedia article that explains user stories. Gives some examples._ "User story - Wikipedia, the free encyclopedia." 2011. 19 Nov. 2015 <[https://en.wikipedia.org/wiki/User_story](https://en.wikipedia.org/wiki/User_story)> _Explains the INVEST and SMART acronyms for writing good user stories._ "INVEST in Good Stories, and SMART Tasks | XP123." 2010. 19 Nov. 2015 <[http://xp123.com/articles/invest-in-good-stories-and-smart-tasks/](http://xp123.com/articles/invest-in-good-stories-and-smart-tasks/)> ### Product Backlog _A blog post that explains the product backlog from the Mountain Goat Software blog._ "Product Backlog - Mountain Goat Software." 2015. 19 Nov. 2015 <[https://www.mountaingoatsoftware.com/agile/scrum/product-backlog](https://www.mountaingoatsoftware.com/agile/scrum/product-backlog)> _A brief article that gives some tips and suggestions for prioritizing the backlog._ "Prioritizing the Backlog | CA Agile Central Help." 19 Nov. 2015 <[https://help.rallydev.com/prioritizing-backlog](https://help.rallydev.com/prioritizing-backlog)> ### Story Maps _A podcast that explains user stories._ "Steve Rogalsky Maps User Stories - .NET Rocks! vNext." 2015. 19 Nov. 2015 <[https://www.dotnetrocks.com/default.aspx?showNum=750](https://www.dotnetrocks.com/default.aspx?showNum=750)> _A brief definition of story mapping. Also, a good Agile dictionary for any other Agile-related terms you wanted defined._ "Story mapping - Guide to Agile Practices - Agile Alliance." 2012. 19 Nov. 2015 <[http://guide.agilealliance.org/guide/storymap.html](http://guide.agilealliance.org/guide/storymap.html)> _A good explanation for how to create a story map._ "Creating an Agile Road Map Using Story Mapping - Scrum ..." 2013. 19 Nov. 2015 <[https://www.scrumalliance.org/community/articles/2013/august/creating-an-agile-roadmap-using-story-mapping](https://www.scrumalliance.org/community/articles/2013/august/creating-an-agile-roadmap-using-story-mapping)> _A step-by-step explanation of how to create a story map. Also includes an example._ "Winnipeg Agilist: How to create a User Story Map." 2012. 19 Nov. 2015 <[http://winnipegagilist.blogspot.com/2012/03/how-to-create-user-story-map.html](http://winnipegagilist.blogspot.com/2012/03/how-to-create-user-story-map.html)>