范围蔓延的陷阱:如何对那些听起来不错、其实不该做的功能说不

你做出了用户喜爱的东西。现在他们想要一些听起来合情合理、却会把应用带向十个不同方向的功能。这篇文章教你如何判断哪些需求该做、哪些该礼貌地拒绝。

你上线了一个应用。用户来了。而现在你的收件箱里塞满了听起来个个都是好主意的功能需求。

“能不能加一个导出到 Excel?“合理。“发票能不能自动发送?“有道理。“能不能接入 Stripe?“那可是真金白银所在的地方。“能加个手机应用吗?“人人都在要这个。“我们能不能把它做成白标,给我们自己的客户用?“哦,现在连商业模式都出来了。

每一条需求单独看都很聪明。但合在一起,它们听起来就像你在做五个不同的产品。

这就是范围蔓延,它扼杀掉的小型 AI 应用,比技术问题害死的还要多。不是因为你把这些功能做出来了 —— 而是因为你在试图做出来的过程中耗尽了时间、金钱或耐心。

范围蔓延是如何扼杀一个能用的应用的

事情是这样发生的。你对头三条需求说了”好”,因为它们看起来都挺合理。你让你的 AI 构建器把它们加进去。本来一周的活儿花了两周,因为每一个新功能都和已有代码撞上了。现在你有了一个能做五件事的应用,其中三件做得不错,两件做得马马虎虎。

然后第四条需求来了:“能不能有不同的权限级别?“突然之间你得重新思考在每一个页面上谁能看到什么。这不是一个功能,这是架构上的改动。你让你的 AI 构建器去做。它牵动了一切。两周变成了三周。应用变慢了,因为你给每一个视图都加了逻辑。

到了第八条需求,你已经停止为你最初的那批用户上线新东西了,因为你忙着让这台需求处理机器一直转。三个月前喜爱这个应用的人很沮丧,因为他们提的需求一个都没做完。提新需求的人也很沮丧,因为功能迟迟做不出来。

你做出了一个能用的东西。你又因为想做到面面俱到,把它弄坏了。

决策框架

你需要一道关卡。每一条功能需求都要过三个问题:

问题一:这个东西属于这个应用,还是属于另一个应用?

你的第一个应用把一件事做得非常好。一个排程应用就是排程。一个开票应用就是开票。它们是不同的应用。如果有人让你的排程应用去开票,你不是在加一个功能 —— 你是在让一个排程应用去做财务。那是另一个产品。

一个好用的检验方法:“如果我把这个功能单独拿出来上线,会有人愿意买它吗?“如果会,那它八成属于另一个应用。如果答案是”不会,它只有作为更大那个东西的一部分才说得通”,那你做的范围就是对的。

你会收到类似”接入我们的 CRM”这样的需求。它真正的意思是”成为你自己的 CRM”。那是另一个应用。你以后可以接入一个 CRM,但你没法在不变成一个 CRM 的前提下,加进一整套 CRM 的功能。

问题二:这是解决你大多数用户的问题,还是只解决这一个人的问题?

某个客户喜爱你的应用,并且有一个功能点子。那是他真实遇到的问题,但同时也是只有他一个人才有的问题。

如果你有二十个用户,其中一个在要某样东西,那就查一查:另外十九个也在等这个吗,还是这个人刚刚才想到的?你可以直接问他们:“在你之前,你有没有想过去问问别人需不需要这个?“通常答案是没有。

这是个危险的问题,因为提出需求的那一个客户可能恰恰是你最重要的客户。你也许需要让他满意。那是一个商业决策,不是产品决策。但要心里有数地去做:如果你为一个客户做一样东西,你不是在发展你的应用,你是在经营一桩咨询生意。

问题三:这要花什么代价,又会给最初的那个想法带来什么代价?

每样东西都有代价。导出到 Excel 要花你的工程时间,要让你的应用更复杂,要花掉专注力。把它做了,而不去做一个用户每天都抱怨的性能优化,那你就做出了一个选择。

具体地问:“如果我做这个,我就不做什么?“如果答案是”什么都不少做,我们有无限的时间”,那你不诚实。我们没有。时间是有限的。

给最初想法带来的代价往往是看不见的。当你深陷在功能需求里,你就停止了维护人们当初喜爱你的那个核心。核心变慢了,核心变得更多 bug 了,核心给人一种被冷落的感觉。最终人们离开了,因为那个曾经很棒的应用现在只是马马虎虎,还做着它从未被设计去做的事情。

一个真实的例子:客户登记表

有人做了一个简单的客户登记表。客户填写,教练查看,然后约时间。这就是这个应用。

需求一:“我能给紧急的登记打个标记吗?“可以,这是核心流程的一个变体。做。

需求二:“我能把登记导出成 Excel 留档吗?“这是一个文档功能。这不是这个应用的职责。登记信息存在应用里。如果他们需要 Excel,可以复制粘贴。但好吧,导出作为一种便利或许说得通。做。

需求三:“登记能不能自动创建日历事件?“现在你在做排程了。这个应用是为登记做的,不是为排程。如果有人两个都想要,他们很可能想要一个真正的排程系统,而不是一个硬粘上去的拼凑货。礼貌地拒绝。

需求四:“教练能不能通过短信发送登记后的跟进?“现在你成了一个通讯系统了。不行。

到了需求三,你就触到了边界。这个应用是登记。其他任何东西都是另一个应用。你以后可以接入那些应用,但你没法在不变成那些应用的前提下把它们加进来。

如何说不

最难的部分其实是把”不”说出口。你不想让你的用户失望。

诚实地说:“这是个好主意,但它和我们在这里做的东西是不同的产品。我们做的是 [你的那一件事]。如果我们去做排程、开票或 CRM 的活儿,我们会在每一件上都做得还行,但没有一件做得出色。”

通常客户会理解。他们提出需求是因为这个点子刚好闪过脑海,而不是在考验你。

有时候他们会反驳。“可我两个都需要。“这时候你就推荐:用真正的排程应用,用真正的开票应用,用真正的 CRM。然后用这个应用去做它擅长的事。这才是诚实的回答。

想要面面俱到的诱惑

做一个小产品最难的部分就是说不。说不感觉就像把钱白白留在桌上。万一那个客户真的两个都愿意付钱呢?万一那个功能真能让你大上十倍呢?

也许吧。但如果你做不出来,你就成不了一个大上十倍的产品。你只会是一个做五件事都做得很糟的半成品。喜爱核心的人很沮丧,想要新功能的人也很沮丧。而你把自己逼进了一个死角:每加一样新东西,都得先把五样旧东西重构一遍。

能成长起来的产品,是那些把一件事做得非常好、然后再小心翼翼地添加的产品。它们不会从第一天就想着成为 Salesforce。它们是当你需要做那一件事时会去伸手够的那个应用,是你做那件事时信得过它又快又稳的那个应用。

说不。守住核心。做到这些,你就会做出一个人们真正愿意用的东西。