他到底干了啥两种本事,别搞混最扎心的等式想不被埋没,做好三件事
中午吃饭的时候刷了下公司群,一条通报让我筷子差点没拿稳。
公司公开表扬了一个技术攻关项目的参与人员,名单拉出来一看:有搞硬件的,有做测试的,唯独没有做软件的。
我第一反应是这不对劲,直接去问攻关负责人:一个产品的技术攻关,怎么可能在软件这边一点动静都没有?没有软件改代码、调参数,这产品能好使吗?
我又把疑问递给了老板,他回了句:“确实没看到软件有什么动静。”还顺带劝我别激动。
这事的主角是一位老程序员。那个攻关项目前前后后折腾了一两年,最早的状态是设备距离稍远一点就卡得没法用,现在做到了流畅稳定。
中间软件那一部分,恰恰就是他做的。他做的事包括:
- • 把问题拆成几个可能的方向,逐个排查
- • 在其中一端做了重连机制
- • 一遍遍调参数
- • 判断某个功能应该放在哪一端改才最合理
最后落下来的改动很小。小到什么程度?小到领导觉得“软件没什么动静”。
委屈和不平涌上来很正常。但他冷静下来后想明白了一件事:这事背后藏着一个所有技术人都该看清的问题。
这位老哥从业多年,在一家公司干过九年,把视频设备的接入能力提升了一倍多,还从零重构了跨平台版本。他早年重写回放模块时,用抽象的思路把结构理顺,结果后来再加“即时回放”这种新功能,简单得像顺手的事。而一年前他在老版本上加类似功能,那种牵一发动全身的痛苦,他至今记得。
从那以后他认准一个理:设计阶段的核心能力,是化繁为简——面对一堆乱麻一样的表象,抽象出结构、找到规律、定好层级。有人总结过一句话他特别认同:
优秀的架构师把复杂问题简单化,把简单问题解决掉;拙劣的架构师把简单问题复杂化,复杂问题把自己给解决掉。
但光会化繁为简不够。去年他们做一个新形态的客户端,因为主体产品都有了、接口也定好了,内部所有人都觉得“这个很简单”,找第三方合作结果进展慢得要死。他反思后发现问题出在轻敌上,赶紧向领导建议:战术上必须重视,必须分解。
这就是执行阶段的另一种本事——化简为繁:把一个看起来简单的任务反过来拆开,把细节想透、把风险前置。两者关系看这张表:
发生在哪个阶段 | 化繁为简: 设计阶段 | 化简为繁: 执行阶段
具体在干嘛 | 化繁为简: 抽象结构、找规律、定层级 | 化简为繁: 拆细节、排风险、想透每一脚
最终产出 | 化繁为简: 一个判断、一个结构、几行改动 | 化简为繁: 一份拆解清单、一堆提前发现的坑
别人看得见吗 | 化繁为简: 几乎看不见 | 化简为繁: 全都看得见
它们不是对立的,是同一个技术人的两种能力:先化繁为简,才知道劲往哪儿使;再化简为繁,才知道这一脚踩下去会不会塌。
回到表彰名单那件事。他坐在食堂里想了很久,想明白了一个残酷的规律:
你把难事做简单了,别人就以为这事本来就简单。
化简为繁的产出全是看得见的:分解清单、讨论记录、修了一堆问题、忙了很久。而化繁为简的产出呢?最后只留下“调了几个参数”“否决了一个方案”“改了几行代码”。
“想清楚”那一段,不留痕迹,不产生提交记录,没法被度量。它发生在你坐在食堂的时候,发生在你盯着现象发呆的时候。
更扎心的是:这活干得越纯熟,效果越明显。新手要改三天,你三行搞定——结果反而是你显得更不重要。
那怎么办?这位老哥想了三条路,我觉得每一条都实在:
- • 把“想”的过程留下来:文档、评审记录、方案对比都算。不是为了邀功,是让看不见的认知成本变得可见。他庆幸自己早年养成了写博客、写专利的习惯——在他自己说不清的时候,这些东西替他说了话
- • 把结果量化:“优化了无线”没有力量,“从卡顿到流畅、稳定性提升数倍”才有力量。价值必须翻译成别人看得懂的单位
- • 别等别人来发现:等待是最差的策略。要么自己讲出来,要么换一个看得懂你的地方
化繁为简是慢功夫,“想清楚”这一段没人给你计时。但它几乎是唯一不返工的路——你花在想上的时间,跟别人花在反复返改上的时间其实一样多,只不过你那一段没人看见而已。
多想一层再动手,多拆一层再下手。
你有没有过“功劳明明是自己的,却没人看见”的时刻?评论区聊聊,让大家看看这种憋屈到底有多普遍
热门跟贴