Review of user story best practices, and a dozen tips to help manage your agile Drupal project more efficiently. Presentation focuses on use of JIRA and agile practices.
7. chris.urban@acquia.com
@_urban_
A Solid Foundation
→ Documentation
§ Key knowledge shared
→ Communication
§ Processes shared
§ Expectations managed
8.
9. chris.urban@acquia.com
@_urban_
Documentation
→ Basic process for workflow
→ RACI – who is responsible for what and when
→ Objective rules and playbooks
→ Definitions, Hotfix criteria and course of action
§ Spike vs Tracer Bullet
§ Candidates for mid-sprint removal
§ Release checklists
§ Bugs & User Stories & Epics
12. chris.urban@acquia.com
@_urban_
Writing better user stories
→ Who: Using personas instead
of “user”
→ What: Clearly define stories
→ Why: Use relevant drivers that
everyone can relate to
→ What is the reason for this
story? The core purpose?
As a user,
I want the site
to use minified js.
13. chris.urban@acquia.com
@_urban_
Define the goal of the story
→ The WHAT of the story
should define the goal,
not the solution.
→ Clearly understood
definition of done.
As a fan of
customer.com,
I want the site
to use minified js
to load faster.
14. chris.urban@acquia.com
@_urban_
Define the goal of the story
→ The WHAT of the story
should define the goal,
not the solution.
→ Clearly understood
definition of done.
As a fan of
customer.com,
I want the site
the home page
to use minified js
to load in under 5
seconds.
15. chris.urban@acquia.com
@_urban_
Writing clear user stories
→ Avoid the use of
‘and,’ ‘or,’ ‘but’
→ Avoid the use of
limiters: ‘unless,’
‘until,’ ‘without,’ and
‘except’
As a fan of
customer.com,
I want the home page
to load in under 5
seconds unless on
a mobile device.
16. chris.urban@acquia.com
@_urban_
Explain in simplest terms
→ Learn and understand
the core business
drivers:
§ Revenue
§ Quality
§ Customer Experience
§ Other Business Goals
As a fan of
customer.com,
I want the home page
to load in under 5
seconds so that I’m
not easily distracted
and leave the site.
17. chris.urban@acquia.com
@_urban_
Acceptance Criteria
→ Easiest format to remember:
→ Given that [someone wants to do
something]
→ When s/he [performs action]
→ Then [something happens that can be
verified]
18. chris.urban@acquia.com
@_urban_
So many acronyms
SMART – Acronym #1
→ Specific?
→ Measureable?
→ Achieveable?
→ Relevant?
→ Time-boxed?
As a user, I want the
site to look like the
attached .psd file.
19. chris.urban@acquia.com
@_urban_
So many acronyms
INVEST – Acronym #2
→ Independent
→ Negotiable
→ Valueable
→ Estimable
→ Sizeable
→ Testable
As a user, I want the
site to look like the
attached .psd file.
20.
21. chris.urban@acquia.com
@_urban_
Agile Ceremonies to add
→ Assume using:
§ Grooming, daily scrum, sprint end
demo and retro
→ Add: Sprint Planning:
§ Reiterate what’s to be committed in
next sprint
§ Associate to team, or even developer
23. chris.urban@acquia.com
@_urban_
Agile Ceremonies to add
→ Add: Backlog “Pruning”
§ Establish goal to either close or assign for
immediate review to keep it fresh
→ JQL:
§ project = {project} AND
status != Closed AND
Sprint is EMPTY AND
type = Story AND updated < -14w
25. chris.urban@acquia.com
@_urban_
Labels for Sprint End Demo
→ Have Product Owners label their tickets with
“demo”
→ Confluence page with Insert JIRA Issue/Filter
§ project = {project} AND
type != Sub-task AND
sprint = {Sprint#} AND
labels = demo
ORDER BY key ASC, priority DESC
29. chris.urban@acquia.com
@_urban_
Sprint Filters
→ Create a filter when you Create a Sprint
→ Update to share with all on Project in JIRA
→ Prevent confusion:
§ Use Sprint ID “Sprint 26 (1075)”
§ Use Project “XYZ Sprint 26”
30.
31. chris.urban@acquia.com
@_urban_
JIRA Components
→ Associate with content types “Content: Article”
→ Organizes tickets to optimize traceability
→ Subset QA Testing
→ Utilize general use cases “Content Editing,” “Image
Editing”
→ Add others based on Epics “Analytics,” “Advertising,”
“Metadata,” “Global Menu,” “Footer”
35. chris.urban@acquia.com
@_urban_
Sub-Tasks
→ Useful to help keep track of process or
workflow-related issues
§ Tracking external review teams
§ Tracking priorities among tickets
§ Announce need for a check-in meeting
§ Reminder to create QA test script
37. chris.urban@acquia.com
@_urban_
Grooming Agenda
→ Multiple product owners x multiple tickets
= chaos
→ Timeboxing shifts priority back to product
owner
→ Allocate 30 min per PO per week to start
→ Plan for 5 to 6 minutes per tickets to start
38. chris.urban@acquia.com
@_urban_
Grooming Worksheets
→ Worksheet Set-up: grid with PO, tickets,
availability
→ Removes blocker of interpretation
→ Timebox tickets and product owner(s)
→ Assumes fixed grooming ceremonies
→ Plan around prioritized tickets and availabilities
→ Establish hard deadline
40. chris.urban@acquia.com
@_urban_
Pointing Tickets
→ Keep it fair
→ Keep voting time to a minimum
→ Use resource like pointingpoker.com
§ Have TA enter in tickets title and timebox
voting
§ EM monitors grooming backchannel
§ Pre-determine voting {1,2,3,5,8,13,?}
43. chris.urban@acquia.com
@_urban_
Custom fields: Branch
→ Multiple environments
→ Dev branches spanning more than
two sprints
→ Minimize QA and UAT confusion
44. chris.urban@acquia.com
@_urban_
Custom Fields: Time Spent
→ Time Spent fields
→ Add as required field in Screen on
Transitions
→ Add as similar field for QA
§ Identify tickets that were difficult and/
or time-consuming
45.
46. chris.urban@acquia.com
@_urban_
JIRA Tips & Tricks
→ Backlog view: Color code by JQL
or Custom Field (Teams)
→ Create “sprints” for backlog organization
§ Manage sprint allocations
→ Multiple boards for different audiences