以下为最近的一些个人思考,对于项目管理中,如何管理一个Work Item,从创建到完成的整个周期,如何高效的进行,并能够根据相关的统计数据(反馈)进行不断的改进,我想这是所有PM/team leader最为关心的核心问题之一。
对于一个任务,有几个核心的节点:Work Item, Test Suite, Changesets, Work Log。一个任务对应着一段需求或一个bug或一个改进要求,那么就会有相应的一系列的测试用例来衡量其产出物是否满足该work item,同时该work item还对应着对应的代码修改 (changesets),以及花在该项任务上的人工。除了这几个核心的节点之外,还有一些其他的节点,我用下图来描述我的mental model:

一个work item从属于一个iteration plan,当一个work item被创建后,第一个环节就是分配给一个开发人员,开发人员接到任务后首先对该work item进行分析,分析的结果有两部分:proposed solution以及effort estimation,proposed solution经review通过后,开发人员进行具体的设计,而effort estimation会被更新到该work item上,进而方便来排工作计划。Design被review后,就可以进入implementation阶段,这个阶段的产出物将是source control system中的对应的代码改动(changesets),这些代码改动将被关联到对应的work item上,从而能够方便的被review。在实现完成后,一些列基于该work item的测试用例将被创建,这些测试用例可能是手动的测试用例,也有可能是自动的测试用例,和changesets一样,它们也被关联到对应的work item上,这样基于一个任务的测试可以被清晰地界定、执行,涉及一个任务的修改后,回归测试的范围也可以被清晰的界定。最重要的是,这一些列的测试用例尽可能精确的定义了该work item的边界,为该work item的验收提供标准。Test suite可以被完善、丰富,可以根据work item或changeset而容易被定位。
另外,基于该work item的工作记录,可以被方便的记录下来,为任务的effort分析提供数据,为基于work item实施流程的效率进行改进提供了反馈的基础。
目前对于一个work item的管理做的最好的是TFS 2010,TFS 2010提供了scm,提供了work item管理,提供了test suite管理,还可以将work item和changesets进行关联。也支持基于work item的effort管理,似乎只是不支持work log的记录。而且TFS 2010基于work item提供了细致的管理,例如它提供了如下状态:Designed, Refactored, Coded, Code reviewed, Design reviewed, Unit tested, Functional tested, User acceptance tested, Integration tested, Regression tested, Performance tested, Security tested。尤其在测试方面非常严格。
而在其他项目管理工具方面,我尚不清楚有哪一款工具提供了像TFS 2010这样比较全面的管理。当然不管用什么工具,或者不用工具,如果能够把一个work item按照图中的流程进行基本有效的管理,已经相当不错了。目前我在我的项目中,也在追求这样的管理流程,这对于打造一个高效的团队,最终如期交付产品,具有非常重要的作用。至于实施的细节,过后再慢慢总结。
