浅谈需求驱动的项目管理

http://tech.ddvip.com   2008年01月22日    社区交流

内容摘要:软件项目为什么会失败?这里我们提出以需求为中心的软件项目管理。通过提高需求描述的质量、采用小版本发布策略、将用户需求作为小版本的目标来组织和计划项目开发、积极应对需求变更、提供以用户需求为中心的项目进展视图,从而和客户一起来保证项目的成功。

  以需求实现为单位规划项目实施

  小版本发布需要为每个版本制定实施目标,确定在本次版本中需要实现的功能以及计划修改的以前版本的缺陷。而用户需求是功能的表达方式,因此使用用户需求作为小版本是顺理成章的。当然根据粒度不同,也可以使用软件需求做为小版本发布的内容。

  在定下版本计划的目标后,就需要规划实施。不过由于用户需求描述的是客户的业务和对系统的期望,因此直接采用用户需求作为开发任务安排的起点并不合适。从用户需求导出的软件需求则是以开发团队能够理解的语言和结构描述的,很适合作为安排需求实现的基础。需求追踪矩阵可以帮助我们找到版本目标中的那些用户需求相关的软件需求,项目经理则为找到的这些软件需求的实现制定开发任务,从而形成开发任务集的主线,再辅以集成测试和缺陷追踪,就形成了完整的开发计划。这样的分解方式自然而且清晰,易于上手。

  项目的进度监控

  前文说到用户需求是客户与开发团队间的契约,因此用户需求自然成为客户参与项目时候关心的重点。但是,在实际项目过程中,当客户真正参与项目、试图了解项目进展状况时,却发现除了用户文档外,再也找不到这些需求的影子,取而代之的是一堆花花绿绿的项目任务进展报告、甘特图、统计报告等。这些报表也许准确地反映了现在项目中任务的分布和实现状况,但是与用户关心的需求实现状态没有什么直接联系,因而与缺少了共同的语言。

  这个问题来源于传统项目管理过程中以任务为中心的理念和实践。在这种理念下,项目被认为是一个任务的集合,主要的工作就是任务的分解(WBS: Work Breakdown Structure)、分派、实现和审核。在一个项目组内部,这的确是工作的主要内容。但是,现代的软件开发过程都强调用户的参与,项目进展仅仅以任务为视角展现就不是很合适了。对于客户而言,他们所熟悉的问题描述,即用户需求,已经被分解成几十甚至上百个大大小小的任务,再难看出它们之间的联系,客户自然会感到迷茫,更别说从中看出需求实现的状态了。

作者:刘开阳    责编:豆豆技术应用

正在加载评论...