0%

功能膨胀:软件开发中“合谋的必然”

功能膨胀是什么?

功能膨胀(Feature-creep),在产品开发过程中,不断添加新功能,直到产品变得过于复杂或臃肿的现象。

要注意该现象的发生时机,它并没有否定功能数的增加对产品的正面影响,它描述的现象基于这样一个统计事实:“功能数-用户满意度”曲线是典型的钟形曲线(或叫“倒U型曲线”)。初始阶段功能数的增加对用户满意度有提升作用,但是随着功能数继续增加,用户满意度将达到顶点(即“平衡点”),功能再继续增加用户满意度将不增反降。而功能膨胀现象,描述地正是钟形曲线的右半部分。

为什么会发生?

我们清楚了,功能膨胀的直接原因是过度增加功能。那不禁要追问:为什么会过度增加功能呢?

增加功能数的初始动力来源于用户侧。

研究表明,使用产品之前,人们会根据其功能数量来判断其质量。因此,为了最大限度地提高初始销售量,公司倾向于打造多功能的产品。所谓,新功能是软件开发和营销的货币。只有增加新功能,公司才能让客户和投资人为软件掏钱。

公司倾向反映到内部,则是:高管或其他决策者要求产品团队为产品添加新功能、销售要求更多的功能点以利于销售、产品需要设计更多的功能以体现能力、研发人员更愿意开发受重视的新功能而不愿意维护旧功能……

这都导向一个结果:需要更多的功能,越多越好,这就是功能膨胀。

有什么影响?

那功能膨胀到底会带来什么影响呢?

回顾一下原因,会发现功能膨胀有一个好处,即它提升了潜在客户的评价——这可能是其唯一的优点。

因为,一旦潜在客户成了真正的客户,使用后即会发现:一个功能膨胀的产品,功能越多,使用复杂度越高,用户体验越差。

从公司角度看,产品的核心价值在被逐渐稀释削弱。

拥有的功能越多,维护的就越多,维护成本就越高。

研发周期的可控性会降低。每一次修改都要考虑以前功能的兼容性,严重拖慢研发速度。最终,公司陷入了自己造成的功能困境,无法快速满足新客户和市场需求。

更可怕的是,整个公司的价值观被扭曲了。产品团队将短期价值置于长期价值之上。研发人员只愿意开发新功能,因为新功能通常会给开发者带来荣誉、晋升和影响力,而维护旧功能没有奖赏。

如何避免?

功能膨胀最终会让公司陷入困境,那应该如何避免呢?

首先,当然是重视产品的核心功能集。

其次,在为产品添加新功能时,必须考虑它们将如何影响设计和用户体验。

笔者见过的一个有效策略是 flomo 笔记使用的。它在用户手册中明确了功能范围,并承诺不随意添加功能,寻求用户监督。

参考

The More Features You Add…