Defining Done in User Stories

Similar documents
Product Backlog Document Template and Example

Specifying Acceptance Criteria

How to Improve Your Campaign Conversion Rates

10 Tips For Effective Content

Part 1 Simple Arithmetic

Samples of Features and Feature Stories CSc 190

Story Writing Basics

Smart formatting for better compatibility between OpenOffice.org and Microsoft Office

Who am I? I m a python developer who has been working on OpenStack since I currently work for Aptira, who do OpenStack, SDN, and orchestration

Atlassian JIRA Introduction to JIRA Issue and Project Tracking Software Tutorial 1

Basic Fiction Formatting for Smashwords in OpenOffice L. Leona Davis. Copyright 2012 L. Leona Davis All Rights Reserved

Troubleshooting Maple Worksheets: Common Problems

EBOOK THE BEGINNER S GUIDE TO DESIGN VERIFICATION AND DESIGN VALIDATION FOR MEDICAL DEVICES

DIRECTV Message Board

Image Application Proposal

A PROGRAM IS A SEQUENCE of instructions that a computer can execute to

Taking Control of Your . Terry Stewart Lowell Williamson AHS Computing Monday, March 20, 2006

Table of Contents. Part 1 Postcard Marketing Today Brief History of Real Estate Postcards Postcard Marketing Today...

#12 - The art of UI prototyping

MITOCW ocw f99-lec12_300k

MITOCW watch?v=r6-lqbquci0

WEBINARS FOR PROFIT. Contents

Welcome to this IBM Rational Podcast. I'm. Angelique Matheny. Joining me for this podcast, Delivering

Kanban One-Day Workshop

Agile Studio USER GUIDE 7.3

Scrum and Kanban Compare and Contrast

BEGINNER PHP Table of Contents

The Stack, Free Store, and Global Namespace

Blog post on updates yesterday and today:

Learn Python In One Day And Learn It Well: Python For Beginners With Hands-on Project. The Only Book You Need To Start Coding In Python Immediately

ServiceNow - Agile in ServiceNow

Understanding Browsers

School of Computer Science CPS109 Course Notes 5 Alexander Ferworn Updated Fall 15

CS103 Spring 2018 Mathematical Vocabulary

Easy Video Blogging and Marketing on Youtube! by Leslie Truex

