How to allow developers to focus on development rather than AGILE ?
Note : This is an article about my presentation, “The Automated Workflow”, which you can as well find in DevOpsnipp.com.
During the development, developers need to manage their tasks, get requirements from their product-manager and priority from their team-leader. Most often, the tasks and documentation of projects are managed in organizations using popular tools (Jira, Monday, Rally, etc.).
In this document, we’ll focus on JIRA as the project management tool.
Let’s see how we can automate everything in the developer’s workflow that will allow them to focus on development rather than their tasks and document management.
The developers must continue to develop without interrupts while the project management and documentation will be made automatically and project development monitoring will continue to exist.
Let’s look at a basic ALM flow:
If we want to illustrate all the ALM flow stages within our Jira board, we need to add these columns (statuses) in our board:
- Backlog (can be split into multiple columns, e.g., product-backlog & R&D backlog).
- To-Do
- In-Progress
- In-Code-Review (/ In-CI-pipeline)
- Ready
- Deployed-To-Staging
- Done
Automated Jira Workflow
Each stage of the ALM process should send an update to the JIRA board with detailed code status information (e.g., development, CI , CD , Code-Review , Monitoring, etc.), depending on the events, JIRA inserts development details into each ticket (feature documentation — commits, comments of Code-Review, etc.) and changes the ticket to the corresponding status in the project.
For example: When a developer creates a branch of JIRA ticket by Smart-Commit, the ticket will be progressed to the “In-Progress” status, and the branch link will be presented in the ticket details.
Development details inside the Jira ticket
Let’s drill-down into the ALM flow :
After making the automated JIRA workflow, the flow will look like this:
Each stage in the ALM flow updates the JIRA project by events and provides the right status about your code (e.g., where is your code right now? Code-review? CI? Staging tests? OR whats is the status of the Code-review/the CI?).
In this workflow, developers only work in JIRA to display their “To-Do” list. All manual actions (e.g., moving ticket to the next status) are carried out automatically according to the events.
Events Triggers :
Events #1, #2, #3 — received by Smart-Commit.
Events #4, #5, #6 — received by API requests.
NOTE : You can receive event #2 by two options:
1. In the CI stage by Jenkins JIRA plugin.
2. By Github after Merge action or “status” event (received by CI webhook in Github).
Additionally to the JIRA ticket transitions, the Smart-Commit provides updates from SCM (Github/Bitbucket) within the relevant ticket.
# HOW-TO?
These are the steps needed for the implementation of the automated Jira workflow :
1. To get the development details within your tickets and set triggers, enable Smart-commit feature by this guide: https://confluence.atlassian.com/adminjiracloud/enable-smart-commits-776830276.html (only available on Github and Bitbucket) .
Smart-Commit usage guide: https://confluence.atlassian.com/fisheye/using-smart-commits-298976812.html
2. Edit your workflow and set a trigger for each status you desire.
3. Add in your CI/CD jobs a stage for JIRA API request (which progresses the tickets to “Deployed Staging” status (when staging deployment has finished) and to release the Jira project version (at the end of the Production deployment).
JIRA API documentation: https://developer.atlassian.com/cloud/jira/platform/rest/v3/?utm_source=%2Fcloud%2Fjira%2Fplatform%2Frest%2F&utm_medium=302
That’s all !
These three steps will provide you a fully automated JIRA workflow which saves the developers’ time and allows them to concentrate on development.