Agile Drupal Tips 12 Ways to Help Keep Your Project Humming Chris - - PowerPoint PPT Presentation

agile drupal tips
SMART_READER_LITE
LIVE PREVIEW

Agile Drupal Tips 12 Ways to Help Keep Your Project Humming Chris - - PowerPoint PPT Presentation

Agile Drupal Tips 12 Ways to Help Keep Your Project Humming Chris Urban Manager, Professional Services chris.urban@acquia.com @_urban_ d.o:urbanlegend Overview Assumptions Review some common issues Outline how to leverage tools


slide-1
SLIDE 1

Agile Drupal Tips

12 Ways to Help 
 Keep Your Project Humming

Chris Urban Manager, Professional Services chris.urban@acquia.com @_urban_ d.o:urbanlegend

slide-2
SLIDE 2
slide-3
SLIDE 3

chris.urban@acquia.com/ @_urban_/

Overview

→ Assumptions → Review some common issues → Outline how to leverage tools → Profit!

slide-4
SLIDE 4
slide-5
SLIDE 5
slide-6
SLIDE 6

chris.urban@acquia.com/ @_urban_/

The Problems

→ Bursts of unrefined requests → Unclear ownership → Multiple stakeholders 
 with colliding inputs → Foggy longer-term goals

slide-7
SLIDE 7

FOUNDATION

slide-8
SLIDE 8

chris.urban@acquia.com/ @_urban_/

A Solid Foundation

→ Documentation ! Key knowledge shared → Communication ! Processes shared ! Expectations managed

slide-9
SLIDE 9
slide-10
SLIDE 10

chris.urban@acquia.com/ @_urban_/

Documentation

→ Basic process for workflow ! Who should own the tickets in each state? → RACI or RASCI ! Responsible-Accountable-(Supporting)


  • Consulted-Informed

! Who is responsible for what function → Objective rules and playbooks → Definitions, Hotfix criteria and course of action ! Define plans to objectively handle events

slide-11
SLIDE 11
slide-12
SLIDE 12

chris.urban@acquia.com/ @_urban_/

Documentation

→ Basic process for workflow ! Who should own the tickets in each state? → RACI or RASCI – who is responsible for what and when ! Responsible (R) - "The Do-er of the task" ! Accountable (A) - "The Buck Stops here - makes sure the task is done" ! Supporting (S) - "Helps get the task done or contributes materially" ! Consulted (C) - "In the Loop" ! Informed (I) - "Keep in the Picture”

slide-13
SLIDE 13

chris.urban@acquia.com/ @_urban_/

Documentation

→ 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

slide-14
SLIDE 14
slide-15
SLIDE 15

Learn some JQL


→ Extremely powerful → Background in SQL or query language construction helpful → Find exactly what you need → Save it as a Filter and Share with others

slide-16
SLIDE 16
slide-17
SLIDE 17
slide-18
SLIDE 18

chris.urban@acquia.com/ @_urban_/

Use Columns in Jira

slide-19
SLIDE 19

FILTERS

slide-20
SLIDE 20

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”

slide-21
SLIDE 21

chris.urban@acquia.com/ @_urban_/

slide-22
SLIDE 22

LABELS

slide-23
SLIDE 23

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

slide-24
SLIDE 24
slide-25
SLIDE 25

JIRA Components

→ Associate with Drupal content types “Content: Article” → Organizes tickets to optimize traceability → Organizes Subset QA Testing → Utilize general use cases ! “Content Editing,” “Image Editing” → Add others based on Epics ! “Analytics,” “Advertising,” “Metadata,” 
 “Global Menu,” “Footer”

slide-26
SLIDE 26

JIRA Components

→ Admin Settings → Advertising → Commerce → Content Scheduling → Content: Article → Content: Calendar → Content: Event → Content: Forms → Content: Home Page → Content: Media → Content: News Release → Content: Photo Gallery → Content: Video → Documentation → Internationalization (i18n) → Localization (L10n) → Metadata → Multisite → Search → Security → SEO → Setup: Server → Setup: Site → Site Performance → Testing → URL Management → User Forms → User Groups → User Profile → Workflow & Roles → Editing Content → Editing Images/Media → Error Pages → Global Footer → Global Navigation → Integration: Analytics → Integration: Asset Storage → Integration: Authentication → Integration: CDN → Integration: Content Hub → Integration: Generic → Integration: Salesforce → Integration: Social → Integration: YouTube
slide-27
SLIDE 27

TABLES

