在JIRA子问题和子任务的使用中,我们常常会分不清该使用哪一种,说起来,两者从名字上看,也已经很不同了,但是还是比较容易让人迷惑。下面从几个方面的剖析一下它们的不同。

一. 概念上

显然,从概念上,子问题是属于问题的一种,也就是说,子问题拥有问题的特征,它有名称,类型,状态,采用Issue的工作流,有自己的Resolution,可以单独完成并且关闭,特别地,它可以是一个bug,也可以是一个新功能,或者改进。子任务是针对一个问题来说的,为了将一个分配给多个人或者包括很多步骤的问题进行细化跟踪,并且给每一个参与者一个总览概念,我们就会将这个问题分割为多个子任务。子任务也是有名称,状态和子任务自己的工作流的,相对比较简单一些,这些子任务通常在同一个版本的同一个问题中。

二. 使用惯例上

使用惯例上,子问题和父问题的关系没有子任务和问题的关系紧密,我们可能会将子问题放到不同的版本中(当然,一般用相关问题好些),也有可能某一个子问题会单独发布。子任务一般来说是和问题一起发布的,而且是同一个问题的子任务统一发布。另一方面,子任务的size一般要比子问题小一些,子任务的相互依赖性也要强于子问题。综合这两点,似乎子问题是从功能和需求设计上来使用,而子任务是从实现和开发进度上来使用。

任何事情都没有定法,不同的小组对于它们也可能有不同的使用,关键之处还是在于最大化地为项目开发服务。