Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Agile drupal tips

470 views

Published on

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.

Published in: Leadership & Management
  • Be the first to comment

Agile drupal tips

  1. 1. Agile Drupal Tips 12 Ways to Help 
 Keep Your Project Humming Chris Urban, Engagement Manager chris.urban@acquia.com @_urban_ d.o:urbanlegend
  2. 2. chris.urban@acquia.com   @_urban_   Overview → Assumptions → Review some common issues → Outline how to leverage tools → Profit!
  3. 3. chris.urban@acquia.com   @_urban_   The Problems → Bursts of unrefined requests → Unclear ownership → Multiple stakeholders with colliding inputs → Foggy longer-term goals
  4. 4. FOUNDATION
  5. 5. chris.urban@acquia.com   @_urban_   A Solid Foundation → Documentation § Key knowledge shared → Communication § Processes shared § Expectations managed
  6. 6. 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
  7. 7. chris.urban@acquia.com   @_urban_   User Stories: Example → As a user I want the site to use minified .js
  8. 8. 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.
  9. 9. 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.
  10. 10. 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.
  11. 11. 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.
  12. 12. 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.
  13. 13. 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]
  14. 14. 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.
  15. 15. 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.
  16. 16. 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
  17. 17. PRUNING
  18. 18. 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
  19. 19. LABELS
  20. 20. 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
  21. 21. chris.urban@acquia.com   @_urban_   Bonus: using Columns in Jira
  22. 22. FILTERS
  23. 23. 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”
  24. 24. 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”
  25. 25. TABLES
  26. 26. chris.urban@acquia.com   @_urban_   Bonus: filtered WIP tables → Confluence page with JIRA tables → project = {project} AND Sprint in openSprints() and type!= Sub-task and component = “Content: Article” → project = {project} and type!= Sub- task and component = "Analytics" AND updated > -8w
  27. 27. SUB-TASKS
  28. 28. 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
  29. 29. GROOMING
  30. 30. 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
  31. 31. 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
  32. 32. POINTING
  33. 33. 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,?}
  34. 34. CUSTOM FIELDS
  35. 35. chris.urban@acquia.com   @_urban_   Custom fields: Teams → Developer → Team → Useful for tracking team performance → Identify primary contributor to ticket
  36. 36. chris.urban@acquia.com   @_urban_   Custom fields: Branch → Multiple environments → Dev branches spanning more than two sprints → Minimize QA and UAT confusion
  37. 37. 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
  38. 38. 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
  39. 39. ONE MORE THING
  40. 40. chris.urban@acquia.com   @_urban_   Use JIRA REST API
  41. 41. chris.urban@acquia.com   @_urban_   Use JIRA REST API → Google Sheets → Script Editor → Pass Queries directly → Update tickets ?
  42. 42. chris.urban@acquia.com   @_urban_   Use JIRA REST API
  43. 43. What You Learned → Document Everything! → User Stories: 
 SMART INVESTING → Sprint Planning → Backlog Pruning → Labels for Demos → Filters & Sprint naming → Use Components → Sub-Tasks → Worksheets for grooming → Pointing practices → Custom fields → Other tips & tricks
  44. 44. Questions ? Chris Urban, Engagement Manager chris.urban@acquia.com @_urban_ d.o: urbanlegend

×