Poulsen, Kevin Wednesday, November 07, :54 PM Singel, Ryan FW: [hush.com # ] Journalist's query

CaseComplete Roadmap

MITOCW watch?v=4dj1oguwtem

Working with PDF and PDF/X Technology. This article is supported by...

Introduction. Using Styles. Word 2010 Styles and Themes. To Select a Style: Page 1

Instructions I Lost My Iphone 4 Password Yahoo

Data Structures And Other Objects Using Java Download Free (EPUB, PDF)

Read & Download (PDF Kindle) Data Structures And Other Objects Using Java (4th Edition)

MTAT Software Engineering. Written Exam 17 January Start: 9:15 End: 11:45

Certified ScrumMaster (CSM) 83 Success Secrets: 83 Most Asked Questions On Certified ScrumMaster (CSM) - What You Need To Know

Staff Intranet Survey Results

Cognitive Disability and Technology: Universal Design Considerations

Before You Lose Your iphone

Secret CPA Superhero

Dynamics 365 for Customer Service - User's Guide

Sample Online Survey Report: Complex Software Application

The User Experience Java Programming 3 Lesson 2

Beans and DAOs and Gateways, Oh My! by Sean Corfield

We have looked at how and why one router dials another using ISDN. Just as important is knowing what keeps the link up once it is dialed.

Table of Contents INTRODUCTION TO VIDEO MARKETING... 3 CREATING HIGH QUALITY VIDEOS... 5 DISTRIBUTING YOUR VIDEOS... 9

Binary, Hexadecimal and Octal number system

Download, Install and Use Winzip

LESSONS LEARNED: BEING AGILE IN THE WATERFALL SANDBOX

Assignment 10 Solutions Due May 1, start of class. Physics 122, sections and 8101 Laura Lising

Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5

This book is dedicated to Sara, Inara, and the newest little one, who make it all worthwhile.

Introduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014

Agile Software Development. Software Development Methodologies. Who am I? Waterfall. John York JOHN YORK EECS 441 FALL 2017 A BRIEF LOOK

Pega Agile Studio USER GUIDE 7.4

Agile Software Development. Software Development Methodologies. Who am I? Waterfall. John York JOHN YORK EECS 441 WINTER 2018 A BRIEF LOOK

This paper was presented at DVCon-Europe in November It received the conference Best Paper award based on audience voting.

User Stories Applied, Mike Cohn

Lesson 3 Transcript: Part 1 of 2 - Tools & Scripting

Linked Lists. What is a Linked List?

Speech 2 Part 2 Transcript: The role of DB2 in Web 2.0 and in the IOD World

Digital Marketing Manager, Marketing Manager, Agency Owner. Bachelors in Marketing, Advertising, Communications, or equivalent experience

Up and Running Software The Development Process

How to unlock my iphone screen

Real Fast PC. Real Fast PC Win 7.

WENDIA ITSM EXPERT TALK

Class #7 Guidebook Page Expansion. By Ryan Stevenson

Extreme programming XP 6

Testing is a very big and important topic when it comes to software development. Testing has a number of aspects that need to be considered.

MicroSurvey Users: How to Report a Bug

FAQ: Crawling, indexing & ranking(google Webmaster Help)

Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we

Note: Please use the actual date you accessed this material in your citation.

Empty Your Inbox 4 Ways to Take Control of Your

The following content is provided under a Creative Commons license. Your support

The Agile Samurai: How Agile Masters Deliver Great Software PDF

Most of the class will focus on if/else statements and the logical statements ("conditionals") that are used to build them. Then I'll go over a few

Learn C# In One Day And Learn It Well: C# For Beginners With Hands-on Project (Learn Coding Fast With Hands-On Project) (Volume 3) Read Free Books

Google Docs Website (Sign in or create an account):

Full Website Audit. Conducted by Mathew McCorry. Digimush.co.uk

Lesson 5: Verifying RAMs with the Fluke 9010A Version 1.03

Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5

EPISODE 23: HOW TO GET STARTED WITH MAILCHIMP

Exam Ref Programming In HTML5 With JavaScript And CSS3 (MCSD): Programming In HTML5 With JavaScript And CSS3 Free Ebooks PDF

Meet our Example Buyer Persona Adele Revella, CEO

Enrolling in the Apple Developer program

Also, be aware of our Tech Wizard hours Thursdays from 10-noon.

Introduction to Algorithms / Algorithms I Lecturer: Michael Dinitz Topic: Algorithms and Game Theory Date: 12/3/15

Word Tips and Tricks - by Rick Black

Making a PowerPoint Accessible

Quiz 3; Tuesday, January 27; 5 minutes; 5 points [Solutions follow on next page]

Transcription:

This article originally appeared on Artima Developer on Wednesday, January 6, 2010. To access it online, visit: http://www.artima.com/articl es/defining_done.html Defining Done in User Stories By Victor Szalvay Summary An increasing number of organizations are taking the plunge to Scrum, with or without professional coaching. Developers transitioning to Scrum can avoid many pitfalls by following a handful of hard-learned principles. In this article, I discuss a common mistake with the popular "user story" requirements format: poorly defined done criteria. I've seen a lot of Scrums over the years: Good Scrums, bad Scrums, and everything in between. Sometimes the Scrums are productive, transformative machines, but, in other cases, Scrum simply means walking through the meeting mechanics, following the basic rules, and an attempt to incorporate basic Scrum roles. I believe the secret is to embrace Scrum s focus on quality. Too many development groups are doing Scrum without baking quality into their products from requirements to deployment. The results are faster development of the "wrong product" and an accumulation of unmaintainable code, which ultimately leads to reduced velocity as technical debt builds up. Conversely, a quality product addresses market needs, and the ease of maintainability means that velocity isn't weighed down by cumbersome code. So how do you bake quality into your product? While that's too broad of a topic to cover here in detail, I've found one commonly overlooked thing that often qualifies as an excellent first step: To succeed with Scrum, you must clearly define what you mean by "done." The Importance of User Stories I'm referring to user stories or product backlog items in sprints. Before a team sets out to work on user stories in a sprint, the team and Product Owner must have a clear agreement on what it means for each work item to be accepted as "done." This agreement is pivotal to Scrum: without it, you will find only frustration and miscommunication. A user story should set the stage and provide some context, but the definition of "done" in a user story is the meat of the contract between

the development team and the Product Owner. I usually structure product backlog items as follows: User Story: As a registered user, I want to reset my password, so that I can log in even though I've misplaced my password. Provide a "password reset" option User must provide valid email address of a registered user to reset password User must demonstrate control of email address to reset password So why is this so hard to get right? You can go wrong by going overboard in either direction. Provide too little detail and you end up with sprint review meetings where expectations are not met or the wrong product is built. Give too much detail and you're struggling to get started because your user stories are over-analyzed. The Right Level of Detail Let's start with the first case: too little definition. This one is pretty obvious: if there's any room for interpretation, you can bet that the team and Product Owner will have diverging conceptions of what "done" means. The team has a natural incentive to minimize the scope of product backlog items, while the Product Owner typically wants as much stuff built as possible. These incentives lead to misconceptions in terms of what qualifies as "done." Tracking our example above, here's an example of an under-developed definition of "done:" User can reset password if lost Password reset based on user's email address See why this is a recipe for disaster? It leaves out too many details around the verification of a user's account before resetting the password. Unless your team is particularly gracious and/or motivated, you'll likely see a sprint review demo without email address verification. Perhaps that's what was agreed upon, but likely there will be a lot of

head-scratching at the review meeting. Maybe you're excited that your team built anything at all, but that's another story... Now let s consider the opposite problem. Perhaps you're an analytical go-getter of a Product Owner. That's good. But it can be counterproductive and detrimental to the Scrum framework if you go too far over the top when you define done. Here's an example: Password link appears on X, Y, and Z screens under the fourth table using font "Snazzy," HTML color #0044fe User must provide valid email address of a registered user to reset password A message will be emailed to user asking them to click a link to verify email account ownership The message contains instructions to ignore the request if it wasn't requested by user The message contains legal disclaimers and opt-out information The verification scheme will use a unique hash key stored in a database table user_request_reset The db table is purged every 30 minutes for security reasons The db table schema is built to spec using proper foreign key constraints etc... You may be thinking that all this detail is actually rather good. The reality is that you will not get through sprint planning in half a day if you've pre-written all your product backlog items in this level of detail. You will get differing opinions and discussion on each and every point as your team will often provide insights for improvement that negate a lot of the details you spec out in advance. Remember that in Scrum detailed requirements analysis happens during the sprint, not before and not during sprint planning. Another issue with the above example is that it details things like db schema, stuff that's meant to be left to the team to decide since product backlog items define "what" is to be built, not "how." That is to say, let your team handle detailed requirements during the sprint and let your technical folks handle implementation details.

So what is just right? You need enough to get exactly what you want without overloading it to the point of detailing implementation details. In our example, here are the main things I want to see in the finished product at sprint review: 1. There needs to be a link or some way to get to the password reset screen. I accomplish this with: Provide "password reset" option Notice that I'm not implying a UI. It's generic enough to allow for detailed UI-specification later during the sprint while ensuring I get what I need. 2. The password reset function works by taking a user's email address. I accomplish this with: User must provide valid email address of a registered user to reset password Again notice that I don't specify implementation details, only my purpose. 3. The user must first demonstrate control of the email account before a new password is issued I accomplish this with: User must demonstrate control of email address to reset password Here again I've avoided lengthy and detailed specifications regarding the exact implementation, but I've made the security protocol clear nevertheless. It takes a bit of practice to find the sweet spot with "done" criteria. Once you have it down you'll see an immediate impact with your Scrum teams as they gel around clear, actionable goals. There's another important dimension to being "done." Explicitly agreeing on the software's functionality is one thing, but what about the non-functional requirements? How do you ensure that the team

isn't cutting corners on quality or getting the product into technical debt to make it happen? I ll answer those questions in a follow-up post, so be sure to check back soon. About the Author Victor Szalvay is CTO of Danube Technologies, Inc., and Product Owner of ScrumWorks Pro.