slide-28
SLIDE 28

chris.urban@acquia.com/ @_urban_/

Filtered WIP tables

→ Confluence page with JIRA tables → project = {project} AND Sprint in

  • penSprints() and type!= Sub-task

and component = “Content: Article” → project = {project} and type!= Sub- task and component = "Analytics" AND updated > -8w

slide-29
SLIDE 29

SUB-TASKS

slide-30
SLIDE 30

chris.urban@acquia.com/ @_urban_/

Sub-Tasks

→ Keep track of process or workflow-related issues ! External review teams ! Flag priorities among tickets ! Announce need for a check-in mid-sprint ! Reminder to create QA test script

slide-31
SLIDE 31
slide-32
SLIDE 32

chris.urban@acquia.com/ @_urban_/

Agile Ceremonies to add

→ You are already using: ! Grooming, daily scrum, sprint end review and retro → You Should Add: Sprint Planning: ! Reiterate what’s to be committed in next sprint ! Associate to team, or even developer

slide-33
SLIDE 33
slide-34
SLIDE 34

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

slide-35
SLIDE 35
slide-36
SLIDE 36

chris.urban@acquia.com/ @_urban_/

Grooming Agenda

→ Multiple product owners x multiple tickets = chaos → Timeboxing shifts priority back to product

  • wner

→ Allocate 30 min per PO per week to start → Plan for 5 to 6 minutes per tickets to start

slide-37
SLIDE 37

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

slide-38
SLIDE 38

chris.urban@acquia.com/ @_urban_/

Grooming Worksheet

Product(Owner( Tickets( Availability( Muddy/Waters/ SP1:34/ SP1:35/ SP1:40/ Any/ EAa/James/ SP1:37/ SP1:38/ SP1:39/ SP1:44/ Tues/AM/session/only/ Robert/Johnson/ SP1:42/ SP1:43/ Any/

slide-39
SLIDE 39

POINTING

slide-40
SLIDE 40

chris.urban@acquia.com/ @_urban_/

Pointing Tickets

→ Keep it fair → Keep voting time to a minimum → Use resource like pointingpoker.com ! Have Tech Lead enter in tickets title and timebox voting ! PM monitors grooming backchannel ! Pre-determine voting {1,2,3,5,8,13,?}

slide-41
SLIDE 41
slide-42
SLIDE 42

CUSTOM FIELDS

slide-43
SLIDE 43

chris.urban@acquia.com/ @_urban_/

slide-44
SLIDE 44
slide-45
SLIDE 45

chris.urban@acquia.com/ @_urban_/

JIRA Tips & Tricks

→ Backlog view: Color code by JQL


  • r Custom Field (Teams)

→ Create “sprints” for backlog organization ! Manage sprint allocations → Multiple boards for different audiences

slide-46
SLIDE 46

chris.urban@acquia.com/ @_urban_/

JIRA Tips & Tricks

→ Swimlanes → Normally by User or Epic → Use JQL queries! ! Labels = “stretch”

slide-47
SLIDE 47

chris.urban@acquia.com/ @_urban_/

slide-48
SLIDE 48

chris.urban@acquia.com/ @_urban_/

slide-49
SLIDE 49

REST API

hAp://thisaleesblog.blogspot.com/2014/07/beauNful:beach:desktop.html/
slide-50
SLIDE 50

chris.urban@acquia.com/ @_urban_/

Use JIRA REST API

→ Use Search endpoint: ! {URL}/rest/api/2/search?jql={QUERY}

slide-51
SLIDE 51

chris.urban@acquia.com/ @_urban_/

Use JIRA REST API

→ Google Sheets → Script Editor → Pass Queries directly → Update tickets ?

slide-52
SLIDE 52

JIRA

slide-53
SLIDE 53

chris.urban@acquia.com/ @_urban_/

Integrate API into Sheets

slide-54
SLIDE 54

chris.urban@acquia.com/ @_urban_/

Integrate API into Sheets

→ Try example script: → Github: chrisurban/jira-sprint-reporting

slide-55
SLIDE 55

What You Learned

→ Document Everything! → Sprint Planning → Backlog Pruning → Labels for Demos → Filters & Sprint naming → JIRA JQL Basics → Use Components → Sub-Tasks → Worksheets for grooming → Pointing practices → Custom fields → Leverage JIRA REST API → Other tips & tricks

slide-56
SLIDE 56

Questions ?

Chris Urban, Manager, Professional Services chris.urban@acquia.com @_urban_ d.o: urbanlegend