对项目需求管理的认识和体会

article/2025/1/11 22:58:23

下面是对一位项目经理关于需求管理的访谈:

  做了那么多个项目,我深深感到对项目的需求把握管理好了,是项目成功的关键。对需求的管理大概有那么几个活动,首先是需求获取,这是一个确定和理解客户的需要和期望的过程,为实现项目目标而定义、记录、分析干系人的需求; 其次,是要求获得相关人员对需求的认可和承诺;最后,即使是需求确定下来之后,也不可避免得会有变更,如何控制和管理变更,是保障项目目标的实现的重要环节。


  2010年,我担任了公司一个重要项目,老挝TAIS系统的项目经理,该项目是一个系统集成项目,在此之前,我并没有做过类似项目,为谨慎起见,严格按照需求管理的规范执行,收获了很多经验,也保证了项目的顺利交付。

  1、需求获取 需求获取分为两个阶段,需求调查、需求定义。需求调查和需求定义在逻辑上存在先后关系,但实际工作中二者通常是迭代进行的。需求分析的工作则贯穿于“需求调查”和“需求定义”两个阶段。 需求调查的目的是通过各种途径获取用户的需求信息(原始材料),产生《用户需求说明书》。

  需求分析的目的是对各种需求信息进行分析,消除错误,刻画细节等。需求定义的目的是根据需求调查和需求分析的结果,进一步定义准确无误的产品需求,产生《产品需求规格说明书》。系统设计人员将依据《产品需求规格说明书》开展系统设计工作。

  在进行现场需求调查之前,我首先需要了解的是,这个项目是什么样的项目,大概做什么事情?并仔细阅读了售前阶段产生的所有文档资料,和售前阶段参与人员交流沟通,进一步了解项目是谁提出来的,目的是解决什么问题。

  不单单听介绍,特别关注了与合同具有同等效力的那些文件,如技术协议,工作说明书(SOW)、实施方案等等。从而知道,该项目是一个老挝TAIS (THSCAN-ASYCUDA Integration Solution)项目是我司集装箱/车辆检查系统与海关数据系统整合解决方案的简称。目前在老挝境内,8个地点部署了6套车载式系统和2套组合式系统,老挝海关使用的海关自动化业务系统叫ASYCUDA,TAIS就是要实现NUCTECH扫描设备与海关数据系统的高度集成和信息共享。


  了解都项目的业务领域之后,我又对客户干系人进行了分析,这样,就能保证正式调研需求时,能够选择一些典型的客户代表进行需求调研。刚开始没有经验,参与人员太多,提供的信息过于零散,减慢了收集需求的进度。后来我们制定了现场访谈计划,一次讨论不超过10人。效果就好多了。通过和客户的有效沟通,获取了大量的信息。

  我发现,跟客户交流时,提的问题最好是开放式的,比如 “是否确认进度检查确认方式”比“如何确认进度检查确认方式”可以获得更多的信息。“项目计划编制完成后,是否征求下级部门意见,如果下级部门不接受上级部门分配的计划,如何协调和处理?”这样一个问题就可以了解客户的计划批准和协商过程。现场调研的工作很顺利,共去了3次。

  除此之外,我们还参观了用户的工作流程,观察用户的操作。 初步的需求信息得到以后,要对需求进行分析。需求分析有很多方法,“问答分析法”、“结构化分析法”和“面向对象分析法”,总之,是要对得到的信息进行处理,提取这些信息间潜在的逻辑关系,分成不同的类别,这样才能充分理解它们。

  这就要求项目经理不仅要尽可能记录客户信息,同时还要做一定的整理,否则,所有的讨论只剩下一个模糊的印象,需求仍然是一件遥远的事情。只有进行深入收集和分析,才可以消除任何冲突或不一致性。 信息量越大,对准确理解客户的需求越有帮助,但同时,对需求的分析也就越难。

  对于软件项目,我认为这可能是最困难、最关键、最需要交流的工作。因为软件不是硬件,不是主板,显示卡之类看得到摸得着的东西,软件是思想,是理念,是规则,是对真实世界的抽象。软件项目的交付物是有形的,可又不同于其他行业,比如汽车的构造是固定的,其组成部分是不变的。而一个软件系统的模块划分则可以有多种方法,多种结构。这个特征导致对软件项目经理的抽象思维能力要求很高,要求要有较强的逻辑性。否则,就有可能表现为缺少全局概念,对项目整体的范围和业务系统把握不够,在项目过程中被客户牵着鼻子走,今天客户说要个什么功能,就添加个什么,明天要修改个什么,就跟着修改什么,被动至极。 将客户信息结构化,编写成需求文档。这是需求定义的工作。公司的《产品需求规格说明书》的主要内容包括:“ 产品介绍;描述用户群体的特征;定义产品的范围; 阐述产品应当遵循的标准或规范;定义产品中的角色;定义产品的功能性需求;定义产品的非功能性需求,如用户界面、软硬件环境、质量等需求;”仅有这份需求文档还不够,我上现场调研时带了个美工,将我们和客户沟通好的软件部分用图形界面UI画了出来。 需求定义是需求获取中最“痛苦”的一件事情,为了尽量避免日后的扯皮,我们力图使每个需求都应当用陈述句说明“是什么”,如果“是什么”的内涵不够清晰,则应补充说明“不是什么”。如果“是什么”和“不是什么”并不是“理所当然”的,那么应当解释“为什么”,追究“是什么”和“为什么”的目的是获得正确、清楚的需求。对需求定义的标准大致如下: 需求存在二义性吗?2 需求文档的上下文有矛盾吗?2 需求完备吗?2 需求是必要的吗?2 需求可实现吗?2 需求可验证吗?2 需求的优先级确定了吗?2


  2、 需求确认 需求确认是指开发方和客户共同对需求文档进行评审,双方对需求达成共识后作出书面承诺,使需求文档具有商业合同效果。 在需求调研的过程中,我发现对项目范围的定义和当初了解的存在误差,这也是很正常的,因为未签订合同前,谁也不能做很深入的调研,只能了解个大概要求。但我们的原则是不轻易更改工作范围,只是在原来的框架内做一些小的调整。 而且每次和客户讨论之后,我们都写一份会议纪要,请客户签字确认。但即便如此,对需求的确认也是一件很让人头痛的事情。如何划定边界?做到什么程度就可以了?因为只有提供需求的人才能确定是否真正获取需求,我们都尽量请客户参与讨论并更正。 需求评审会议非常重要,但是以前几个项目的评审会都开得不很理想,大家事先不认真阅读文档,会上乱哄哄的,你说一句,我问一句,往往花费了很多时间,却啥结论也没有。这一次,我吸取了教训,组织了一个非常正规的需求评审会议,将部门领导、公司的业务专家、技术骨干都请来当评审人员。并自行设计了《评审准备表》和《评审记录表》。会前两天提前发了老挝项目的需求文档《老挝TAIS项目方案建议书》、《老挝TAIS项目调研报告》,发放了《评审准备表》,让大家提前将问题记录在评审准备表中,并反馈给我,我一直等到反馈意见收集的差不多了,才召开评审会。评审会开的很成功,效率很高。我让人整理了评审发现的问题,放在了评审记录表中,方便下去追踪。

  3、 需求变更控制 需求变更控制是指依据“变更申请-审批-更改-重新确认”的流程处理需求的变更,确保需求的变更不会失去控制而导致项目发生混乱。

  需求变更难以避免,重要的是不能没有章法得变,要遵循一个标准的变更控制程序,使得变化有序起来。 如果不进行变更控制,那么,项目就不能得到及时的警告,常常会因为进度超期、预算超支而陷入泥潭,成为“烂尾”工程。但是变更实在太频繁,如果每次变更都走变更流程,也会大大影响项目进展。按照变更控制流程,需要对变更做影响分析等等。

  既然变更在所难免,不可能只要有变更就执行严格的变更控制程序,这个过程也是有成本的,所以,和项目组成员讨论的结果,只有重大变更时,才执行变更控制程序。比如影响了项目里程碑的达到,工作量超出了原先估计的30%等等。

  这样一来,既保证了变更的有序性,又保证了项目进展。 除此之外,我还对需求的稳定度做了一个度量,度量了原始需求的个数,增加、删除、更改的需求个数;并分散在项目各个阶段,如需求分析、概要设计、详细设计、编码阶段、测试阶段等等的需求数,并将每次需求变更的提出人、变更原因,是否走了正式的变更流程都记录了下来。一来是为以后的项目做参考,二来跟客户沟通时也有话说。不至于拿不出令人说服的事实和根据来。

  比如这个项目,初始的软件需求共有142个,中间增加了21个,删除了6个,更改了34个。总体需求稳定度在30%左右,对于一个软件项目来说,就很不错了。 老挝项目于2011年12月底结束,项目获得了老挝海关的好评,目前系统运行正常,系统已经融入老挝海关工作流程,成为海关工作不可分割的一部分。公司也收回了该项目所有尾款,实现了公司的价值。

  在此项目中,我们做到了一下几点:尽早开始需求调研,清晰进行需求定义,随时和客户进行沟通,及时记录需求变更,统计需求变更的影响和工作量。因此,项目进行得很成功,期间克服了很多困难,比如人手紧张,客户方接口人变动等等。但因为工作范围没有什么改变,需求一直在掌控之中,项目一直按计划执行和完成。

