编辑
2026-05-10
记录知识
0

目录

前言
穿针:与利益相关方达成共识
避免鸡同鸭讲的困境
沟通的关键:将技术语言转换为通俗语言
引线:推动关联方协同
问题一:"这对我有什么好处?"
问题二:"这部分我现在不急"
总结
参考资料

前言

架构重构是一场战役,而非一次编程练习。

如果说"有的放矢"是这场战役的战略核心——明确要打什么;那么"穿针引线"就是这场战役的战术精华——在项目开发环境中,你怎么推动大家和你一起干活

当你确定了需要重构的系统,找到了要解决的核心问题,满怀信心地准备开始时,现实往往给你浇一盆冷水:业务团队说没时间、配合团队说优先级不够、产品经理说重构不如做新功能……

此时,技术沟通能力成为决定成败的关键因素。架构师不仅是技术专家,更应该是技术"销售"——将技术价值用非技术人员能理解的语言传达出去,争取资源和支持。

今天,我们来修炼架构重构内功心法的第二式:穿针引线

穿针:与利益相关方达成共识

架构重构是大动作,持续时间长,占用研发资源,必然影响业务功能开发。要推动重构项目启动,需要花费大量精力进行游说和沟通——这里说的不是办公室政治,而是与利益相关方充分沟通,确保大家对重构达成一致共识。

所谓穿针,每个角色都有自己的工作安排,你如何找到你这个事情的落脚点,让相关人员都觉得自己是这件事情的利益相关方

避免鸡同鸭讲的困境

技术人员和非技术人员沟通时,经常搬出一大堆技术术语。但从过往经验看,这样沟通效果往往很差——对方听不懂,甚至可能怀疑你在忽悠人。

看看这些典型的"鸡同鸭讲"场景:

场景一

  • 技术说:"这个按键响应太慢了,因为我们的中断延迟太高,而且在中断服务程序里做了太多耗时操作,导致上下文切换不及时。"
  • 产品想:"中断?是打断施法吗?延迟高不就是网速不好吗?我就想让用户按下去马上有反应,你们为什么要在‘中断’里写代码?不能直接写在‘连续’里吗?"

场景二

  • 技术说:"现在出现了严重的优先级翻转问题!低优先级的任务持有了互斥锁,导致高优先级的任务被阻塞,必须开启优先级继承协议来解决。"
  • 项目经理想:"翻转?是屏幕自动旋转吗?优先级不就是VIP通道吗?既然他是高优先级,为什么会被低优先级的卡住?是不是你们代码写反了?能不能把低优先级的杀了给高优先级的让路?"

场景三

  • 技术说:"系统又重启了,肯定是看门狗超时了,主循环里的任务跑飞了或者死锁了,没能及时喂狗。"
  • 运营想:“看门狗?是家里养的那只柯基吗?它为什么会超时?是因为没吃饭饿了吗?还要‘喂’它?我是不是应该给板子旁边放根骨头?”

沟通的关键:将技术语言转换为通俗语言

技术术语在跨领域沟通时很难达成共识。有效的沟通需要做到:以事实说话,以数据说话

以智能门锁的按键响应为例,我们没有直接说“中断延迟太高,中断服务程序耗时过长”,而是整理了:

  • 用户按下按键到锁舌弹出的平均时长(实测1.8秒)
  • 对比竞品数据(行业平均0.5秒)
  • 用户投诉记录(“按完要等好久,以为没反应又按一次,结果开了两次锁”)
  • 实际场景影响(老人带小孩出门时,孩子等不及直接推门,导致门没锁好)

产品经理和项目经理一看,立刻意识到问题的严重性——这才是真正影响用户体验的核心问题。

以系统稳定性为例,我们没有直接说“出现优先级翻转,任务调度异常”,而是整理了:

  • 近三个月产线停机次数(共7次)
  • 每次停机导致的产能损失(平均每次损失200件产品,价值12万元)
  • 现场工程师的维修记录(“系统突然卡死,重启后恢复正常,找不到具体原因”)
  • 客户反馈(“你们的控制器比上一代更不稳定,我们考虑换供应商”)

