Monday, April 24, 2017

Need for clarity in the backlog/user stories and defects

Often times we come across poorly written backlogs and defects. This not only leads to confusion but also creates rework in the sense that spending time to understand what is happening to the system and what are the expectations from developer or tester.
As someone said, clarity is divine. Without clarity there is chaos and confusion; ultimately this leads to delays is the software delivery. Maintaining clarity helps involved stakeholders in following manner –
  1. To identify work involved 
  2. To come up with list of tasks, before actually working on the backlog or defect.
  3. To come with any proposals that can be shared with stakeholders for approvals (if required)
  4. To know risky areas upfront as far as possible
  5. To know dependencies/bottlenecks before working on the tasks

Why should we provide details in the backlogs (or user stories)?

  1. Clarity on the use case to the developer
  2. To determine priority by the product owner and/or marketing
  3. After some time gap there is possibility of even submitter not remembering about how to reproduce the defect
  4. When we provide details, we come to know whether backlog is too big, if it is, then backlog needs to be broken to fit into one single sprint (just in case anything is missed in backlog grooming)

What should be provided in the backlogs (or user stories)?

  1. Crystal clear acceptance criteria is must. In absence of it, developer and tester cannot know what is the measuring criteria to mark the backlog as done
  2. To write test cases clarity on acceptance criteria comes handy
  3. Some of the generic tasks like code review, document update, test case writing must be added by default. In version one this is possible by creating Template Backlogs.
  4. As far as possible list of tasks to be done should be added to avoid rework on tasks identification.
  5. A wireframe/screenshot of UI (if applicable)
  6. Establish dependencies between backlogs
  7. Map to parent Epic as far as possible, this associates a chain of requirements

Why should we provide details in the defects?

  1. To let severity determination by the product owner and/or marketing to prioritize the defect. Detailed information on the defect helps in the decision process.
  2. To let developer reproduce defect on his own
  3. To make developer, tester and other stakeholders on the same page

What should be provided in the defects (or user stories)?

  1. Exact use case with steps
  2. Observations after performing the steps
  3. What is the expected behavior from your perspective
  4. Initial severity, based on the pre-existing shared guidelines
  5. Initial priority, from your perspective (this can be discussed and then updated too)
  6. Build and release number of the software, service pack number and other useful info on which issue is seen
  7. Backlogs broken by the defect
  8. OS details
  9. Clear distinction between “Unit Testing Defect, Integration Testing Defect, Acceptance Testing Defect and Regression Defect” &/or other such types
  10. A screenshot of the issue (if applicable)
  11. Any input data/files necessary to reproduce the defect

Common for both backlogs and defects

  1. When discussion happens on the backlog/defect it should be captured and attached to it in the system. In future this helps to understand the requirements etc. for new comers and can be used as requirement documentation.
  2. Map to parent Epic as far as possible, this associates a chain of requirements that can be easily viewed
  3. Provide/attach any external links where discussion happened or that may help to understand the requirement

No comments: