本文共 3735 字,大约阅读时间需要 12 分钟。
使用云效公有云版本三个多月,对于任务拆分的一点心得,现在这里分享一下。
任务是从产品到开发到测试一个可以贯穿的概念,在Jira、github 等项目管理软件中,叫做 Issue,Issue 在不同的项目、项目中不同的环节都不太一样。称之为任务的确也没啥太多问题。
开发中过的任务,简单的来说,要完成的一个定义明确的功能项,不依赖内部别的功能,需要的时间根据难易度在两小时到一天左右,且一个人可以独立完成。
我们看到有些项目组的任务会定义为一个人完成的一个大的功能点,可能需要 2-3 天完成,这也是可以的。任务的重要边界是完成本身不依赖其他任务 ( 和定义好的接口通讯不属于此 )。
在开发过程中的任务大部分就是从产品需求而来,
下面这些都可以是一个独立的任务:
开发任务的详细设计具体怎么进行,这里就不展开了,因事而异。
在云效中新建一个任务会看到下面这些属性,有很多。
建议下面这些属性是必须要输入的,如下图中蓝色框出的:
任务的标题非常重要,我们建议任务标题按照如下规则来进行:
好的任务标题如下:
写的不太好的任务标题如下:
推荐使用在以一个项目中: AAA,BBBBB。这样的句式。其中AAA 是某个大模块的名称,一个项目中的模块划分可以由项目经理确认,一般也不会超过5个,如果每个标题中的 AAA 都不太相关,说明颗粒度太细了。这样的描述还有个好处就是视觉上比较整齐。在有的项目中我也会建议 AAA 这里试用新增、修改、删除这样的描述,特别是一些底层的支持类的项目,变化也比较频繁的,可以用这类描述方式。
任务描述是对这个任务的详细描述,可以对这个任务更好的理解。很多程序员不太愿意写文档,经常看到一些程序员详细设计写的简单,项目评审流于形式,有些程序员急于想编码。这样的风险很大,使用尽量标准的项目开发流程可以约束这样的行为。任务的描述并不能替代详细设计,但是也是不可缺少的,因为对任务的标题的字数等有一定要求,不能太啰嗦,所以在描述这里可以尽量将当前任务的内容描述清楚,解决什么问题,可能会碰到的技术问题,包括一些业务和程序流程,甚至是伪代码。
云效系统的描述是支持 Markdown 格式的,所以在表现形式上完全不用担心,可以节约很多排版时间。
任务标签也是重要的,对比 jira 这样强大的自定义工作流来说,基于公有云的云效的项目体系相对比较简单,状态有限(私有云版本的云效也可以做比较复杂的定义),至少我们可以通过标签来区分任务的属性。另外目前也是在尝试从产品需求到开发测试的全流程管理,所以用标签可以来区分不同的种类。
任务标签会显示在:
我们建议在开发项目的时候用下面这些标签,标签在一个项目或者最好在一个公司的所有项目中,保持一致,标签不要颗粒度太小:
任务的属性中有一个任务时间,有如下建议:
分拆任务时候并不是颗粒度越小越好,在一个项目中,注意颗粒度的一致性非常重要。
在一个纯开发的项目里,可以把任务分拆成都是需要 20-80 行代码实现,按照一个函数一个类为最小颗粒度,也可以是按照源文件,比如所有的基于一个源文件的增加修改代码,还可以按照产品功能点来拆分,或许一个功能点也会涉及到好几个源文件,这种拆法在有些项目中也会有好处。
相对来说,建议按照下面方式来拆分:
对于目前大部分项目基于版本代码分支的管理来说,任务的颗粒度到一个源文件,在代码合并时候比较容易,相对冲突会比较少。
如果任务影响到几个文件,并且这几个文件同时也被别人编辑的话,我们是推荐使用 git ,并进行每日合并,这样包括代码评审的过程一并进行,这部分在 git flow 流程中进行详细解释。
任务从建立开始,有一个生命周期,并且任务在这个生命周期里面,内容是可以修改的,有些属性是可以变化的。这也是我们强烈推荐使用系统来进行任务管理的原因之一,要达到同样的效果,可以减少大量的人工工作量。
任务的生命周期分为:
在看板中,可以通过拖放来调整任务所处的生命周期,并且云效工具支持对看板进行配置。
看板管理是一个从工业管理中移植过来的管理名词:
来自于维基百科的定义:看板管理,常作“Kanban管理”(来自日语“看板”,カンバン,日语罗马拼写:Kanban),是丰田生产模式中的重要概念,指为了达到及时生产(JIT)方式控制现场生产流程的工具。及时生产方式中的拉式生产系统可以使信息的流程缩短,并配合定量、固定装货容器等方式,而使生产过程中的物料流动顺畅。
在看板标示系统中常将塑料或纸制成薄板,将产品名称及数量写于其上,故此得名。及时生产方式的看板在生产线上分为两类:领取看板和生产看板,旨在传达的信息是:“何物,何时,生产多少数量,以何方式生产、搬运”。
敏捷中的看板管理大家都熟悉了,现在已经不需要小贴纸在白板上了。非常建议使用本文中的看板模式,虽然看板模式从显示信息数量来说并不太有效率,但是对于产品经理、项目经理等来说,对于进度的控制的一目了然是最重要的。
图表可以给团队和管理层提供一个可视化工具,有助于定义过程中的障碍,并且让每个人持续关注交付有价值的产品。
图表的作用:
我们觉得这是现代项目管理软件非常有特色一个地方,不管是 jira、github 以及云效,都可以很容易的进行对任务的评论。有时候我们在详细设计的时候,并不能真正的考虑周全,或者因为时间的关系,有些内容先简单的写一下。项目开发的组长、其他开发人员、在准备测试的测试同事以及产品经理,都可以在一个任务下面进行评论,提出自己的问题。开发人员可以在这个小小的讨论区进行针对性的讨论。我们称这样的过程可以看到一些变化的过程,对于项目后期评审以及其他新加入项目组的同事学习有很大的好处,你看到的不光是结果,还有所有相关人讨论的过程。
云效的任务评论功能可以像微信等,用@符号在评论中指定需要额外看到的人,除了任务的创建者以外。并且通过邮件来发送到和这个任务相关的同事。
不要把任务拆分为:立项、详细设计、开发、测试等这样,这是项目的流程环节,而不是项目中的任务。
需求中的任务可以是任务的功能,有点像我们平时说的 feature list 中的项目。
开发中的任务就是技术的详细设计的拆分,有些比如时序图等文档可以以附件形式存放。每个任务有一个 ID,就像是 Issue number,这是一个唯一的 ID。
在敏捷开发中,我们称之为 Backlog,我们观察到,大部分项目其实开发总是来不及在指定的版本完成的,而需求每天会因为各种情况层出不穷,所以需要一个需求池来存放这些不能马上开发的需求。
需求池中的需求的走向:
既然是需求池,所以其中的任务可以是比较简单的,前面说过,在任务的标题这里需要说明清楚,但是具体的详细设计、关联影响等可以暂且省略。
转载地址:http://rlaql.baihongyu.com/