正如Dave Fore曾经说过:“功能是软件开发和市场营销的货币。”在任何软件公司待上一段时间,你就会开始认同这种观点。但随之而来的是后果……
功能膨胀
其中第一个后果就是功能膨胀:可以宽泛地定义为“不断添加一个又一个小功能,直到整个产品被它们淹没”。这听起来像是一件坏事,那么为什么它还在持续发生呢?
多项研究表明,在人们使用一个产品之前,他们会根据产品拥有的功能数量来判断其质量。只有在使用产品之后,他们才会意识到太多功能会造成的可用性问题。
因此,为了最大化初始销售,公司会构建拥有许多功能的产品。但为了最大化重复销售、客户满意度和留存,公司需要优先考虑易用性而不是功能。这引出了软件应用程序不可避免的重新设计周期……设计是永无止境的。
你拥有的越多,你维护的就越多。
功能与维护
另一个关键问题是功能的增加意味着更多的维护工作。每一个发布出去的功能都是对修复漏洞、客户支持以及保持功能运行和更新所需资源的承诺。这些成本在功能发布时往往没有得到足够的考虑。而且,越来越多的功能不可避免地开始拖累公司未来的行动。公司陷入了自己造成的特性泥潭,负面影响了他们快速应对新客户和市场需求的能力,这通常比几个增量功能更为重要。
短期与长期价值
就像消费者的购物决策一样,产品团队的决策也在短期与长期价值之间权衡。在软件公司中推出新功能通常会给你带来赞誉、晋升和影响力。而维护旧功能则远非如此。
对于消费者和产品团队来说,更多功能的前期吸引力通常会胜出,但在这两种情况下,长期后果都在等待。因此,请谨慎航行在功能之海中。
商业公司的软件,最终都会患上一种叫做“功能蔓延”的疾病。
有人曾经说过的:“新功能是软件开发和营销的货币。”意思是,只有添加新功能,商业公司才能让客户和投资人为软件掏钱。
这种说法是有道理的。最根本的原因是,没有用过某种软件的人,会根据功能数量来判断软件的价值。
因此,为了最大限度地提高初始销售量,公司倾向于打造多功能的产品,将新功能源源不断地添加到软件之中,直到它们把整个产品淹没。
问题是太多的软件功能,会带来沉重的负担。拥有的功能越多,维护成本就越高。
这有几点原因。
首先,因为不断添加新功能,软件就不可避免地需要重新设计,软件设计就一直在变,永远无法完成。
其次,每一项推出的新功能,都需要错误修复、客户支持,以及验证是否兼容以前的功能。这些都是巨大的成本。
再次,新功能往往意味着,产品团队将短期价值置于长期价值之上。因为新功能通常会给开发者带来荣誉、晋升和影响力,而维护旧功能是没有奖赏的。产品的长期发展,并没有得到充分考虑。
另外,太多功能会带来软件的易用性问题,让软件的口碑变差。
由于上面这些原因,越来越多的软件功能不可避免地会阻碍公司未来的发展。公司陷入了自己造成的功能困境,无法快速满足新客户和市场需求。