光环国际PMP转自PM圈子网


http://chatgpt.dhexx.cn/article/6aABDVQV.shtml

相关文章

项目范围管理:WBS

创建工作分解结构是把项目可交付成果和项目工作分解成较小的、更易于管理的组件的过程。工作分解结构(WBS)是项目管理的基础,项目的所有规划和控制工作都必须基于工作分解结构。如果没有工作分解结构,就谈不上项目的进度计划、成本…

项目治理-项目需求范围管理:范围蔓延、镀金

范围蔓延、镀金 场景1: “甲方需要做一个App电商系统,项目对接非常满意,快项目结尾的时候,甲方的老板说,听说现在流行小程序,这个电商系统一定要在小程序上面也可以运行,如果不支持&#xff0…

怎样使用GitLab管理项目?

1. issue 介绍 一般 master 分支默认是被锁住的,其目的是保护该分支。普通开发人员可以创建 issue 后建立对应的分 支然后去完成任务。完成issue 后便要合并分支,只需发送 merge request ,等待 owner 审核才能合并到 master 分支上。合并的过程中可能…

软件需求管理过程

软件需求管理过程 软件需求管理过程 软件需求管理的过程 需求确认(确认需求规格) 需求获取–>需求分析–>需求规格编写–>需求验证需求变更(开发过程中的需求管理) 需求获取,需求分析,需求规格编写,需求验证,需求变更…

