软件产品的需求管理浅析
上一篇 / 下一篇 2012-08-17 09:46:21 / 个人分类:杂谈
随着产品的深入使用,现场反馈的新需求越来越多,而且需求之间的冲 突越来越多。以前做定制化开发遇到需求冲突的情况,一般都是和用户协商,由用户方安排一接口人,负责沟通和解决有冲突或者不合理的需求。但现在不同的现场 需求之间有冲突,这种办法就行不通了。另外,软件中为了实现不同需求,配置项和逻辑分支越来越多,程序的维护越来越困难,常常一周过去了现场报的问题解决 还没有眉目,用户啧有烦言。开发工程师的不满也越积越多,认为需求分析工作不到位,需求频繁变更,导致软件质量下滑。如果再这样下去,软件的问题会越来越多,工作会越来越难做,点上一支烟,李先生陷入沉思。
d+|nE+Y051Testing软件测试网1{l0lq4L G2o3?&\6xI一、软件产品需求管理面临的问题分析51Testing软件测试网o9Ev8w ^t9jmq
51Testing软件测试网X^}g*|E9oJ软件产品化运作的企业越来越多,大多企业的需求分析师或项目经理都遇到过和李先生类似的情景。总结一下大概有下面三个问题:51Testing软件测试网#_ G)XN4@'Mq$[;S
51Testing软件测试网b3I ?H4_5Z H1、需求来源多样,差异过大难以兼容51Testing软件测试网)G\q9T'| a1p
51Testing软件测试网U:^^sK\产品化和定制化开发的主要区别之一就是产品化面向的是用户群,而定制化开发面向的是一个或几个同质化的用户。所以产品化比定制化接收需求的多样性要丰富的多。针对同一功能点的需求,需求之间或重叠,或交叉,或互斥。按照用户甲想法实现,可能用户乙会强烈不满。51Testing软件测试网 q{Rxu-w En
51Testing软件测试网 V-_/n\n V3^9}2、配置项过多,软件使用过于复杂,用户不满增加51Testing软件测试网 e z7d ~R;TZ
51Testing软件测试网:\hG!n@m5NL解决不同需求的一个最简单的办法,就是增加配置项。通过配置项交付有差异的功能给不同的用户。随着产品的维护时间,软件中的配置项越来越多,产品的使用 复杂度越来越大。每次产品升级时,一不小心覆盖了本地化配置,就会造成原有功能丢失,软件无法使用等异常情况,严重时还可能被用户投诉。
3JGwYO0Rt"jB H }"B Ec#|9M0 3、程序中充斥大量的分支逻辑,越来越难以维护,产品质量越来越差51Testing软件测试网H3bAG%kMY5tX
f qB$P&Gx$L,L0}^ H0 研发工程师的人员流动率在诸多行业中,公认比较高。一茬一茬的新陈代谢,再加上很多企业的过程管理不严谨,文档不全,原来为解决不同需求引入的配置和逻 辑分支成了新的世纪之谜。为了快速完成任务,避免影响现有功能,工程师们采取另外增加一个分支的方式解决问题和实现需求。51Testing软件测试网8et$p`'a4uu
)N3f-r,}s-PR0 日积月累,程序中像谜一样的分支越来越多,程序质量开始变的很糟糕。往往解决了一个问题,引发了一系列的bug。开发工程师们越来越没有成就感,对软件的前景越来越没有信心。51Testing软件测试网`'sL hqW'@_E
51Testing软件测试网1`qQ8R)kk@,n!K二、多层次需求管理的对策51Testing软件测试网VC:f3Ja'M
,wUV-W#jM+I0 在上述的问题仔细分析,可以发现一个产品的需求其实是分层次的,有些需求是某个用户群特有的需求,比如电信领域中中移动和中联通的规范在方向上有非常大 的差异;有些需求是某些用户的通用需求,比如网管中心监控人员对于网元的呈现方式;有些需求是用户的个性化或者临时性需求,比如重大活动保障时期的特定需 求。如果要解决产品化引致的这一系列需求问题,就不能把视角局限在需求-开发的层面上,而是要在站在业务领域分析,产品定位的高度,合理地把需求落实到不 同层次上解决。51Testing软件测试网 NB+J'Ej
;LKtI/n%h$N0图1:需求和需求交付的对照关系
v"J$Qe uqD7J0n9Ti8F9J@0 1、用户群的需求处理策略51Testing软件测试网n9gc%_Wk;K]
O sq}#Ao!s`0 一个规模推广的产品可能会横跨多个用户群,比如在电信BOSS领域的计费软件,移动,联通,电信都有自己的技术规范,中间的规范方向,计费的模式以及算法各不相同。51Testing软件测试网de@|E0A
b(o4l p r!o C0 如果把这些都放到相同的产品上实现,会造成产品非常臃肿和复杂。