User Stories Testing 2, October 21.

Slides:



Advertisements
Similar presentations
Introducing User Stories
Advertisements

Acceptance Testing.
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.
TDT 4242 Inah Omoronyia and Tor Stålhane Agile requirements through user stories and scenarios TDT 4242 Institutt for datateknikk og informasjonsvitenskap.
Practical User Stories Brett Maytom Senior Consultant, Readify VIC.NET - 10 May 2011.
Writing Good User Stories Bob Schommer, CSP, PMP Senior Project Manager Skyline Technologies, Inc.
Based on the XP Game by Vera Peeters and Pascal Van Cauwenberghe ( 1Software Engineering /Spring.
User Stories in an Agile Environment Mike McLaughlin, PMP, CSM, CSP Project Management Institute Kansas City Mid America Chapter March 19, 2012.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Agile Planning. The problem with documentation Argument: “Heavy” documentation too much for most business-style projects.
Agile Project Management with Scrum
Agile Development.
Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004.
Identifying Needs and Establishing Requirements John Thiesfeld Jeff Morton Josh Edwards.
OO Development Process. UML and Process UML standardizes notation, not process –Increase likelihood of widespread acceptance There is significant variability.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Management 421 Computer Science 350. Overview Project Roles Software Development Process Extreme Programming Management/Developer Interaction in Extreme.
Administrivia Turn in ranking sheets, we’ll have group assignments to you as soon as possible Homeworks Programming Assignment 1 due next Tuesday Group.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Chapter 4 Capturing the Requirements 4th Edition Shari L. Pfleeger
An Agile View of Process
1 College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 2 Chapter 6 & 7 System.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Roles Managers Technical Team Leaders Programmers Customers Database Administrators Instructors.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Software Development Landscape
Chapter 4 Agile Development
Demystifying the Business Analysis Body of Knowledge Central Iowa IIBA Chapter December 7, 2005.
R ELEASE P LANNING. H ELPFUL R ESOURCES Planning Extreme Programming, Kent Beck and Martin Fowler Extreme Programming Installed, Ron Jeffries, Ann Anderson.
1 e X treme P rogramming D. Dranidis September 2000 CITY College.
Mobile Aps: Agile Mentoring Review
5. Planning.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Agile Concepts - II “Agile” Estimating & Planning Nupul Kukreja 5 th November, 2014.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Lecture 7: Requirements Engineering
Agile Planning. The problem with documentation Argument: “Heavy” documentation too much for most business-style projects.
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
Systems Development Life Cycle
User Stories 1-3 sentences in everyday language “Connextra” format:
Extreme Programming Based on and
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Planning Extreme programming
Jim Remsik Agile Story Carding prepared
Agile Requirements Introducing User Stories. Key Principles for Agile Requirements Active user involvement is imperative Agile teams must be empowered.
Requirements in the product life cycle Chapter 7.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
User Stories- 2 Advanced Software Engineering Dr Nuha El-Khalili.
Introduction to Agile. Introduction Who is this guy?
By Manish Shrotriya CSE MS 4 Point Agile Manifesto 1.Individuals and interactions over processes and tools 2.Working software over comprehensive.
Informed Traveler Program and Applications Agile / Scrum Overview Jerry Inberg.
Use Cases Discuss the what and how of use cases: Basics Examples Benefits Parts Stages Guidelines.
Use Cases Discuss the what and how of use cases: Basics Benefits
Dr. Rob Hasker SE 3800 Note 3 Ch. 4, 5.
Requirements and User Stories
Taking an Iteration Down to Code
User Stories Applied, Mike Cohn Chapter 1: An Overview
User Stories Applied, Mike Cohn Chapter 2: Writing Stories
Chapter 3 – Agile Software Development
Introduction to Agile Blue Ocean Workshops.
User Stories Applied, Mike Cohn Chapter 2: Writing Stories
User Stories Applied, Mike Cohn Chapter 1: An Overview
Extreme Programming.
Agile Development.
Presentation transcript:

User Stories Testing 2, October 21

Admin Grades posted for HW 1 – stop by 238 if you want an explanation Don’t embed magic numbers in names Proj 1 due Saturday 8AM sharp HW #2 due Thursday 10/28 3:30PM Magic tournament this weekend (http://unityentertainment.net)

Proj 1 Proposed Weighting 20% functionality (2 points/story) 40% tests (green bar on submittal, test design, test coverage) 20% refactoring 20% documentation (iterations, retrospective, test case list)

User Stories 3 aspects Written description of story used for planning/reminding Conversations about the story that serve to fill out details Tests that convey and document details & can be used to determine when a story is complete Represent functionality that will be valued by users

Examples of specifying value to users Good: “A user can search for jobs” “A company can post new jobs” Bad: “The software will be written in C++” “The program will connect to the database through a connection pool”

Sizing stories Too broad = impossible to test/code Too narrow = more time spent specifying than implementing Aim for test & code cycle of about 4 hours to 2 weeks by one or 2 programmers per story Split long stories (“epics”) into smaller pieces Rather than specify small details, get those in conversations with customer & annotate story Big stories can serve as placeholders for areas of the system that still need to be discussed

Writing Stories Customer writes stories Good stories are Written in language of business to allow prioritization Customer is primary product visionary Good stories are Independent Negotiable Valuable to users or customers Estimatable Small Testable (INVEST)

Indepent Stories that depend on other stories are difficult to prioritize and estimate Example: A company can pay for a job posting with a Visa card A company can pay for a job posting with a Mastercard A company can pay for a job posting with an American Express card

Negotiable Story cards serve as reminders not contracts Details need to be fleshed out in conversation Story cards should have a phrase or sentence to serve as reminder to have conversation & notes about conversation

Valuable Both to people using the software and paying for the software Avoid stories valued only by developers (make the benefits to customers/users apparent for these stories) Example “All connections to the database are through a connection pool” could be rewritten as “Up to 50 users should be able to use the application with a 5-user database license”

Estimable 3 common reasons why story might not be Developers lack domain knowledge Get details from customer Developers lack technical knowledge Perform spike to explore technology Story is too big Split the story into smaller ones

Small Easy to use in planning Split compound & complex stories Combine too small stories

Splitting Stories Compound Complex Conversations may reveal multiple stories Split along Create/Update/Delete Split along data boundaries Complex Split into investigative and develop the new feature stories (define timebox for investigation) Make sure each split-off portion is a good story (INVEST)

Testable Can’t tell if story is done without tests Aim for most tests to be automatable

Story Responsibilities (Developers) Help the customers write stories that Are promises to converse rather than detailed specs Have value to the users or the customer Are independent Are testable Are appropriately sized Describing the need for technology/infrastructure in terms of value to users or customers Have the conversations with the customers

Story Responsibilities (Customers) Writing stories that Are promises to converse rather than detailed specs Have value to users or to yourself Are independent Are testable Are appropriately sized Have the conversations with the developers

Users Can be more than one type of user for system Different user types may have different roles and different stories Disfavored users (e.g., hackers) may be included as well as favored users Obviously, the value to users piece gets flipped for disfavored users

Role Modeling Brainstorm an initial set of user roles Organize the initial set Consolidate roles Refine the roles

Roles for Magic DB?

Attributes worth considering when refining roles Frequency with which user will use software User’s level of expertise with domain User’s general level of proficiency with computers and software User’s level of proficiency with this software User’s general goal for using software

Additional user modeling Identify personas Should be described sufficiently so everyone on team feels like they know this “person” Choose personas that truly represent user population Extreme characters Make a PDA for Drug dealer The Pope 20-year old woman juggling multiple boyfriends

User Modeling Responsibilities (Developers) Participate in process of identifying user roles and personas Understanding each user role & how they differ Thinking about how different user roles might prefer their software to behave Identifying & describing user roles doesn’t go beyond role of tool in the process

User Modeling Responsibilities (Customers) Looking broadly across space of possible users & identifying appropriate roles Participating in process of identifying roles and personas Ensuring software does not focus inappropriately on a subset of users Ensuring that each story can be associated with at least one user role or persona Thinking about how each user role may prefer their software to behave Identifying & describing user roles doesn’t go beyond role of tool in process

Getting stories Trawl for stories (rather than elicit) Techniques Different size nets Fish grow and die Won’t capture all fish by trawling Skill plays a factor Techniques User interviews Questionnaires Observation Story-writing workshops

Story Gathering Responsibilities Understand & use multiple techniques Knowing how to make use of open-ended and context-free questions Customer-specific Write as many user stories as early as possible Understanding options in communicating with users Scheduling & running story-writing workshop Ensuring all user roles represented when trawling

Acceptance Tests Use tests to track details Write the tests before coding Acceptance tests are ideally specified by the customer Don’t replace unit tests

Acceptance Test Responsibilities (Developers) Automating the execution of acceptance tests Thinking about additional acceptance tests when starting development Unit testing

Acceptance Test Responsibilities (Customers) Writing acceptance tests Executing acceptance tests

Guidelines for Good Stories Start with goal stories Write closed stories (stories that have a definite end point) “A recruiter can review resumes from applicants to one of her ads” instead of “A recruiter can manage the ads she has placed” Put constraints on the system on cards & implement automated tests for them

Guidelines II Size your story appropriately for the time frame it may be implemented in Keep the UI out as long as possible Don’t rely solely on stories if somethings are better expressed in other ways Include user roles in stories rather than saying “user” Write for a single user (“A Job Seeker” not “Job Seekers” Use Active Voice

Son of Guidelines Don’t number the story cards Don’t forget the purpose of using story cards

Using Stories Assign points to stories based on difficulty of coding For each release, customer prioritizes stories Developers determine velocity (# of points per release cycle) for previous cycle and plan to implement the highest priority stories up to that number of points for the release

User Stories are Not Requirements documents Use Cases Scenarios

Why do user stories? Emphasize verbal communication Comprehensible by everyone Right size for planning Work for iterative development Encourage deferring detail Support opportunistic development Encourage participatory design Build up tacit knowledge

Why not user stories? May be difficult to understand relations between stories Not suitable for requirements traceability (if required by process) May not scale well to large teams

Story Smells Stories are too small Interdependent stories Goldplating Too Many details Including UI detail too soon Thinking too far ahead Splitting too many stories Customer has trouble prioritizing Customer won’t write and prioritize the stories