TDT 4242 Inah Omoronyia and Tor Stålhane Agile requirements through user stories and scenarios TDT 4242 Institutt for datateknikk og informasjonsvitenskap.

Slides:



Advertisements
Similar presentations
Introducing User Stories
Advertisements

Armstrong Process Group, Inc. Copyright © , Armstrong Process Group, Inc., and others All rights reserved Armstrong Process.
Are Parametric Techniques Relevant for Agile Development Projects?
Iteration Planning.
Program Management School Agile & ADDIE Add-Up (AAAU) Elliott Masies Learning 2012 October 21-24, 2012.
OOAD – Dr. A. Alghamdi Mastering Object-Oriented Analysis and Design with UML Module 3: Requirements Overview Module 3 - Requirements Overview.
Practical User Stories Brett Maytom Senior Consultant, Readify VIC.NET - 10 May 2011.
SCRUM John Drew. SCRUM - overview Scrum is a project management discipline that has evolved since the early 1990s to deliver software that meets business.
Intro to Scrum. What is Scrum? An answer to traditional “fixed cost / strict requirements” contracts which had very high rates of failure Recognizes the.
The Business Analyst Role in Agile Projects
Extreme Programming Team Members Gowri Devi Yalamanchi Sandhya Ravi.
Management 421 Computer Science 350. Overview Project Roles Software Development Process Extreme Programming Management/Developer Interaction in Extreme.
Analysis Concepts and Principles
Extreme Programming--a “New” Process Model Extreme Programming-- a “New” Process Model.
Coming up: The Manifesto for Agile Software Development 1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development Software Engineering:
Agile-SCRUM. Introduction to SCRUM Sanil Xavier What is Scrum?
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
Classical vs. Agile Requirements Development Svetlin Nakov Telerik Software Academy academy.telerik.com Senior Technical Trainer
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Roles Managers Technical Team Leaders Programmers Customers Database Administrators Instructors.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
BEFORE AGILE METHODS Other Engineering fields development models were used, ie: Waterfall Method: Intensive planning and refactoring before coding is actually.
© 2010 AT&T Intellectual Property. All rights reserved. AT&T and the AT&T logo are trademarks of AT&T Intellectual Property. Deeper Dive Into: User Stories.
Alcatel-Lucent CDC Workshop, Coaching & Knowledge Transfer Project Management.
Developing Use Cases in a Group Carolyn L. Cukierman Face-to-Face Technology Conference March 27, 2000.
Release and Iteration Planning September 13, 2008.
SCRU M Scrum Overview - Commonly Used Terms Ali Qureshi, parorrey.com – 31 st Aug, 2015 PI Media parorrey.com.
Classical vs. Agile Requirements Development Svetlin Nakov Telerik Software Academy academy.telerik.com Senior Technical Trainer
Mobile Aps: Agile Mentoring Review
CSE Senior Design I Building a Plan Instructor: Mike O’Dell Several of the slides in this module are a modification and amplification of slides prepared.
Agile Concepts - II “Agile” Estimating & Planning Nupul Kukreja 5 th November, 2014.
Ch 4 - Learning Objectives Scope Management You should be able to: n Discuss the relationship between scope and project failure n Describe how strategic.
Illustrations and Answers for TDT4252 exam, June
DESIGN PROPOSAL REPORT. Why write a proposal? Basic means of convincing someone to support a project. Important tool for organizing time and resources.
Theories of Agile, Fails of Security Daniel Liber CyberArk.
Agile Metrics It’s Not All That Complicated. © 2011 VersionOne 2 Welcome – About your Trainer, Katia Sullivan VersionOne Product Trainer and Agile Coach.
January 24, 2009 Agile Product Management Making Things Happen Walter Bodwell Planigle.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
10 key principles of agile software development
Agile 101. Feasibility Study SDLC – What is it? Systems Development Life Cycle: The most commonly used, and generally accepted, project management approach..
Agile Requirements Introducing User Stories. Key Principles for Agile Requirements Active user involvement is imperative Agile teams must be empowered.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
User Stories- 2 Advanced Software Engineering Dr Nuha El-Khalili.
Introduction to Agile. Introduction Who is this guy?
Kanban Advanced Software Engineering Dr Nuha El-Khalili.
CSE Senior Design II Scrum Review/Discussion Instructor: Mike O’Dell.
Software Quality Assurance Chip Ene, February 14, 2015.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Agile Methodology. -Dhanashree Kumkar -Plus91 Technologies.
Informed Traveler Program and Applications Agile / Scrum Overview Jerry Inberg.
Agile Requirements Introducing User Stories. Key Principles for Agile Requirements Active user involvement is imperative Agile teams must be empowered.
Embedded Systems Software Engineering
Agile Project Management and the yin & yang of
Software Development.
Process 4 Hours.
User Stories > Big and Small
Agile Scrum Management
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Software Requirements
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Requirements and User Stories
Product Backlog List of things that needs to be done to make the product come into existence 
Summarizing Our Models to Date
Agile Process: Overview
Introduction to Agile Blue Ocean Workshops.
Extreme Programming.
Scrum in Action.
Adapting Agile in Pharmaceutical Industries
Story Writing.
Presentation transcript:

TDT 4242 Inah Omoronyia and Tor Stålhane Agile requirements through user stories and scenarios TDT 4242 Institutt for datateknikk og informasjonsvitenskap

TDT 4242 Agenda Key principles of agile requirements User stories INVEST Prioritizing stories User story mapping Challenges Conclusion

