Concurrent Product Release Planning with JIRA

Post on 22-Oct-2014

3.885 views 1 download

Tags:

description

Coordinating product releases that include hardware, software and firmware is no doubt a team effort. Learn how to use JIRA to track concurrent product releases by coordinating multiple hardware versions, OS releases in different languages, shared software components and various software products all at the same time with engineering work spread across the globe.

Transcript of Concurrent Product Release Planning with JIRA

Concurrent Product Release Planning!

Ian Wells!

with JIRA!

Telogis Inc! !

The captain of Allure of the Seas had accurate information on the bridge as he steamed full speed towards the

Storebaelt Bridge in Denmark!

How JIRA provided the Dashboards for our

Concurrent Software and Hardware Releases!

The next 35 minutes!•  Our previous challenge!•  Why I chose JIRA for the challenge!•  How we conformed JIRA to us !•  How we learned to trust JIRA!•  How we built dashboards for each project!•  Our next challenge!

The Challenge here: Concurrent releases of High Accuracy GPS !

•  14+ core hardware products !

•  10+ core software products!•  10 languages!•  100+ JIRA “projects”!•  200+ JIRA logins!

How we were organized!

Project Management!Development & Test!Product Management!

Marketing & Sales!

!

Why choose JIRA? !

1. Permanence !

2. Visibility !

3. Flexibility !

How we conformed JIRA to us!

• Different workflows for hardware/software!• Define Carefully What a Product meant to us!• Define Carefully What a Project meant to us!• JIRA JQL Piped Queries Families!• Continual Gardening !!

Workflows!•  Software – bugs not done till tested done !•  Agile software – no bugs, only rework!•  Hardware workflows!

Hardware workflows are different than software workflows!•  Board spins!

•  Test cycles!

•  More design and simulation!

Hardware workflows have board spins!

•  Design!

•  2 months later: Prototype board!

•  Test!

•  2 months later:Pre-release board!

•  Test!

•  2 months later: Release board!

What a Product means to us!•  Product has releases

with ascending unique version numbers!

•  A product lives long and has a history of releases!

•  A product is managed by a Product Owner!

What a Project means to us!•  A project manager runs a project!•  A project happens once!•  A single project will contain simultaneous specific product

releases. !•  A single JIRA query can be constructed for all products!•  A single JIRA Dashboard can summarize project status!

How to change JIRA “project” to our “product”!

•  Locate jira-languages-5.0.5-en_UK_1337505912000.jar in C:\Program Files (x86)\Atlassian\Application Data\JIRA\plugins\.osgi-plugins\transformed-plugins!

•  Rename to .zip!

•  Locate JiraWebActionSupport_en_UK.properties!

•  Run python script to convert!

•  Save JiraWebActionSupport_en_UK.properties in jira-languages-5.0.5-en_UK_1337505912000.zip!

•  Rename back to jira-languages-5.0.5-en_UK_1337505912000.jar!

•  Replace it!

•  Use the UK language!

!

!

Python script!# Replace all occurrences of Project/Component/Fix Version with Product/Area/ Fix in Release after!

# the = sign on a given input file (Jira language files (default and en_US)!

input_file = open("JiraWebActionSupport_en_UK.properties")!

output_file = open("JiraWebActionSupport_en_UK.properties.new","w")!

for line in input_file:!

line_split = line.split("=")!

if len(line_split) !=2:!

#no = sign so just write out this line!

output_file.writelines(line)!

!

else:!

#replace text after the = sign (line_split[1]) then write out line!

rep = line_split[1].replace('Project', 'Product')!

rep = rep.replace('project', 'product')!

rep = rep.replace('Component', 'Area')!

rep = rep.replace('component', 'area')!

rep = rep.replace('FixVersion', 'Fix in Release')!

rep = rep.replace('Fix Version', 'Fix in Release')!

output_file.writelines(line_split[0] + "=" + rep)!

#summit12

In our world, a JIRA project was a PRODUCT, a

JIRA dashboard was a PROJECT

Mapping Projects to Products with Piped JQL queries!

•  Maps our products to our projects!•  Provides all project information in one place!

Piped JQL queries!

The Mother Query:

All issues for this project

All issues | critical or high priority All issues | open

All issues | open | bugs

All issues | open | tasks

All issues | closed

All issues | closed | bugs

All issues | closed | tasks

Built up a family of Piped JQL queries all based on the Mother!

For each Project:Take care for your Mother!

Mother JQL Query“Major Project all issues” Filter!

(project = Progression and ((fixVersion > 10022 and fixVersion <= 10023 ) or fixVersion is empty)) or (project = GNAV and ((fixVersion > 10003 and fixVersion <= 10006) or fixVersion is empty)) or ((project = HWI and (fixVersion > 10076 and fixVersion <= 10080) or fixVersion is empty)) or (project = "INT" and ((fixVersion > 10130 and fixVersion <= 10135) or fixVersion is empty))!

Major Project – all bugs!filter = "Major Project - all issues" and issuetype = Bug!

Major Project – all bugs open!filter = "Major project - all bugs" and status != Closed!

Major Project – all bugs closed!filter = "Major project - all bugs" and status = Closed!

Major Project - all bugs open created more than 5 days ago!

filter = "Major project - all bugs open" and createdDate > "-5d"!

The Project Dashboard is built!Based on JQL families of queries!Based on models of product and projects that match our organization!

#summit12

Project Dashboard is constructed with JQL piped

filters

Gardening ! !!•  Always ask what is a

product!•  Marketing/Development

discussions!•  Consolidate versions!•  Keep backlogs small!

How we learned to trust JIRA!• Started with one product and expanded!• Never delete !•  Involved product management and

development!• Trust everyone; but everyone can check!• Evolved JIRA to our enterprise: Monolithic or

Federation?!

Next Challenges!

Additional Requirements!•  Traceability!

•  How to transition a live environment to JIRA!

•  Shared components & dependencies!

•  Maintain top speed!

Full speed ahead !

Thank you!

How Allure did it!

Thank you!