技术团队强调业务优先,我是认同的,做开发不能只关注代码,也得理解需求为什么存在,尽量解决实际问题。
但实际协作里,有时谁的诉求最急就先帮谁做,觉得正常流程太慢便绕过去,哪个环节处理不了又由技术团队补上,这些也都被算作业务优先。
这些做法短期内往往有效,甚至容易得到认可。问题通常在更晚的时候出现。
局部的着急不等于整体的优先级
我见过业务方带着一个很急的诉求找到研发,研发正好有时间就先做了。等产品完成调研,才发现其他团队也有相似需求,已做的方案只能解决一小部分,代码又得重新调整。
单独看这次协作,每个人都有合理的理由。业务希望尽快解决问题,研发也表现出了主动性。但双方掌握的信息都不完整,缺少的恰好是产品调研和统一决策所提供的全局视角。
组织设置分工,不只是为了规定谁来写文档、谁来排期。更重要的作用,是让不同位置的人补充各自掌握的信息。绕开其中一个环节,有时确实能节省等待时间,也可能同时失去这个环节原本负责的判断。
所以,主动响应不一定意味着立即开发。研发可以先确认问题、提供技术建议、评估成本,甚至做小范围验证。但在信息不足时直接承诺完整方案,通常是在用确定的投入应对尚未确定的问题。
不断补位会让问题难以被看见
还有一种更常见的情况,某个协作环节长期运转不畅,技术团队为了保证结果,不断承担额外工作。
偶尔补位很正常,线上出了问题得先止损,项目临近交付时,也很难要求每一步都回到理想流程。
但如果补位成为固定做法,组织看到的可能只是“事情最后完成了”。原本存在的信息缺失、流程问题和资源不足,被额外投入掩盖起来。下一次遇到类似问题,所有人仍然会按原来的方式行动,只是继续依赖少数人兜底。
时间长了以后,责任边界越来越模糊,业务认为技术总有办法,技术认为其他环节没有尽责。系统中堆积了越来越多临时实现,团队把大量时间用于救火,等业务效果没有达到预期时,复杂、缓慢而不稳定的系统又会成为最容易被看见的问题。
补位之后,还得记下为什么需要补位、付出了什么成本,看看下一次能不能改变原来的条件,否则同样的问题还会继续靠额外投入解决。
技术团队也有自己的本职工作
当业务需求持续到来时,架构调整、质量建设和工程效率很难表现出同等紧迫性。一个新功能延期,马上会有人追问,一次重构没有开始,短期内通常不会发生什么。
因此,“业务优先”如果只按照眼前的可见收益理解,技术团队很容易把所有时间用于交付需求。代码仍然能运行,功能也在增加,但每一次修改都比上一次更慢,问题排查越来越依赖熟悉历史的人。
保障稳定性、控制复杂度、改善可维护性,同样是在支持业务。区别只在于,它们的收益较晚出现,失败的代价也常常在很久以后才被计算。
技术人员需要理解业务,但不应该因此放弃技术判断。眼前的需求会带来多少长期成本和系统风险,需要技术人员说明,再由相关角色共同决定是否承担这些代价。
主动性的合适位置
现在我理解的业务优先,是先确认要解决的业务问题,再讨论技术方案和协作方式,技术团队不必接受所有请求,也不能因此绕开其他角色。
研发的主动性可以用在很多地方:提前了解业务规划,指出方案中的技术约束,补充产品未掌握的信息,为不确定的方向做低成本验证,或者在问题发生后推动根因改进。
这些事情未必像快速上线一个功能那样显眼,却更有可能减少返工和消耗。
职责清楚也不意味着彼此冷漠。恰恰因为把对方当作专业的合作伙伴,才需要让信息经过必要的环节,让决定由掌握相应信息的人共同作出。
如果一句业务优先就能跳过这些讨论,返工和维护成本最后还是会落到具体的人身上。