Key Principles for Agile Requirements Active user involvement is imperative Agile teams must be empowered to make decisions Requirements emerge and evolve as software is developed Agile requirements are ‘barely sufficient’ Requirements are developed in small pieces Enough’s enough – apply the 80/20 rule Cooperation, collaboration and communication between all team members is essential

Requirements are a Communication Problem Written requirements – can be well thought through, reviewed and edited – provide a permanent record – are easily shared with groups of people – time consuming to produce – may be less relevant or superseded over time – can be easily misinterpreted Verbal requirements – instantaneous feedback and clarification – information-packed exchange – easier to clarify and gain common understanding – easily adapted to any new information known at the time – can spark ideas about problems and opportunities

User Stories seek to combine the strengths of written and verbal communication, where possible supported by a picture. * Kent Beck coined the term user stories in Extreme Programming Explained 1 st Edition, 1999

What is a User Story? A concise, written description of a piece of functionality that will be valuable to a user (or owner) of the software. Stories are: – User’s needs – Product descriptions – Planning items – Tokens for a conversation – Mechanisms for deferring conversation

User Story Cards have 3 parts 1.Description - A written description of the user story for planning purposes and as a reminder 2.Conversation - A section for capturing further information about the user story and details of any conversations 3.Confirmation - A section to convey what tests will be carried out to confirm the user story is complete and working as expected

User Story Template – 1 -As a [user role] I want to [goal] so I can [reason] -As a [type of user] I want to [perform some task] so that I can [reach some goal] Example: As a registered user I want to log in so I can access subscriber-only content

User Story Template – 2 Who (user role) What (goal) Why (reason) gives clarity as to why a feature is useful can influence how a feature should function can give you ideas for other useful features that support the user's goals

User Story Description Steps: Start with a title. Add a concise description using the templates. Add other relevant notes, specifications, or sketches Before building software write acceptance criteria (how do we know when we’re done?)

Example: Front of Card

Example: Back of Card

How detailed should a User Story be? Detailed enough For the team to start working from To establish further details and clarifications at the time of development.

INVEST in Good User Stories Independent – User Stories should be as independent as possible. Independent Negotiable – a User Story is not a contract. It is not a detailed specification. It is a reminder of features for the team to discuss and collaborate to clarify the details near the time of development. Negotiable Valuable – User Stories should be valuable to the user (or owner) of the solution. They should be written in user language. They should be features, not tasks. Valuable Estimatable – User Stories need to be possible to estimate. They need to provide enough information to estimate, without being too detailed. Estimatable Small – User Stories should be small. Not too small and not too big. Small Testable – User Stories need to be worded in a way that is testable, i.e. not too subjective and to provide clear details of how the User Story will be tested. Testable

15 Prioritize stories in a backlog Agile customers or product owner prioritize stories in a backlog A collection of stories for a software product is referred to as the product backlog The backlog is prioritized so that the most valuable items have the highest priorities

16 User Story Mapping – 1 User Story Mapping is an approach to Organize and Prioritize user stories Unlike typical user story backlogs, Story Maps: – make the workflow or value chain visible – show the relationships of larger stories to their child stories – help confirm the completeness of your backlog – provide a useful context for prioritization – plan releases in complete and valuable slices of functionality.

17 User Story Mapping – 2 Spatial arrangement: – By arranging activity and task-centric story cards spatially, we can identify bigger stories – Arrange activities left to right in the order you’d explain them to someone when asked the question: “What do people do with this system?” time

18 User Story Mapping – 3 Overlap user tasks vertically if a user may do one of several tasks at approximately the same time If in telling the story I say the systems’ user typically “does this or this or this, and then does that”. “or” signal a stacking vertically, and “then” signal stepping horizontally. time

19 User Story Mapping – 4 The map shows decomposition and typical flow across the entire system. Reading the activities across the top of the system helps us understand end-to-end use of the system. time Below each activity, or large story are the child stories that make it up

20 User Story Mapping - prioritizing Prioritizing based on product goal – Product goals describe what outcome or benefit is received by the organization after the product is put into use – Use product goals to identify candidate incremental releases, where each release delivers some benefit

21 User Story Mapping - prioritizing – Create horizontal swim-lanes to group features into releases – Arrange features vertically by necessity from the user’s perspective – Split tasks into parts that can be deferred till later releases – Use the product goals to identify slices that incrementally realize product goals. optionality necessary less optional more optional

From user story to test case We can also use templates to write test cases for the use stories. One tool that employs such templates is CUCUMBER. The template is as follows: Scenario: a short description of the test scenario Given: test preconditions When: test action – input Then: test result – output And: can be used to include more than one precondition, input or output.

CUCUMBER example Scenario: memory BIT When: we have inserted a memory fault And: run a memory BIT Then: the memory fault flag should be set And: the system should move to the error state

Agile – Challenges Active user involvement can be demanding on the user representative's time and require a big commitment for the duration of the project. Iterations can be a substantial overhead if the deployment cost are large Agile requirements are barely sufficient: – This can mean less information available to new starters in the team about features and how they should work. Usually not suitable for projects with high developer turnover with long-term maintenance contract Arguably not suitable for safety critical systems. 24

User Stories Summary User Stories combine written and verbal communications, supported with a picture where possible. User Stories should describe features that are of value to the user, written in the user’s language. User Stories detail just enough information and no more. Details are deferred and captured through collaboration just in time for development. Test cases should be written before development, when the User Story is written. User Stories should be Independent, Negotiable, Valuable, Estimatable, Small and Testable.