每个开发者,都曾梦想着用代码构建世界。
我们享受从0到1创造的纯粹快乐,享受用技术解决问题的成就感。
但不知从何时起,键盘敲下的不再是创造的激情,而是一次又一次的妥协。
无声的代价
需求来的时候,总是很紧急很重要而又不怎么合理:先这样,以后再改。接受不合理的需求,可能会得到一时的和谐与安宁。但付出的,却远比我们想象的,要多。

技术债
技术债,一般不会在妥协的瞬间就爆发,但它更像一种慢性病,悄无声息地侵蚀着代码健康。
今天写下的临时代码,明天就可能成为别人重构时,不敢触碰的祖传代码。
渐渐地,简单的需求开始耗费数倍的精力,修复一个bug总会触发更多意想不到的问题。创造的快感消失了,取而代之的,是在自己搭建的迷宫里,作为消防员疲于奔命的无力感。
机会成本
人的精力是有限的。
当我们的时间被大量不合理的需求所占据时,我们便失去了思考和创造的空间。
本该用于创造、重构、学习的时间,却困在了修补的循环里。我们从探索者,沦为了修补匠。
专业贬值
专业,意味着有判断,有取舍。无底线的妥协,会让我们自己的专业判断力变得廉价。
当我们只是机械地执行,不再去问为什么,不再去思考有没有更好的方式的时候,便抛弃了用专业知识解决问题的能力。
久而久之,别人的尊重可能会越来越少,因为我们似乎什么都可以做。在日复一日的妥协中,我们也可能逐渐失去了对技术卓越的追求。
拒绝的艺术
我们的目标不是拒绝,而是达成更优的共识。通过专业的方式,引导模糊、不成熟的想法,走向清晰、有价值的方向。
数据驱动
面对一个需求,最高效的沟通方式,是把我觉得换成数据显示。
当产品经理说:我想要一个酷炫的动态皮肤功能。
如果回答:这个很难做。
回答苍白无力,基于主观判断,显得很敷衍,像是在推活。
不妨这样回答:这个想法挺有意思。初步评估,工作量大概要15个工作日,不过,可能会让我们的应用包体增加3MB,首页加载时间延长200毫秒。考虑到我们目前的核心目标,是提升用户留存率,这个功能的优先级是否需要重新评估?或者,我们可以先做一个A/B测试版本,先来验证用户的真实需求?
用数据说话,把选择题抛回给对方,让决策基于事实,而非感觉。
替代方案
当业务方提出一个复杂、耗时、价值存疑的需求时,直接拒绝很容易引发对立。我们可以先理解其背后的真实目的,并提供一个成本更低、见效更快的替代方案。
举栗,面对一个能导出几十种维度组合的自定义报表的需求,可以这样回应:从零开发一个报表系统,要一个多月。其实我们要的,无非就是看数自由。我有一个思路,把核心数据接入现有BI系统,需要什么拖拽生成即可,基本覆盖90%需求。是否可行?
我们需要展现出我们解决问题的诚意,不是对抗问题的态度。
明确边界
最理想的状态,是让拒绝这个动作本身消失,代之以一个所有人都认可的、制度化的流程。
建立明确的需求评审、变更和发布流程。让每一个需求的提出者都清楚地知道,任何一个想法,从诞生到上线,都需要经过一系列严谨的评估环节。
当流程成为共识,许多不成熟的想法,在提出之前,就会被自我过滤掉。

从被动到主动
与其被动地过滤需求,不如主动地定义价值。

深入业务
对业务的理解深度,决定了判断一个需求价值的高度。
只有当真正理解产品的商业模式、用户的核心痛点、市场的竞争格局时,我们才能提出比产品经理更深刻的见解。
也才能在需求评审会上,从一个被动的执行者,变成一个主动的参与者,甚至是一个方向的引导者。
技术影响力
一个人的专业能力,只有被他人理解和认可时,才能转化为影响力。
定期组织技术分享,向团队成员(包括产品、运营、设计)布道技术的实现原理、边界和可能性。让他们理解,一个小小的改动背后,可能涉及到底层架构的巨大调整。
当他们对技术有了敬畏之心,不合理的需求自然就会减少。
向上管理
很多时候,问题的根源不在于提出需求的个人,而在于团队的目标和资源分配本身。
主动与直接上级、甚至更高级别的管理者沟通,对齐彼此对项目优先级的理解。确保大家在什么是最重要的事上达成共识。
当整个团队的目标是清晰且一致的,那些偏离主航道的、不合理的需求,便失去了生存的土壤。
写在最后
所谓专业,就是知道边界在哪。守住边界,不是为了制造冲突,而是为了保证最终的交付质量。
高质量的交付,才是最硬的通货。别让无意义的需求,稀释了作品的价值,也稀释了我们自己的价值。
评论