项目管理——需求收集与管理

项目管理——需求收集与管理 VS 需求收集对于产品经理来说,都已经属于老生常谈了。在产品的立项和设计前需要先做需求调研,在这里我们就来谈谈如何进行需求收集和管理。 一、需求收集目的 需求收集的目的就是了解用户目前所需要的是什么,最迫…

项目管理--需求分析

项目管理-需求分析 一、需求分析概述软件需求分类 需求分析是什么? 二,需求分析的任务需求分析的任务主要有两个方面:需求分析的困难:需求分析过程需求管理 三,需求分析案例需求分析的过程包括:exp:需求陈述需求陈述中…

谈产品研发项目需求及需求变更管理

公司经过2年多所研发的产品,终于正式试用了,中间经历过了无数次调整,产品研发过程是不断迭代的过程,发生需求变更、设计变更的情况非常多,为不影响创新和开拓思路,研发处在开放状态,当前阶段是时…

需求管理搞不定?这4招帮你解决项目需求管理

当你坐下来分析一个失败项目的时候,会发现很多项目在需求分析阶段就出现了问题,而需求变更也或多或少和开始的需求有关。 但项目需求就像神秘人一样,不知道是什么、不知道从哪来、不知道想干啥,搞清项目需求简直像一场读心术… …

软件项目管理 第五讲软件项目需求管理

文章目录 项目案例软件需求管理的基本概念什么是软件需求?关于软件需求的注意事项软件需求的重要性 软件需求开发软件需求工程的产生什么是软件需求开发?软件需求开发的任务软件需求开发的过程步骤1:收集和获取软件需求步骤2:软件需求建模步骤3:文档化软…

项目管理学习总结(2)——需求收集和管理

需求收集对于产品经理来说,都已经属于老生常谈了。在产品的立项和设计前需要先做需求调研,在这里我们就来谈谈如何进行需求收集和管理。 一、需求收集目的 需求收集的目的就是了解用户目前所需要的是什么,最迫切需要去解决的问题是什么&#…

