选最重要的问题

后来才发现,不是所有问题都值得解决

image.png

刚开始工作的时候,我有一个很自然的习惯。

看到问题。

就想解决。

软件有一个小Bug。

想办法修。

流程不合理。

想办法改。

有人提出一个技术问题。

查资料,找到答案。

那时候觉得:

解决的问题越多,说明工作做得越好。

这当然没有错。

尤其对于工程师来说。

解决问题本来就是非常重要的能力。

可是工作越来越久,承担的事情越来越多以后,我慢慢发现一个有点反直觉的事实:

不是所有能够解决的问题,都值得花时间解决。

一个问题存在,并不代表它必须被解决

假设一个系统有一个小问题。

修复需要两周。

这个问题一年可能出现一次。

出现以后重新启动一下,五分钟恢复。

应该修吗?

从技术角度看。

当然最好修。

系统没有Bug总比有Bug好。

但现实里还有另外一个问题:

这两周本来可以做什么?

也许可以开发一个客户真正需要的新功能。

也许可以解决另一个每天都在发生的问题。

也许项目预算只剩下两周。

这时候真正需要比较的已经不是:

“这个问题能不能解决?”

而是:

“解决它是不是现在最值得做的事情?”

工程师最容易掉进“看到问题就想修”的陷阱

我觉得做技术的人尤其容易这样。

看到一个不完美的东西。

会觉得不舒服。

代码可以写得更漂亮。

模型可以再提高一点精度。

界面可以继续优化。

数据结构也可以重新设计。

所有这些事情都有合理理由。

问题是:

优化是没有终点的。

一个模型准确率95%。

可以做到96%。

96%以后还可以97%。

但从95%提高到97%,可能需要三个月。

客户真正需要的也许只是90%。

如果不知道什么时候停。

技术上会越来越漂亮。

项目却可能永远无法完成。

有些问题的解决成本,比问题本身还高

生活里其实也一样。

家里有一个小东西坏了。

修理需要花很多时间。

重新买一个可能更便宜。

一辆十几年的车。

这个月修一个零件。

下个月又坏另一个。

每次单独看:

“修一下还能开。”

但把过去两年的维修费用加起来。

可能早就应该换了。

所以判断一个问题。

不能只看:

修复成本。

还要看:

问题发生频率。

问题造成的影响。

未来还会发生多少次。

以及有没有更简单的替代方案。

最重要的问题,往往不是声音最大的那个

这一点在工作中特别明显。

突然来一封邮件。

“Urgent”。

马上有人发消息。

“能不能尽快看一下?”

一个小问题立刻变成今天最重要的事情。

但真正重要的长期问题通常非常安静。

团队缺少某项能力。

没有人每天催。

一个项目的技术路线可能存在长期风险。

今天不会出事。

流程效率很低。

大家已经习惯了。

这些问题不会弹出通知。

所以如果每天只是解决最先来到眼前的问题。

很容易一直很忙。

却没有解决真正重要的问题。

有时候最好的解决方案,是接受它

这可能是工程思维里比较难接受的一点。

世界上很多东西不可能做到完美。

软件一定会有Bug。

模型一定有误差。

项目一定存在风险。

团队也一定会有一些效率不高的地方。

真正成熟的系统,并不是没有任何问题。

而是知道:

哪些问题必须解决,哪些问题可以管理,哪些问题可以接受。

如果一个风险发生概率非常低。

影响也非常小。

解决却需要巨大成本。

接受它可能就是最合理的工程决定。

职位越高,问题只会越来越多

一个人只负责自己的工作时。

每天可能有五个问题。

开始负责一个项目。

变成二十个。

开始负责一个团队。

可能每天有五十个。

如果还用以前的方法:

每一个问题都亲自理解。

每一个问题都找到最佳解决方案。

很快就会发现。

一天24小时完全不够。

这时候真正需要升级的能力,不再只是:

How to solve problems.

而是:

Which problems should we solve?

这两个问题看起来很像。

其实完全不同。

可以用三个简单问题判断

后来我觉得,遇到一个问题可以先问三件事情。

第一:

如果不解决,会发生什么?

第二:

它会发生一次,还是不断重复?

第三:

解决它需要放弃什么?

如果不解决会造成重大影响。

当然优先处理。

如果一个小问题每天重复发生。

长期来看也值得解决。

但如果影响很小。

很少发生。

解决成本却非常高。

那也许可以把它放在那里。

至少现在不需要处理。

写在最后

这些年,我越来越相信一句话:

真正高效的人,不一定解决最多的问题,而是把有限的时间用在最值得解决的问题上。

年轻的时候。

我们通过解决问题证明自己。

这是非常重要的成长过程。

但随着责任增加。

更难的能力开始出现:

排序。

取舍。

接受不完美。

甚至主动决定:

“这个问题我们现在不解决。”

这句话有时候比:

“交给我,我来解决。”

更加需要判断力。

因为资源永远有限。

时间有限。

预算有限。

团队人数有限。

每解决一个问题。

其实都意味着另一个问题暂时不会被解决。

所以真正的问题从来不是:

“我们还能做什么?”

通常还能做很多。

真正应该问的是:

“在所有能做的事情里面,哪几件最值得做?”

然后把剩下的一些问题。

记录下来。

观察它。

接受它。

甚至忘掉它。

因为一个成熟的系统不是没有问题。

一个成熟的人也不是能够解决所有问题。

真正的成熟可能是终于能够看着十个问题。

认真想一会儿。

然后非常清楚地说:

“这三个必须解决。”

“这两个以后再说。”

以及:

“剩下的五个,我们可以接受。”

这可能比解决十个问题本身。

更加困难。

也更加重要。


感谢大家阅读!

你工作中有没有一个大家花了很多时间想解决,后来才发现其实完全可以接受的问题?

#Steemit #职场 #项目管理 #领导力 #工程思维 #效率 #决策 #原创