Concurrent Product Release Planning with JIRA


Published on

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.

Published in: Technology, Business
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Concurrent Product Release Planning with JIRA

  1. 1. Concurrent Product Release Planning! with JIRA! Ian Wells ! Telogis Inc !!
  2. 2. The captain of Allure of the Seas had accurate information on the bridge as he steamed full speed towards the Storebaelt Bridge in Denmark !
  3. 3. How JIRA provided the Dashboards for ourConcurrent Software and Hardware Releases !
  4. 4. 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!
  5. 5. 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!
  6. 6. How we were organized! Project Management ! Development & Test ! Product Management ! Marketing & Sales !
  7. 7. Why choose JIRA? 
  8. 8. 1. Permanence !
  9. 9. 2. Visibility
  10. 10. 3. Flexibility!
  11. 11. 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 !!
  12. 12. Workflows!•  Software – bugs not done till tested done !•  Agile software – no bugs, only rework!•  Hardware workflows!
  13. 13. Hardware workflows are different thansoftware workflows!•  Board spins!•  Test cycles!•  More design and simulation!
  14. 14. Hardware workflows have board spins!•  Design!•  2 months later: Prototype board!•  Test!•  2 months later:Pre-release board!•  Test!•  2 months later: Release board!
  15. 15. 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!
  16. 16. 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!
  17. 17. How to change JIRA project to our product !•  Locate jira-languages-5.0.5-en_UK_1337505912000.jar in C:Program Files (x86)AtlassianApplication Data JIRAplugins.osgi-pluginstransformed-plugins!•  Rename to .zip!•  Locate!•  Run python script to convert!•  Save in!•  Rename back to jira-languages-5.0.5-en_UK_1337505912000.jar!•  Replace it!•  Use the UK language!!!
  18. 18. Python script!# Replace all occurrences of Project/Component/Fix output_file.writelines(line)!Version with Product/Area/ Fix in Release after! !# the = sign on a given input file (Jira language files(default and en_US)! else:!input_file = #replace text after the = sign (line_split[1]) thenopen("")! write out line!output_file = rep = line_split[1].replace(Project, Product)!open("","w")! rep = rep.replace(project, product)!for line in input_file:! rep = rep.replace(Component, Area)! line_split = line.split("=")! rep = rep.replace(component, area)! if len(line_split) !=2:! rep = rep.replace(FixVersion, Fix in Release)! #no = sign so just write out this line! rep = rep.replace(Fix Version, Fix in Release)! output_file.writelines(line_split[0] + "=" + rep)!
  19. 19. In our world, a JIRA project was a PRODUCT, aJIRA dashboard was a PROJECT #summit12
  20. 20. Mapping Projects to Products withPiped JQL queries!•  Maps our products to our projects!•  Provides all project information in one place!
  21. 21. Piped JQL queries ! The Mother Query: All issues for this project All issues | critical or high priority All issues | open All issues | closed All issues | open | All issues | open | All issues | closed | All issues | closed | bugs tasks bugs tasks
  22. 22. Built up a family of Piped JQLqueries all based on the Mother!
  23. 23. For each Project:
Take care for your Mother!
  24. 24. Mother JQL Query
 !“Major Project all issues” Filter(project = Progression and ((fixVersion > 10022 andfixVersion <= 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))!
  25. 25. Major Project – all bugs!filter = "Major Project - all issues" and issuetype = Bug!
  26. 26. Major Project – all bugs open!filter = "Major project - all bugs" and status != Closed!
  27. 27. Major Project – all bugs closed!filter = "Major project - all bugs" and status = Closed!
  28. 28. Major Project - all bugs open created more than 5 days ago!filter = "Major project - all bugs open" and createdDate > "-5d"!
  29. 29. The Project Dashboard is built!Based on JQL families of queries!Based on models of product and projects that match ourorganization!
  30. 30. Project Dashboard is constructed with JQL piped filters #summit12
  31. 31. Gardening ! !!•  Always ask what is a product!•  Marketing/Development discussions!•  Consolidate versions!•  Keep backlogs small!
  32. 32. 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?!
  33. 33. Next Challenges !
  34. 34. Additional Requirements!•  Traceability!•  How to transition a live environment to JIRA!•  Shared components & dependencies!•  Maintain top speed!
  35. 35. Full speed ahead
  36. 36. Thank you!
  37. 37. How Allure did it!
  38. 38. Thank you!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.