1. The Issue Is the Heart of Jira
The previous article introduced Jira’s core concepts, among which the Issue is Jira’s most basic unit. If a Project is the container, the Issue is the blood inside it. A team’s daily work is essentially creating, transitioning, tracking and closing Issues.
2. Best Practices for Creating an Issue
Creating an Issue looks simple, but writing a “good” one that keeps later development and collaboration smooth comes with some conventions worth following:
Title (Summary)
A good title should say what is being done in one sentence, following a “verb + object” format.
✅ 用户可以修改个人头像
✅ 修复订单金额计算精度问题
✅ 优化首页加载速度至 2 秒以内
❌ 需求
❌ bug 修复
❌ 首页问题
Description
The description should answer three questions:
- Why do it: the background and the business value
- What to do: the functional scope, including acceptance criteria
- How to do it: the technical approach (optional; needed for complex work)
## 背景
用户反馈无法在移动端查看订单物流信息。
## 验收标准
- 订单详情页新增"查看物流"按钮
- 点击后跳转到物流轨迹页面
- 物流信息实时从第三方 API 获取
## 技术方案
- 对接快递鸟物流查询 API
- 新增 OrderTracking 组件
Relationships
Jira supports creating links between Issues:
| Link type | Meaning |
|---|---|
| blocks / is blocked by | Blocking relationship; B cannot start until A is finished |
| relates to | Related relationship |
| clones / is cloned by | Cloning relationship |
| duplicates / is duplicated by | Duplicate relationship |
| causes / is caused by | Causal relationship |
Using Issue links correctly expresses working dependencies clearly and helps the team plan its schedule.
3. Workflow
A workflow defines the complete life cycle of an Issue from creation to closure. The design of each project’s core workflow has a direct effect on the team’s collaboration efficiency.
Status
The most common status flow:
To Do → In Progress → Done
A status model closer to real development:
To Do → To Be Scheduled → In Development → Code Review → In Testing → Ready for Release → Done
↘ 阻塞(从任意状态进入,解决后回到原状态)
Status Categories
Jira divides statuses into three categories:
| Category | Colour | Meaning |
|---|---|---|
| To Do | Grey | Work that has not started |
| In Progress | Blue | Work currently being handled |
| Done | Green | Work that is finished |
In a workflow, every status must be assigned to one of these three categories; Jira’s boards and reports depend on that classification.
Transition
A change between statuses is called a transition. A transition can be configured with:
- Conditions: who may perform this transition
- Validators: conditions that must be met before execution (such as “the assignee cannot be empty”)
- Post functions: operations triggered automatically after execution (such as “assign the assignee”, “update a field”)
- Transition button name: the button text the user sees
A Real Workflow Example
To Do ──claim task──▶ In Progress ──submit for review──▶ Code Review ──review passed──▶ Testing ──tests passed──▶ Done
│
▼ Review failed
In Progress(打回修改)
Let’s explain the transition rules in the diagram:
- After the task is picked up from To Do, the status becomes In Progress (development starts)
- Once development is finished and the change is submitted for review, it enters Code Review
- If the review passes it enters Testing; if the review fails it is sent back to In Progress for revision
- Once testing passes, the status becomes Done
- Once testing passes, the status becomes Done
4. Workflow Schemes
Jira supports configuring different workflows for different Issue types:
- A Bug’s workflow may be simpler: To Do → Confirmed → Fixing → Verified → Closed
- A Story’s workflow may need to go through product review and acceptance
- An Epic may not need a workflow at all (it is just a container)
A workflow scheme is simply several workflows bundled together and assigned to a project. It lets different Issue types follow different processes while still being managed within one project.
5. Automation Rules
Jira has a powerful built-in automation engine that can cut a great deal of manual work. Here are a few automation rules that are practically useful:
Rule 1: A Bug Automatically Inherits the Epic’s Assignee
When a Bug is created and linked to an Epic, automatically set the Epic’s assignee as the Bug’s assignee:
触发器:Issue 创建时
条件:Issue 类型 = Bug 且 Epic Link 不为空
Action: Edit Issue field → Assignee = the parent Epic's assignee
Configuration steps:
- Go to Project Settings → Automations
- Create a new rule and choose “Issue created” as the trigger
- Add a condition: Issue Type = Bug
- Add another condition: Epic Link IS NOT EMPTY
- Add an action: Edit Issue → Assignee → “Linked epic’s assignee”
That way, once someone fills in the linked Epic on a Bug, the assignee is filled in automatically, with no manual assignment.
Rule 2: Send a Feishu Notification on a Status Change
When an Issue’s status changes, automatically call a Feishu webhook to send a notification:
触发器:Issue 状态变更时
条件:无
Action: Send a web request → POST to the Feishu webhook URL
Feishu webhook configuration steps:
- In the Feishu group → Group Settings → Group Bots → Add Bot → Custom Bot
- Get the webhook URL
- In Jira Automation, add a Web Request action:
- URL: the Feishu webhook URL
- Method: POST
- Headers: Content-Type: application/json
- Body:
{ "msg_type": "text", "content": { "text": "🔔 status changed: → \nAssignee: \nLink: " } }
Rule 3: Notify the Assignee When an Issue Is Commented On
When someone adds a comment to an Issue, automatically forward the comment content to the assignee:
触发器:Issue 被评论时
条件:无
Action: Send a web request → POST to the Feishu webhook URL
Example body:
{
"msg_type": "text",
"content": {
"text": "💬 received a new comment\nCommenter: \nContent: \nLink: "
}
}
Automation rules are configured through the “trigger → condition → action” pattern and need no code. Jira Automation offers a rich set of built-in triggers and actions that cover most everyday needs.
6. Issue Templates
For Issue types you create frequently (a Bug report, for example), you can preset a template to make sure the information is complete:
## 问题描述
(请描述你遇到的问题)
## 复现步骤
1.
2.
3.
## 期望结果
(请描述你期望的正确行为)
## 环境信息
- 浏览器:
- 操作系统:
- 应用版本:
## 截图
(如有,请附上截图)
Implementing Templates with Jira Automation
Jira has no built-in Issue template feature, but you can achieve a similar effect with Automation — every time an Issue of a particular type is created, the Description field is filled in automatically:
触发器:Issue 创建时
条件:Issue 类型 = Bug
Action: Edit Issue field → Description =
"## 问题描述\n(请描述你遇到的问题)\n\n## 复现步骤\n1. \n2. \n3. \n\n## 期望结果\n(请描述你期望的正确行为)\n\n## 环境信息\n- 浏览器:\n- 操作系统:\n- 应用版本:\n\n## 截图\n(如有,请附上截图)"
Configuration steps:
- Go to Project Settings → Automations
- Create a new rule and choose “Issue created” as the trigger
- Add a condition: Issue Type = Bug (if it is a Story, use Story instead)
- Add an action: Edit Issue → Description → paste the template content into the template editor
You can create a matching automation rule for every Issue type; the preset template is filled in automatically on creation, which keeps the information consistent without any member having to copy and paste by hand.
Note: a template set up in Automation only fills the Description field. If you need a more complex template (with required-field validation, attachment-upload guidance and so on), consider using Jira Composite Fields or a third-party plugin such as Jira Suite Utilities.
7. Summary
The Issue is Jira’s core unit of operation, and the workflow defines its life cycle. A good workflow design should:
- Reflect the team’s real development process, rather than copying a theoretical model wholesale
- Not have too many statuses: 5-8 statuses is usually enough; too many only confuses the team
- Work with automation: fewer manual operations, and status transitions that feel more natural
Next time we will talk about the Scrum board — how Jira supports agile development.
A small step forward every day is a new height!