END-TO-END OPTIMIZED IMAGE COMPRESSION论文阅读

END-TO-END OPTIMIZED IMAGE COMPRESSION 文章目录 END-TO-END OPTIMIZED IMAGE COMPRESSION单词摘要:1.INTRODUCTION2.CHOICE OF FORWARD, INVERSE, AND PERCEPTUAL TRANSFORMS3.OPTIMIZATION OF NONLINEAR TRANSFORM CODING MODEL3.1 RELATIONSHIP TO VARIATIONAL…

[论文解读] Concolic Testing for Deep Neural Networks

Concolic Testing for Deep Neural Networks 文章目录 Concolic Testing for Deep Neural Networks简介摘要介绍相关工作DNNs的鲁棒性Concolic测试与相关工作对比深度神经网络 DNNS的覆盖测试激活模式形式化测试覆盖标准测试覆盖率指标 具体覆盖要求Lipschitz连续性神经元覆盖率…

【论文翻译】 Clustering by Passing Messages Between Data Points

论文题目:Clustering by Passing Messages Between Data Points 论文来源:Clustering by Passing Messages Between Data Points 翻译人:BDMLCQUT实验室 Clustering by Passing Messages Between Data Points Brendan J. Frey* and Delbert …

二维泊松方程求解--点迭代法

本文目录 1. 问题描述1.1. 泊松方程1.2. 算例 2. 区域离散和方程离散2.1. 边界条件 3. 代数方程组求解3.1. 雅可比迭代3.2. 高斯-赛德尔迭代3.3. SOR迭代3.4. 迭代收敛标准3.5. 迭代法收敛的分析3.6. 上述迭代方法的计算结果 4. 代码 1. 问题描述 本算例来自B站Up主“Red-Gree…

【论文翻译】Clustering by Passing Messages Between Data Points

论文题目:Clustering by Passing Messages Between Data Points 论文来源:Clustering by Passing Messages Between Data Points 翻译人:BDMLCQUT实验室 Clustering by Passing Messages Between Data Points Brendan J. Frey* and Delbert…

数值计算:线性方程组求解及应用

文章目录 一. 实验目的二. 实验内容、过程及结果实验一:使用直接法求解线性方程组①高斯消去法:②列主元法: 实验二:使用迭代法求解线性方程组①Jacobi 迭代法②Gauss-Seidel 迭代法③逐次超松弛迭代法④共轭梯度法⑤令n10、50、1…

A Survey on Knowledge Graphs___Representation, Acquisition and Applications.知识图谱综述:表示,获取,应用

知识图谱综述:表示、获取及应用 这是研究生第一篇综述文章,第一次读也是花了好几天的时间。 摘要:人类的知识提供了对世界的一种形式的理解。表征实体之间结构关系的知识图已成为认知和人的智能研究的热门方向。在这个调查中,我们提供了一…

【中科院】分子生物学-朱玉贤第四版-笔记-第14-16讲 真核生物基因表达调控

第14-16讲 真核生物基因表达调控 文章目录 10. 真核生物基因表达调控10.1 转录水平的调控 (transcriptional regulation)10.1.1 转录起始调控 Transcriptional initiation10.1.2 组蛋白修饰10.1.3 DNA 甲基化 10.2 转录后水平的调控 (post-transcriptional regulation)10.2.1 前…

线性系统理论笔记

文章目录 三、系统的数学描述3.2 输入输出描述二、初始松弛概念三、线性性质四、因果律五、松驰性六、时不变性七、传递函数阵 小结3.3 状态变量描述3.4 输入输出描述和状态变量描述的关系3.5 组合系统的数学描述一、时变情形二、时不变情形 四、线性动态方程和脉冲响应矩阵4.2…

2.2 SIMPLE系列算法 | 2.3 PISO算法(OpenFOAM理论笔记系列)

2.2 SIMPLE系列算法 2.2.1标准SIMPLE算法 SIMPLE算法(Semi-Implicit Method for PressureLinked Equations)1最初被设计用来求解稳态问题,即控制方程中不包含瞬态项的计算。按照1.3.3节的约定,我们假设计算开始的时候有初始的压力和速度值 P o , U o ⃗…