计算机科学

首页 > 计算机科学

特征蔓延

2018-09-03 09:38:47     所属分类:反模式

特征蔓延Feature creep)是指一产品(像电脑软件)的软件机能持续膨胀或增加的情形[1]。产品基本机能以外的扩充机能,会使产品比原始设计要更复杂。长时间来看,额外或不需要的机能慢慢的进入系统中,使系统超出原来设定的目标。

目录

  • 1 原因
    • 1.1 市场考量:产品生命周期及竞争动力
      • 1.1.1 引入
      • 1.1.2 成长
      • 1.1.3 成熟
      • 1.1.4 衰退
  • 2 特点
  • 3 控制
  • 4 结果
  • 5 相关条目
  • 6 参考资料

原因

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

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

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

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

引入

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

成长

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

成熟

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

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

衰退

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

特点

特征蔓延是产品成本及时程增加的常见原因之一[2]。特征蔓延会造成危害,甚至可能会结束一个产品及专案。

控制

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

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

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

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

结果

有时失控的特征蔓延会使产品远远超过当初规划的范围。例如《幕府将军:全面战争》一开始只是设计成战斗模拟游戏[4],但后来产品膨胀,产生了一些后遗症。微软的Windows Vista本来只是Windows XP后的一个小改版,之后再衔接Windows 7,但后来变成大型改版,因此花了五年的开发时间。特征蔓延更常见的后果是使产品变的比原来预期的更贵,因此反而使产品的销售量下降,或是结束产品的生命周期。

相关条目

  • 格林斯潘第十定律
  • 任务蔓延英语Mission creep
  • 过度设计英语Overengineering
  • 范围蔓延
  • 第二系统效应
  • 软件膨胀英语Software bloat
  • 软件设计文件
  • KISS原则:设计当中应当注重简约的原则
  • 简约主义 (电脑)英语Minimalism (computing)
  • 插件
  • Unix哲学

参考资料

  1. ^ J.M. Sullivan, Impediments to and incentives for automation in the Air Force, 2005 International Symposium on Technology and Society, 8–10 June 2005: 101–110, doi:10.1109/ISTAS.2005.1452719 
  2. ^ 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, ISSN 0018-9391, doi:10.1109/TEM.2003.822468 
  3. ^ 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 
  4. ^ The Making of: Shogun: Total War, By Kieron Gillen, August 24th, 2007, Rock, Paper, Shotgun
版权声明:本文由北城百科网创作,转载请联系管理获取授权,未经容许转载必究。https://www.beichengjiu.com/computerscience/340483.html

显示全文

取消

感谢您的支持,我会继续努力的!

扫码支持
支付宝扫一扫赏金或者微信支付5毛钱,阅读全文

打开微信扫一扫,即可进行阅读全文哦


上一篇:忙碌等待
下一篇:货物崇拜编程
相关推荐
爱淘宝