项目经理和客户一看,系统的稳定性差距一目了然,立刻同意投入资源进行优化

引线:推动关联方协同

除了和上下游沟通协调,有的重构还需要和其他配合系统的团队沟通协调。由于大家都是技术人员,共同语言多,这部分沟通相对容易,但阻力同样存在,主要来自两个问题:

问题一:"这对我有什么好处?"

有的技术人员会简单将对方的疑虑理解为自私,认为对方不顾大局,于是把问题拔高:"你应该站在部门角度考虑"、"这对公司整体利益有帮助"……

这种沟通效果很差。首先,这种拔高太虚,无法明确,不同人理解不一样,无法达成共识。其次,如果方案对公司有利但对某小组没用甚至不利,那可能当前方案本身就不够好,需要考虑其他方案。

有效的策略是:换位思考、合作双赢、关注长期。

站在对方角度思考:重构对他有什么好处?能够帮他解决什么问题,带来什么收益?

以某工业网关项目为例,当时Linux主系统(A53核)与实时控制程序(M7核)通过共享内存直接读写数据。我们的重构方案是:引入RPMsg通信协议,将共享内存改为标准化的消息队列传输,实现异构双系统协同。

对实时控制程序团队来说,短期内改动较大——原有的指针直接访问要改为消息发送/接收,十几个传感器数据处理流程都要调整。刚开始他们觉得重构对他们没什么作用,反而增加了代码复杂度。

后来我们了解到,实时控制团队其实也深受现状之苦:

  • “数据经常错乱要排查”(Linux侧偶尔会越界写入共享内存区域,导致M7核程序跑飞)
  • “要跟着Linux系统同步升级”(Linux侧修改内存布局,M7侧要同步更新链接脚本,否则通信直接失效)
  • “调试极其困难”(出现问题时,两边互相推诿,很难定位是Linux侧写入异常还是M7侧读取异常)

这些问题在引入RPMsg通信后都可以解决。虽然短期内实时控制团队有一定工作量,但从中长期看,他们省了很多事情——数据隔离由硬件机制保证,无需担心内存越界;通信接口标准化,无需关注Linux侧的内存布局变化;出现问题时可以通过消息日志快速定位,责任边界清晰。

通过这种方式沟通协调,实时控制团队很乐意一起做重构。事实也证明,重构后对双方都有很大好处——系统稳定性提升,故障排查时间从平均2天缩短到2小时,后续功能迭代效率也大幅提升。

当然,如果真的出现对公司或部门有利但对某小组不利的情况,可能需要协调更高层级的管理者才能推动。

问题二:"这部分我现在不急"

有的时候,对方的推辞是因为确实有更重要的事情。此时勉为其难也不好——还是那句话:换位思考

大部分重构并不是火烧眉毛才启动的,而是有一定前瞻性的规划。如果对方真的有更重要的事,采取等待策略也未尝不可,但要明确正式启动的时间,如"3个月后开始"、"6月份开始",千万不能说"以后"、"等不忙的时候"这种无法明确的时间点。

方案上也可以灵活:先不做这个系统相关的重构,先把其他需要重构的做完。分阶段处理,在风险规避、计划安排等方面更加灵活可控。

总结

  • 架构重构不仅需要技术能力,更需要沟通协调能力
  • 技术术语在跨领域沟通时往往鸡同鸭讲,需要转换为通俗语言
  • 沟通的关键:以事实说话,以数据说话
  • 推动关联方协同的核心策略:换位思考、合作双赢、关注长期
  • 对于"这对我有什么好处"的疑虑,要站在对方角度分析重构对他的具体收益
  • 对于"我现在不急"的情况,可以采取等待策略但要明确时间节点
  • 方案上可以灵活,分阶段处理,重构不急于一处
  • 合纵连横的本质是让人理解、让人支持、让人参与

参考资料

  • 《软件架构基础》