平时大家做研发的过程中,肯定经常遇到需要自己做决策的时候。不管是技术决策,还是团队管理上的决策。有时候为了追求完美经常迟迟难下决定,导致实际工作反而难以推进。
前几天团队就遇到一个这样的问题:
项目中有个技术难题交给同事A,并且项目进度非常紧急,结果过了两天迟迟没有开展。所以就询问了一下情况。原来A同事为了方便后续扩展,一直苦思冥想方案的兼容性。然而考虑的扩展功能可能很难规划到产品中。另一方面是迫在眉睫的deadline。
所以我就建议他考虑一下另一种方案,先把目前的问题解决。虽然最后采用了这个建议,但是说服过程相当困难,还有点不愉快。事后我也有一点自我怀疑,我的决定真的正确吗?好在后来我找到了答案。
极客时间的《研发效率破局之道》专栏“Facebook的10x程序员效率心法”提到一个快速迭代的原则:
不要追求完美,不要过度计划,而是要尽快实现功能,通过不断迭代来完善。优秀的架构往往不是设计出来的,而是在实现过程中逐步发展、完善起来的。
Facebook 有一条常见的海报标语,叫作“Done is better than perfect”,意思就是完成比完美要重要。要实现快速迭代,我们在设计和实现功能时都要注意简单化。
有些开发者过于追求技术,投入了大量时间去设计精美、复杂的系统。这样做没有问题,但一定要有一个度,切忌杀鸡用牛刀。因为复杂的系统虽然精美,但往往不容易理解,维护成本也比较高,修改起来更是不容易。
所以,在 Facebook 进行开发的时候,尽量使用简单实用的设计,然后快速进行版本迭代。
亨利·明茨伯格《写给管理者的睡前故事》有一章《决策:与你的想法不同》写的很有意思,下面是部分节选,祝开卷有益。
我们是怎么做决策的?很简单。首先诊断,接下来设计(可能的解决方案),然后决定,最后执行(把选择付诸行动)。换句话说,我们是先思考后行动,我把这个叫作思考先行。
你一生中最重要的决策可能是:寻找伴侣。你是思考先行的吗?我们以一位男性寻找女性伴侣为例,使用下面这个模式:首先列出你希望未来伴侣拥有的一些品质,如聪颖、漂亮、羞涩;接下来列出所有的可能人选;然后进行分析,根据上述标准给每位候选人打分;最后把分数加起来看谁胜出,并告知这位幸运的女士。
可是,她却告诉你:“你在忙活这些的时候,我结婚了,现在已经有几个孩子了。”看来,思考先行还是有缺点的。
所以,你可能会用其他方式来寻找伴侣,就像我的父亲那样。有一天,他跟我的奶奶说:“今天,我遇到了一个我想跟她结婚的女孩!”我跟你保证,这个决策里面真的没有多少分析,不过它的结局很圆满。我父母的婚姻长久而幸福。
我们把这称为“一见钟情”。作为一种决策模式,我称之为视觉先行。如果你知道有多少重要的决策是这么来的,可能会大吃一惊。比如,面试不到两秒钟就决定聘用某人,或者购买某设备的原因仅仅是你看上了这个地方。这些决策不一定是一时心血来潮,有可能是真知灼见。
但是,不要仓促下结论:还有另外一种更明智的决策方式,我称之为行动先行。你可以想象如何用这种模式来寻找理想的伴侣。这么说吧,不管是做大决策还是小决策,当你不确定该怎么做的时候,你可能需要先行动后思考,而不是先思考后行动。你先进行小幅度的尝试性行动,看看是否奏效,如果没效果,就换另一种方式,直到找到有效的方式,再放开手去做。也就是摸石头过河。
当然,这种方式也有它的弊端。研究决策的特里·康诺利教授对此曾有妙语:“核战争和生孩子这样的事情就不适合用‘摸石头过河’的战略。”但是,在众多决策方式中,这种决策方式应该是一种完美的方式。例如,你本来打算把一个产品染成蓝色,但最后,你可能卖出的是彩虹色的产品。
你现在需要做一个重要的决策吗?好,先不要想了,明天四处看看!然后干点儿什么!到那个时候,你可能就会发现你的想法完全变了。
大师幽默的口吻在其它章节也处处可见,大家感兴趣可以看看,微信读书就有。
大家如果有启发,可以关注铁柱,大家进群交流一下日常开发中遇到的问题。