电话:400-611-0571,0571-28180098
您的位置: 微软IT学院 >> 新闻资讯 >> 行业信息2 >> 软件需求管理工作的一些经验和体会

软件需求管理工作的一些经验和体会

  • 文章来源:微软IT学院
  • 浏览次数:
  • 发布时间:2013-12-26 16:24:00
文章摘要:软件项目中需求管理工作的重要性  开发一个软件项目如果采用瀑布模型(或改进型瀑布模型)的话通常会包括以下几个开发阶段即需求分析系统设计系统编码系统测试系统交付(及后续维护)在项目管理过程域中主要包括项目规划立项管理需求管理项目监控风险管理。
软件项目中需求管理工作的重要性

  开发一个软件项目如果采用瀑布模型(或改进型瀑布模型)的话通常会包括以下几个开发阶段即需求分析系统设计系统编码系统测试系统交付(及后续维护)在项目管理过程域中主要包括项目规划立项管理需求管理项目监控风险管理和结项管理等

  我们把所有与需求相关的活动统称为需求工程需求工程的活动又可分为两大类即需求开发和需求管理系统需求分析员通过需求调查(调研)需求分析和需求定义完成需求开发工作而项目经理则通过对需求确认需求跟踪和需求变更控制的主导实现需求管理

  软件需求工程是软件项目开发工作的一个重要源头它是由两个角色共同完成的需求分析师一定要尽可能准确的获取客户需求尽量一次做对编写出高质量的《用户需求说明书》和《产品需求规格书》努力降低项目中后期因需求变更对项目的成本质量和进度的影响而项目经理则需通过加强需求管理有效的防范和减少不必要的需求变更曾有人做过统计分析如果在需求分析阶段发生的需求变更对项目带来的额外工作量是的话那么在系统分析和系统编码阶段发生的需求变更对工作量的增加分别是和

  对于那些软件能力成熟度高的软件企业的项目经理而言可以毫不夸张的说只要把需求管理做好了项目也就已经成功了一半

  CMMI中对需求管理流程的定义与我项目实践的体会

  集成式能力成熟度模型(CMMICapability Maturity Model Integration)把需求管理流程划分为六部分分别是

  制定需求管理计划

  求得对需求的理解

  求得对需求的承诺

  管理需求变更

  维护对需求的双向跟踪

  识别项目工作与需求之间的不一致性

  毋容置疑上述六个部分是构成需求管理流程的重要组成部分但在实际操作中仅仅是机械的遵循这些标准流程和要点往往又是不够的根据我在过去十年在国内的多个大型软件项目(涉及仓储管理物流园区信息平台保税区海关联网监管系统以及港口社区综合信息平台等)担任项目经理的管理实践获得的经验我的看法就是要想成功的执行需求管理涉及到的一些关键成功因素还远不止这些下面是我的一些经验和体会

  我的两点经验

  一应紧密结合国内企业的实际特点和人文环境通过多种手段消除需求的不确定性

  开发企业级大型应用软件项目需要应对的重要挑战就是需求的不确定性那么什么是需求的不确定性呢?我这里先例举两个场景场景一开发人员没有行业背景不能很好的理解业务需求某个开发项目尽管经过了多轮次十分详尽和深入的需求研讨而且开发人员都确信自己已经明白了客户提出的业务需求但费尽千辛万苦把系统做出来以后客户却说对不起这并不是我想要的!于是几百万甚至上千万的开发投入打了水漂场景二开发人员具备丰富的行业经验也确实理解了业务需求但开发项目组因为没有很好的平衡各方利益关系软件系统在上线后要么遭到全盘废弃要么就只有那么一小部分功能得到实际应用客户的大部分项目投资没能获得应有的收益

  从以上描述的两个场景可以看出造成需求不确定的原因很多它们包括但不限于开发团队缺乏所开发项目的业务背景和行业经验导致不能很好的理解客户的业务需求由于客户方人员的素质良莠不齐以至于有些人员不能完整全面系统准确的阐述自身业务和对系统的需求或者提出的需求难以通过IT技术加以实现有些时候有些人甚至会从大方向上误导开发团队客户方不熟悉软件项目开发方使用的工具不理解项目需求分析人员提交的文档难以通过交流消除双方在认识上的分歧进而实现真实意图的准确表达软件项目的开发和实施所伴随的企业流程重组(BPR)通常都会给客户方的内部组织和个人带来不同程度的冲击如果项目开发和实施方不能妥善处理利益关系并有效化解潜在风险则项目就很可能开发失败或者项目在开发完成后即遭到用户的抵制项目成果也随即被客户否定

  对应的解决方法是

  如果项目开发方缺乏行业经验一定要聘请业务专家行业顾问等专业人士通过业务培训和专业指导等方式提高项目团队尤其是需求分析师对客户需求的把握能力

  从不同层级的客户方人员那里获取不同层级的用户需求要有针对性的对客户方人员进行软件项目的基本知识培训让他们更好的了解软件项目开发的过程和步骤以提高他们对开发高质量业务需求重要性的认识水平

  通过建立直观易懂的业务需求模型在某些时候可以通过快速开发工具搭建一个系统原型作为交流工具分别与客户方的管理人员和操作人员进行深入交流和细致的需求探讨

  就BPR对客户方企业内部人员的影响进行细致的分析和仔细的评估并就分析结果与客户方高层管理者进行正式汇报和专题交流充分利用客户方的管理层的力量消除BPR带来的业务需求风险和系统实施风险

  二项目经理要高度重视对项目外部干系人的管理

  在这里先要解释一下什么是外部干系人一个软件项目其项目干系人包括若干本公司(项目开发方)的人员如项目团队成员和公司内部的管理人员(由于项目组是临时组织需要从公司内部各职能部门抽调人员因此寻求公司管理层和各职能部门的资源支持是非常重要的)他们可统称为这个项目的内部干系人而外部干系人则是指能够影响本项目或者本项目的工作成果会对他们的利益带来影响的客户方人员和其他关联方人员

  虽然绝大多数项目管理书籍都在长篇累牍的介绍如何管理好项目组成员但我的看法就是很多时候对外部干系人管理的好坏往往是决定一个项目成败的关键

  也许有人会问项目组成员是完成开发项目的工作人员难道对他们的管理不是最重要的吗?当然重要但在项目实践中一个合格的项目经理会发现他对项目组成员的管理是相对简单的工作理由有三在国内项目经理通常都是具有较强综合素质和拥有丰富工作经验的员工在公司拥有较高的地位和影响力他容易得到公司管理层的认同和各方面的资源支持也容易在项目组树立威信因此只要能获得公司的坚定支持从客观上讲对项目组成员的管理不存在特别大的障碍国内软件公司的项目经理绝大多数都是从普通员工中提拔的他们往往具有多方面的技能本身就能胜任从编码到设计到需求分析等多方面的工作如果个别项目组成员能力不够项目经理往往能够通过自身的能力弥补项目组成员的不足如果项目经理遇到项目组内部的管理问题他可以很容易的从公司内部寻求到帮助和支持并把风险控制在可控范围之内

  而对项目外部干系人的管理就大不一样了首先客户是我们的衣食父母项目组从本质上讲是要服务于客户的因此项目经理与外部干系人打交道往往处于相对弱势的地位而在公司内部项目经理则通常是处于相对强势的地位这显然是一个本质的区别其次项目组成员的从业经验和业务背景往往与外部干系人的背景经验和技能存在很多不同往往构成了双方在相互信任理解和沟通方面的若干障碍第三由于项目周期短项目经理对客户方等重要外部干系人的了解始终有限往往存在大量信息的不对称信息的不对称又会在很大程度上影响项目经理的全局把握能力

  那么如何才能做好对项目外部干系人的管理呢?我认为关键是要做好以下三项工作

  首先要认真进行项目外部干系人的识别工作

  其次要增进项目外部干系人对项目经理的信任和认同

  第三加强项目沟通管理

责任编辑:admin
关键字:
输入手机号马上下载: