软件产品的需求管理浅析

发表于:2012-8-16 11:23

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  李先生在一家上市软件企业担任需求分析师,该公司在电信信息化已经有多年积累,为了缩短软件的交付周期,降低研发和维护成本,公司从一年前开始逐步从定制化开发向产品化方向转型。李先生负责的产品参加软件产品化运营的第一批试点,经过1年的努力,产品已经在5个现场上线并开始正式运营,年底成本核算,比同类定制化项目效益提升了近40%,李先生还被评为优秀员工。

  随着产品的深入使用,现场反馈的新需求越来越多,而且需求之间的冲突越来越多。以前做定制化开发遇到需求冲突的情况,一般都是和用户协商,由用户方安排一接口人,负责沟通和解决有冲突或者不合理的需求。但现在不同的现场需求之间有冲突,这种办法就行不通了。另外,软件中为了实现不同需求,配置项和逻辑分支越来越多,程序的维护越来越困难,常常一周过去了现场报的问题解决还没有眉目,用户啧有烦言。开发工程师的不满也越积越多,认为需求分析工作不到位,需求频繁变更,导致软件质量下滑。如果再这样下去,软件的问题会越来越多,工作会越来越难做,点上一支烟,李先生陷入沉思。

  一、软件产品需求管理面临的问题分析

  软件产品化运作的企业越来越多,大多企业的需求分析师或项目经理都遇到过和李先生类似的情景。总结一下大概有下面三个问题:

  1、需求来源多样,差异过大难以兼容

  产品化和定制化开发的主要区别之一就是产品化面向的是用户群,而定制化开发面向的是一个或几个同质化的用户。所以产品化比定制化接收需求的多样性要丰富的多。针对同一功能点的需求,需求之间或重叠,或交叉,或互斥。按照用户甲想法实现,可能用户乙会强烈不满。

  2、配置项过多,软件使用过于复杂,用户不满增加

  解决不同需求的一个最简单的办法,就是增加配置项。通过配置项交付有差异的功能给不同的用户。随着产品的维护时间,软件中的配置项越来越多,产品的使用复杂度越来越大。每次产品升级时,一不小心覆盖了本地化配置,就会造成原有功能丢失,软件无法使用等异常情况,严重时还可能被用户投诉。

  3、程序中充斥大量的分支逻辑,越来越难以维护,产品质量越来越差

  研发工程师的人员流动率在诸多行业中,公认比较高。一茬一茬的新陈代谢,再加上很多企业的过程管理不严谨,文档不全,原来为解决不同需求引入的配置和逻辑分支成了新的世纪之谜。为了快速完成任务,避免影响现有功能,工程师们采取另外增加一个分支的方式解决问题和实现需求。

  日积月累,程序中像谜一样的分支越来越多,程序质量开始变的很糟糕。往往解决了一个问题,引发了一系列的bug。开发工程师们越来越没有成就感,对软件的前景越来越没有信心。

  二、多层次需求管理的对策

  在上述的问题仔细分析,可以发现一个产品的需求其实是分层次的,有些需求是某个用户群特有的需求,比如电信领域中中移动和中联通的规范在方向上有非常大的差异;有些需求是某些用户的通用需求,比如网管中心监控人员对于网元的呈现方式;有些需求是用户的个性化或者临时性需求,比如重大活动保障时期的特定需求。如果要解决产品化引致的这一系列需求问题,就不能把视角局限在需求-开发的层面上,而是要在站在业务领域分析,产品定位的高度,合理地把需求落实到不同层次上解决。

图1:需求和需求交付的对照关系

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号