选最重要的问题
后来才发现,不是所有问题都值得解决
刚开始工作的时候,我有一个很自然的习惯。
看到问题。
就想解决。
软件有一个小Bug。
想办法修。
流程不合理。
想办法改。
有人提出一个技术问题。
查资料,找到答案。
那时候觉得:
解决的问题越多,说明工作做得越好。
这当然没有错。
尤其对于工程师来说。
解决问题本来就是非常重要的能力。
可是工作越来越久,承担的事情越来越多以后,我慢慢发现一个有点反直觉的事实:
不是所有能够解决的问题,都值得花时间解决。
一个问题存在,并不代表它必须被解决
假设一个系统有一个小问题。
修复需要两周。
这个问题一年可能出现一次。
出现以后重新启动一下,五分钟恢复。
应该修吗?
从技术角度看。
当然最好修。
系统没有Bug总比有Bug好。
但现实里还有另外一个问题:
这两周本来可以做什么?
也许可以开发一个客户真正需要的新功能。
也许可以解决另一个每天都在发生的问题。
也许项目预算只剩下两周。
这时候真正需要比较的已经不是:
“这个问题能不能解决?”
而是:
“解决它是不是现在最值得做的事情?”
工程师最容易掉进“看到问题就想修”的陷阱
我觉得做技术的人尤其容易这样。
看到一个不完美的东西。
会觉得不舒服。
代码可以写得更漂亮。
模型可以再提高一点精度。
界面可以继续优化。
数据结构也可以重新设计。
所有这些事情都有合理理由。
问题是:
优化是没有终点的。
一个模型准确率95%。
可以做到96%。
96%以后还可以97%。
但从95%提高到97%,可能需要三个月。
客户真正需要的也许只是90%。
如果不知道什么时候停。
技术上会越来越漂亮。
项目却可能永远无法完成。
有些问题的解决成本,比问题本身还高
生活里其实也一样。
家里有一个小东西坏了。
修理需要花很多时间。
重新买一个可能更便宜。
一辆十几年的车。
这个月修一个零件。
下个月又坏另一个。
每次单独看:
“修一下还能开。”
但把过去两年的维修费用加起来。
可能早就应该换了。
所以判断一个问题。
不能只看:
修复成本。
还要看:
问题发生频率。
问题造成的影响。
未来还会发生多少次。
以及有没有更简单的替代方案。
最重要的问题,往往不是声音最大的那个
这一点在工作中特别明显。
突然来一封邮件。
“Urgent”。
马上有人发消息。
“能不能尽快看一下?”
一个小问题立刻变成今天最重要的事情。
但真正重要的长期问题通常非常安静。
团队缺少某项能力。
没有人每天催。
一个项目的技术路线可能存在长期风险。
今天不会出事。
流程效率很低。
大家已经习惯了。
这些问题不会弹出通知。
所以如果每天只是解决最先来到眼前的问题。
很容易一直很忙。
却没有解决真正重要的问题。
有时候最好的解决方案,是接受它
这可能是工程思维里比较难接受的一点。
世界上很多东西不可能做到完美。
软件一定会有Bug。
模型一定有误差。
项目一定存在风险。
团队也一定会有一些效率不高的地方。
真正成熟的系统,并不是没有任何问题。
而是知道:
哪些问题必须解决,哪些问题可以管理,哪些问题可以接受。
如果一个风险发生概率非常低。
影响也非常小。
解决却需要巨大成本。
接受它可能就是最合理的工程决定。
职位越高,问题只会越来越多
一个人只负责自己的工作时。
每天可能有五个问题。
开始负责一个项目。
变成二十个。
开始负责一个团队。
可能每天有五十个。
如果还用以前的方法:
每一个问题都亲自理解。
每一个问题都找到最佳解决方案。
很快就会发现。
一天24小时完全不够。
这时候真正需要升级的能力,不再只是:
How to solve problems.
而是:
Which problems should we solve?
这两个问题看起来很像。
其实完全不同。
可以用三个简单问题判断
后来我觉得,遇到一个问题可以先问三件事情。
第一:
如果不解决,会发生什么?
第二:
它会发生一次,还是不断重复?
第三:
解决它需要放弃什么?
如果不解决会造成重大影响。
当然优先处理。
如果一个小问题每天重复发生。
长期来看也值得解决。
但如果影响很小。
很少发生。
解决成本却非常高。
那也许可以把它放在那里。
至少现在不需要处理。
写在最后
这些年,我越来越相信一句话:
真正高效的人,不一定解决最多的问题,而是把有限的时间用在最值得解决的问题上。
年轻的时候。
我们通过解决问题证明自己。
这是非常重要的成长过程。
但随着责任增加。
更难的能力开始出现:
排序。
取舍。
接受不完美。
甚至主动决定:
“这个问题我们现在不解决。”
这句话有时候比:
“交给我,我来解决。”
更加需要判断力。
因为资源永远有限。
时间有限。
预算有限。
团队人数有限。
每解决一个问题。
其实都意味着另一个问题暂时不会被解决。
所以真正的问题从来不是:
“我们还能做什么?”
通常还能做很多。
真正应该问的是:
“在所有能做的事情里面,哪几件最值得做?”
然后把剩下的一些问题。
记录下来。
观察它。
接受它。
甚至忘掉它。
因为一个成熟的系统不是没有问题。
一个成熟的人也不是能够解决所有问题。
真正的成熟可能是终于能够看着十个问题。
认真想一会儿。
然后非常清楚地说:
“这三个必须解决。”
“这两个以后再说。”
以及:
“剩下的五个,我们可以接受。”
这可能比解决十个问题本身。
更加困难。
也更加重要。
感谢大家阅读!
你工作中有没有一个大家花了很多时间想解决,后来才发现其实完全可以接受的问题?
#Steemit #职场 #项目管理 #领导力 #工程思维 #效率 #决策 #原创
