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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.用户群的需求处理策略

    一个规模推广的产品可能会横跨多个用户群,比如在电信BOSS领域的计费软件,移动,联通,电信都有自己的技术规范,中间的规范方向,计费的模式以及算法各不相同。

如果把这些都放到相同的产品上实现,会造成产品非常臃肿和复杂。

上一页12下一页
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。

更新发布

热门文章

热门标签

沪ICP备07036474号 2003-2022 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.