两倍多的工程师,并不会交付两倍多的代码。为什么很多老板就是想不明白这道理呢?今天这篇文章,咱们就讨论下这事情。
有时候,两件不相关的事情通过一件事情联系起来后,会让我们产生一些非理性想法,甚至相信一些错误的结论。举个例子,卖冰淇淋与人们晒伤之间存在着一些关系。那么,是否应该禁止卖冰淇淋以减少晒伤和患皮肤癌的风险呢?当然不是了。
咱们在看服务器的数据、股票的走势或者气温的变化时,这些信息通常都是用图表来展示的。但是,要想做出正确的决策,真正用好这些数据,我们就得搞明白这些数据背后到底发生了什么。有时候,这些背后的故事可能并不是那么显而易见的。
冰淇淋销售与晒伤确实有关,但并不是因为吃了冰淇淋就会晒伤。实际上,背后还有一个看不见的第三个因素 —— 温度。温度升高时,人们购买冰淇淋的需求就会增多,就会更频繁地在户外活动,但在户外如果不采取足够的防护措施,那么晒伤的情况就会增多。
相关性
相关性是衡量两个变量之间关系的一种方式。越能通过观察第一个变量的变化预测第二个变量的变化,相关性就越强。作为工程经理,我经常听到客户这样要求:“能不能多派几个程序员来,这样项目就能快点完成。” 他们觉得工作时间和工作量是成正比的,好像多一倍人手,项目就能快一倍似的。但软件开发可不是这么回事。
沃伦・巴菲特说过:“无论你多有天分,也不论你多么努力,有些事情就是需要时间。让九个女人同时怀孕,小孩也不可能在一个月内出生。”
这个假设很直接:一个程序员能写 x 行代码,那么 n 个程序员就能写 n*x 行代码。但在软件开发中,这种简单的乘法并不适用。
我们得认识到,相关性只是告诉我们两个变量之间有某种联系,它并不意味着一个变量的变化是由另一个变量引起的。在软件开发中,增加人手可能会带来沟通成本的增加、项目协调的复杂性,这些都可能降低整体的工作效率。
伪相关
伪相关是指两个变量看似存在统计上的关联,但实际上在现实中没有任何联系。这种关系纯属巧合。
看看这些图表:
我发现,即使是这些看似毫无关联的东西,也能给我带来快乐。尽管我也认为,它们可能真的就是随机的。但我们人类就是喜欢在这些没头没脑的地方找点事情做,这有时候会让我们对世界的看法变得有点扭曲。再说了,不管图表看起来多么漂亮,都不能说明它们之间存在某种因果关系。
因果关系
因果关系就像是两个事件之间的纽带,一个事件直接影响着另一个事件。要想真正搞懂这个世界,我们得弄明白这些因果链。虽然相关性能帮我们找到一些线索,但它不应该成为我们的唯一依据。就拿冰淇淋和晒伤率的关系来说吧,这个例子告诉我们,深挖数据能帮我们更好地理解现实。如果我们用系统性思维方法看问题,就会发现晒伤、皮肤癌和冰淇淋销售其实都是大系统中的一部分。
那我们怎么找到真正的原因呢?这就需要我们去理解人们的行为模式:他们什么时候会去吃冰淇淋,什么时候容易被晒伤。最后我们会发现,原来在天气热了、太阳大了之后,这两个现象就都出现了。这就是系统性思维的魔力,它帮我们把系统中的所有元素和它们之间的互动都联系起来:人类的行为、天气的影响,还有冰淇淋和晒伤之间的联系。
总结
相关性很有价值,因为它就像是给我们指路的明灯,告诉我们该往哪儿去找答案。不过,我们也得明白,数据背后可能还藏着很多东西。现实世界太复杂了,不是一张简单的图表就能完全展示出来的。我们不能只看图表就以为我们啥都懂了,那可不行。