特徵蔓延

维基百科,自由的百科全书
跳转至: 导航搜索

特徵蔓延Feature creep)是指一產品(像電腦軟體)的軟體機能持續膨脹或增加的情形[1]。產品基本機能以外的擴充機能,會使產品比原始設計要更複雜。長時間來看,額外或不需要的機能慢慢的進入系統中,使系統超出原來設定的目標。

原因[编辑]

特徵蔓延的主因常是因為製造商希望提供客戶更多用途或更想要的產品,以增加產品的銷售及市場佔有率。不過當產品已實現所以設計時提出的所有機能,製造商剩下的選擇可能就是增加一些不一定需要的軟體機能,其代價可能是效率的下降,或是固定在某一個版本,代價可能是缺乏改善的產品。

另一種特徵蔓延的原因是委員會設計英语design by committee最後決定在同一個產品上實現幾個不同的觀點,當越多特徵加入以支援某一觀點時,有些特徵需同時支援幾個觀點,往往會使整個的特點變得更複雜。

市場考量:產品生命周期及競爭動力[编辑]

一個產品的生命周期會經過引入、成長、成熟及衰退四個階段。以下用Sony的隨身聽Walkman說明四個階段,有些階段容易出現特徵蔓延的情形。

引入[编辑]

Sony提出了一個名為Walkman隨身聽新產品,可播放錄音帶內的音樂,並提供最基本的播放、暫停、快轉、反轉及退出等機能。此時競爭者正在觀望,看此產品是否會建立一個值得投資的市場。

成長[编辑]

在此市場有相當成長時,競爭者會進入市場,提供消費者更多的選擇,其差異常常只是價格及廠牌上的差異。

成熟[编辑]

在成熟期時,競爭者的產品漸漸進入市場,為了創造了價格以外的差異化,競爭者也會導入新的機能(如「自動反轉」、「超重低音立體聲」、「慢跑防震」、「防潑水」等)。開拓者為了防止競爭者產品影響市場佔有率,也會考慮是否要加入新的機能。在這個階段中最容易出現特徵蔓延的情形,因為開拓者及競爭者都希望用「新穎且改進過」的產品來說服消費者購買,以增加銷售量。

在出現特徵蔓延後,當開拓者產品的價格開始因為產品的競爭而下降,是產品生命週期已到達成熟期的有力指標。有些人則認為成熟期是出現在產品的機能已經飽和的時候。

衰退[编辑]

過時是衰退的主要原因,可能因為時代及技術的進步,市場領導者的技術已不是主流。例如1980年代隨身音樂播放的平台是錄音帶,1990年代是CD,2000年代則是MP3。當主流平台調整時,原來的平台就變得過時。

特點[编辑]

特徵蔓延是產品成本及時程增加的常見原因之一[2]。特徵蔓延會造成危害,甚至可能會結束一個產品及專案。

控制[编辑]

有許多方式可以控制特徵蔓延:包括嚴格限制可增加的機能、允許產品有多種衍生機種,各變體中有不同的機能、刪除一些過多不必要的機能。

若產品在設計初期就有好的軟體架構,例如機能及資料存取的邏輯分離等作法,可以避免一些開發後期的特徵蔓延。利用嚴格的變更管理,或將變更延後至專案較後期的交付階段也可以有效的控制特徵蔓延[3]

另一種控制特徵蔓延的方式是讓產品有幾個不同的衍生機種,而新增特徵只在其中部份機種中出現。新特徵持續增加的過程中,系統的資源可能會不敷使用,因此一般會特別維護一個只有基本特徵的核心版本,以確保在系統資源較少時,此版本仍能正常工作。根據80/20法則,80%使用者只會使用到產品的基本特徵,這些使用者用的產品不需被另外20%使用者提出的新特徵所影響。產品仍然可以有新的特徵,只是新的特徵不需放在所有衍生機種中。

有時一些特徵的維護成本高到無法接受的程度,此時刪剪一些不需要的特徵。新版本的產品可能可以直接省略特徵,也有可能在這些特徵完成移除前,需要一段時間進行切換,切換過程中這些特徵會標示為不推荐使用英语deprecated。若此產品有幾個不同的衍生機種,可能其中一些會初逐步淘汰。

結果[编辑]

有時失控的特徵蔓延會使產品遠遠超過當初規劃的範圍。例如《幕府将军:全面战争》一開始只是設計成戰鬥模擬遊戲[4],但後來產品膨脹,產生了一些後遺症。微軟的Windows Vista本來只是Windows XP後的一個小改版,之後再銜接Windows 7,但後來變成大型改版,因此花了五年的開發時間。特徵蔓延更常見的後果是使產品變的比原來預期的更貴,因此反而使產品的銷售量下降,或是結束產品的生命周期。

相關條目[编辑]

參考資料[编辑]

  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, doi:10.1109/TEM.2003.822468, ISSN 0018-9391 
  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