How to use Jira as VSM tool by integrating with DevOps tool chains

Value Stream Mapping is a flowchart method used to illustrate, analyze, and improve the steps required to deliver a product or service to customers—especially in complex environments. The stream reflects both tasks and information flows, mapped as either adding or not adding value from a customer’s standpoint. Value stream mapping has been identified as a critical skill for organizations adopting a DevOps approach.


Why VSM

  • Helps identify bottlenecks and pain points
  • Manages errors and defects, such as bugs
  • Creates greater visibility and traceability throughout the entire cycle
  • Eliminates redundant and wasteful processes
  • Fosters cross-functional collaboration
  • Reveals opportunities for automation
  • Fuels faster, integrated feedback
  • Provides context and process clarity with data and visuals
  • Emphasizes results and KPIs

Use Case

We have a lot of tool chains  and its hard for teams to switch on different tools and to control the tracking mechanism. Here i am focusing on following tools



The overall aim is we are trying  have one central tool for tracking mechanism of all the tool chains in DevOps. 


Benefits:
  • Jira becomes the VSM derive tool for controlling and reporting. Now in Jira you can track each and every step. You can produces the four famous DevOps metrics recommended by DORA
    • Deployment Frequency
    • Lead Time and Cycle Time for Changes
    • Time to Restore Service
    • Change Failure Rate
  • Silos will be removed 
Example Lead and Cycle time









Here is the implementation how it will work.
  • All atlassian tools are integrated by automation and scripting using script runner (Jira, Bitbucket, Confluence)
  • All other tool chains HP Microfucs & Jenkins are integrated with Atlassian tools.





Activity Description
TO DO New issue is created
DEVELOPMENT When developer start working on the issue and provide the fix version, developer changes the status to Development, otherwise system will not allow to work.
AWAITING QA DEPLOYMEN
  • Developer commits the code , by providing the issue key 
  • Jira status will be automatically changed from development to Awaiting QA deployment 
  •  Jenkins build will be trigged and Jira will send two parameters to Jenkins 
    • Fix Version
    • Jira Issue key 
  • Once build is triggered , Jenkins will update Jira issue with following information (custom fields in Jira ) 
    • Jenkins build id 
    • Jenkins Build URL 
    • Jenkins build status: Ready for Deployment 
  • If Jenkins build is failed, Jira status will be change do Development and Jenkins build status will be : Failed
UNDER TESTING
  • From Jira QA will move the status from Awaiting QA Deployment 
  • Jira will trigger Jenkins to start deployment. 
  • Once deployment is completed, Jenkins start executing functional tests.
  • Jenkins will keep updating Jira on each step for example, Executing functional tests 
  • Once functional tests executed , Jira Jenkins build status field will be updated with : Waiting for Certificate 
  • If QA certified, it will be moved to next stage: Waiting for business approval. If QA failed the release or Jenkins failed at any stage, Jira status will be changed to Development and if there is any Jenkins build it will be aborted automatically.
AWAITING BUSINESS APPROVAL
  • Once issue is moved to status Awaiting business approval, business team will receive notification for their decision. 
  • If business team approved, jira status will be moved to next stage 
  • If business team rejects the production deployment, issue will be closed and Jenkins build will be aborted.
AWAITING STAGING DEPLOYMENT
  • Jenkins will be triggered and deployment will be started. 
  • If tests failed 
    • Jira status will be updated to: Development 
    • Jenkins build status field will be updated: Build Failed 
    • Roll back will be performed to previous version 
  • If deployment tests passed 
    • Jira status will be moved to Awaiting Staging Verification 
    • Jenkins build field status will be ‘Awaiting Staging Verification’
AWAITING STAGING VERIFICATION
  • Sanity tests will be executed here If tests failed 
    • Jira status will be updated to: Development 
    • Jenkins build status field will be updated: Build Failed 
    • Roll back will be performed to previous version 
  • If deployment tests passed, User on Jira have two options 
    • Deploy on Production: 
      • Status will be moved to Awaiting Production
      • Deployment status on Jira and deployment will be started 
    • Done: Jira status will be moved to Done with resolution passed and Jenkins build field status will be ‘deployment completed on staging’
AWAITING PRODUCTION DEPLOYMENT
  • Jenkins will be triggered and deployment will be started. 
  • If tests failed 
    • Jira status will be updated to: Done with resolution 'Failed'
    • Jenkins build status field will be updated: Build Failed 
    • Roll back will be performed to previous version 
  • If deployment tests passed 
    • Jira status will be moved to Awaiting Production Verification 
    • Jenkins build field status will be ‘Awaiting Production Verification’
AWAITING PRODUCTION VERIFICATION 
  • Sanity tests will be executed here If tests failed 
    • Jira status will be updated to: Done with resolution "failed"
    • Jenkins build status field will be updated: Build Failed 
    • Roll back will be performed to previous version 
  • If deployment tests passed,  Jira status will be moved to Done with resolution passed and Jenkins build field status will be ‘deployment completed on Production’


About Author
Muhammad Ramzan  is a certified Atlassian Consultant having 10+ years of professional experience in the area of DevOps, Software Testing(Manual/Automation) and Atlassian Tools Administration

0 Comments