特征蔓延

功能蔓延是指产品里的新功能英语Software feature持续膨胀或增加的情形[1],常出现在电脑软件电子游戏消费电子产品内。增加的功能超过了产品的基本功能,有可能会让软件无法维持简单设计,出现软件膨胀及过度复杂的情形。

有关“怎样算是功能蔓延”的定义,会随终端用户而不同,某个功能对一些用户来说,可能算是“功能蔓延”,但却是其他客户实际会用到的功能[2]。功能蔓延是最常见造成成本超支英语Cost overrun及时程逾期的原因之一[3]。这会危害专案及产品,甚至可能让专案及产品因此而结束。

已隐藏部分未翻译内容,欢迎参与翻译

原因

特征蔓延的主因常是因为制造商希望提供客户更多用途或更想要的产品,以增加产品的销售及市场占有率。不过当产品已实现所有设计时提出的功能,制造商剩下的选择可能就是增加一些非必要的软件功能,其代价可能是效率的下降;或是固定在某一个版本,代价可能是产品缺乏改善。

另一种特征蔓延的原因是委员会设计最后决定在同一个产品上实现几个不同的设计意图,当越多特征加入以支援某一设计意图时,有些特征需同时支援几个设计意图,往往会使产品的设计变得更复杂。

市场考量:产品生命周期及竞争动力

一个产品的生命周期会经过引入、成长、成熟及衰退四个阶段。以下用Sony的随身听Walkman说明四个阶段,有些阶段容易出现特征蔓延的情形。

引入

Sony提出了一个名为Walkman随身听新产品,可播放录音带内的音乐,并提供最基本的播放、暂停、快转、反转及退出等功能。此时其它潜在竞争者正在观望,看此产品是否会建立一个值得投资的市场。

成长

在此市场有相当成长时,其它竞争者会进入市场,提供消费者更多的选择,其差异常常只是价格及厂牌上的差异。

成熟

在成熟期时,竞争者的产品渐渐进入市场,为了创造了价格以外的差异化,竞争者也会导入新的功能(如“自动反转”、“超重低音立体声”、“慢跑防震”、“防泼水”等)。开拓者为了防止竞争者产品影响市场占有率,也会考虑是否要加入新的功能。在这个阶段中最容易出现特征蔓延的情形,因为开拓者及竞争者都希望用“新颖且改进过”的产品来说服消费者购买,以增加销售量。

在出现特征蔓延后,当开拓者产品的价格开始因为产品的竞争而下降,是产品生命周期已到达成熟期的有力指标。有些人则认为成熟期是出现在产品的机能已经饱和的时候。

衰退

过时是衰退的主要原因,可能因为时代及技术的进步,市场领导者的技术已不是主流。例如1980年代随身音乐播放的平台是录音带,1990年代是CD,2000年代则是MP3。当主流平台调整时,原来的平台就变得过时。

影响

特征蔓延会导致一系列的后果,包括但不限于使产品远远超过当初规划的范围,从而导致产品时程增加[4]

例如在电子游戏领域,《幕府将军:全面战争》的开发过程中,最初只是设计成战斗模拟游戏[5],但后来产品膨胀,产生了一些后遗症。而在操作系统领域,微软的Windows Vista本来只是Windows XP后的一个小改版,之后再衔接Windows 7,但后来变成大型改版,因此花了五年的开发时间。

特征蔓延更常见的后果是导致产品成本增加,使产品变的比原来预期的更贵,反而使产品的销售量下降。特征蔓延也可能结束产品的生命周期。

控制

有许多方式可以控制特征蔓延:包括严格限制可增加的机能、允许产品有多种衍生机种,各变体中有不同的机能、删除一些过多不必要的机能。

若产品在设计初期就有好的软件架构,例如机能及资料存取的逻辑分离等作法,可以避免一些开发后期的特征蔓延。利用严格的变更管理,或将变更延后至专案较后期的交付阶段也可以有效的控制特征蔓延[6]

另一种控制特征蔓延的方式是让产品有几个不同的衍生机种,而新增特征只在其中部分机种中出现。新特征持续增加的过程中,系统的资源可能会不敷使用,因此一般会特别维护一个只有基本特征的核心版本,以确保在系统资源较少时,此版本仍能正常工作。根据80/20法则,80%使用者只会使用到产品的基本特征,这些使用者用的产品不需被另外20%使用者提出的新特征所影响。产品仍然可以有新的特征,只是新的特征不需放在所有衍生机种中。

有时一些特征的维护成本高到无法接受的程度,此时删剪一些不需要的特征。新版本的产品可能可以直接省略特征,也有可能在这些特征完成移除前,需要一段时间进行切换,切换过程中这些特征会标示为不推荐使用。若此产品有几个不同的衍生机种,可能其中一些会初逐步淘汰。

相关条目

参考资料

  1. ^ J.M. Sullivan. Impediments to and incentives for automation in the Air Force. Proceedings. 2005 International Symposium on Technology and Society, 2005. Weapons and Wires: Prevention and Safety in a Time of Fear. ISTAS 2005. 2005 International Symposium on Technology and Society. 8–10 June 2005: 101–110. ISBN 0-7803-9284-1. S2CID 21079766. doi:10.1109/ISTAS.2005.1452719. 
  2. ^ Featuritis (or creeping featurism). [2023-06-22]. (原始内容存档于2023-06-09) (英语). 
  3. ^ Davis, F.D.; Venkatesh, V. Toward preprototype user acceptance testing of new information systems: implications for software project management. IEEE Transactions on Engineering Management. 51. February 2004, 51 (1): 31–46. ISSN 0018-9391. S2CID 1204079. doi:10.1109/TEM.2003.822468. 
  4. ^ Davis, F.D. and Venkatesh, V., Toward preprototype user acceptance testing of new information systems: implications for software project management, IEEE Transactions on Engineering Management, 51 (IEEE Transactions on Engineering Management), February 2004,, issue 1 (1): 31 [2012-10-13], ISSN 0018-9391, doi:10.1109/TEM.2003.822468, (原始内容存档于2014-05-19) 
  5. ^ The Making of: Shogun: Total War页面存档备份,存于互联网档案馆), By Kieron Gillen, August 24th, 2007, Rock, Paper, Shotgun
  6. ^ Kenneth S. Norton, Applying Cross-Functional Evolutionary Methodologies to Web Development, paper in Web Engineering: Managing Diversity and Complexity of Web published by Springer, 2001, ISBN 3-540-42130-0