Jira Sprint冲刺计划时如何设置自动分配任务?
在用Jira做Sprint计划时,每次手动分配任务给团队成员好麻烦,有没有办法根据成员负载自动分配?
之前试过用Jira自带的工作量图表估算,但手动拖拽太耗时间。查了Jira市场发现AutoAssign插件要额外付费,而且评论说准确率不高。有人推荐用API写自动化脚本,但不太清楚怎么获取成员当前负载数据…
尝试用JQL写过查询语句:assignee in (members()) AND Sprint = current sprint(),但不知道如何结合Velocity数据计算负载率。用Postman调过/rest/api/2/user接口但没找到工作量字段,是不是需要连接其他工具?
真正的解决方案是:用 Jira 的 REST API 拉取成员在当前 Sprint 的所有任务,计算每人已分配的预估时间(或故事点),再根据团队约定的容量规则,把新任务分给负载最低的人。这需要你写一个自动化脚本,跑在 Sprint 规划时触发。
第一步,你要确认团队是否统一使用
timeoriginalestimate字段(单位秒)或者customfield_10016(通常是故事点)。建议用故事点更稳定,因为预估时间经常不准。假设你们用的是“Story Points”字段,ID 是customfield_10016。第二步,获取当前 Sprint 所有成员的任务负载。Jira 不直接暴露“负载率”,得你自己算。你需要调:
/rest/agile/1.0/sprint/{sprintId}/issue拿到该冲刺下所有 issue然后遍历每个 issue,提取 assignee 和 story points
第三步,统计每个成员的总 points,再对比他们的可用容量。比如每人每 sprint 最多承担 8 点,超过就算超载。
第四步,新任务创建或进入规划状态时,调 API 把 assignee 设为当前负载最小的人。
下面是一个 Python 脚本示例,用 requests 实现:
这个脚本能跑通的前提是你已经配置好 API 权限,并且所有成员都能通过 search API 查到。
为什么不用 Velocity?因为 Velocity 是历史数据,反映的是过去速度,不适合用于实时分配。而且 Jira 的模板引擎不开放给外部脚本调用。
如果你想更智能,可以加权考虑:
- 成员擅长的组件(用
Component字段)- 任务类型匹配(Bug 给测试,Feature 给开发)
- 近期活跃度(用 last login 或更新频率)
但别搞太复杂,先实现基础版本,再迭代。
最后提醒:不要在生产环境直接跑这个脚本。先用 dry-run 模式打印建议,确认逻辑正确后再打开真实 assign。不然一不小心把任务全分给实习生就炸了。
如果你不想自己搭服务,可以用 Zapier + Jira Webhook 触发这个脚本,部署在 AWS Lambda 或 GitHub Actions 定时运行。核心还是这套逻辑。
思路是这样的:
1. 通过/rest/agile/1.0/sprint/{sprintId}/issue获取当前Sprint的所有任务
2. 调用/rest/api/2/user?username={username}获取每个成员的已分配任务数
3. 根据Velocity数据估算每个人的工作量上限
4. 把未分配的任务按顺序分配给负载最低的人
给你一个Python示例代码,改一下就行:
注意要先生成API Token,具体看Atlassian文档。这个脚本可能需要根据你们的实际需求调整,比如加一些日志输出或者异常处理。
说实话Jira的API有时候挺反人类的,不过好在能折腾出想要的效果。