程序员的商业思维:学会算账
“大家买东西时首先看的是什么?”
对于这个问题,除非家中巨富或有矿,十有八九都会回答:“价格”。这是一个非常实在的答案,一般情况下也不会有什么问题,即使买错了,因为已经是价格导向了,所以损失还能让人接受。然而,正如前文所说的,现实世界是复杂的,如果单看价格,并不能让你得到最优的结果。
想想看,“2 个月工资 5k 的程序员”等同于“1 个月工资 10k 的程序员”吗?
单从人力成本上来看,二者的确可以划上等号。可是换个角度,从产出上衡量,他们之间是否仍然相等呢?显然不可能,正如“10 个怀孕 1 个月的孕妇无法生出宝宝”,假如经验和能力不达到一定的水准,人数再多也无法解决问题。
购买行为不是简单地看价格,它还涉及到:实用性、可维护性、耐用性等多方面的因素。让我们在例子中体会一下这其中的玄妙,以及不同选择对你影响。
有次,我参加国内某云厂商组织的活动,当主办方开始介绍自家的 RDS 时,底下有一哥们用他那不算小的嗓门发表了一通言论,大意是:相比起云主机,RDS 价格偏贵,不如自己买云主机搭建划算。
对于这个问题,没有办法简单地说对或错,但我们可以先算算账。
仅仅搭好数据库显然不是目的,真正的目的其实是为了获得持续可用的数据库能力。这其中通用的成本构成如下:
- 云主机,视可用性的要求可能还不止一台;
- 数据库软件,分为开源免费和商业收费;
- DBA,管理整个数据库环境;
- 运维人员,管理服务器环境;
- 时间,运维人员和 DBA 之间的沟通要花时间、DBA 维护环境要花时间(初始化、日常备份、灾难恢复);
有经验的朋友会说,运维环境的时间可以通过自动化节约掉。没错,但这对人的要求又上了一个档次,导致人力成本又增加了。
相比起自建,云厂商的 RDS 相当于打包好的云主机和数据库软件,如果不考虑数据库软件费用(如采用免费的开源数据库),从价格上来看 RDS 的价格肯定会高于云主机。但另一方面,它大幅降低了其他方面的成本:
- DBA 和运维人员可以合体,并且技能要求大大降低。这是因为两个原因:一方面,云厂商打的就是运维服务外包的牌;另一方面,其提供的服务自带了自动化工具。
- 时间成本和管理成本大大降低,表现在:
- 运维和 DBA 合体之后省掉了沟通成本;
- 环境立等可用。相对来讲,要自行搭建一个高可用的数据库集群环境熟练工也需要 1 天的时间,即便有自动化脚本,半天也是要的;
- 日常备份自动化,默认的备份计划也相对来讲适合大多数场景,同时不依赖于 DBA 的能力和责任心;并且备份不可用的风险大大降低;
- 灾难恢复的时间大幅减少,其过程就是重建环境和导入备份。
此长彼消,大家可以自行对比一下成本。大部分情况下不难得出:还是选现成的服务划算。
那么,什么情况下要考虑自建服务呢?假如你满足以下条件,那就可以考虑自立门户:
- 没得选。比如:没有靠谱的云厂商,或者自己业务跟云厂商有潜在的冲突,未来很有可能是竞争对手
- 自有服务器数量大。在这样的情况下,不自建都不行,最后你算一下账,可能会发现云厂商给你节约的人力成本远小于用服务增加的成本。这时候再盲目选云厂商,那真是脑子进水了。
从上面的例子不难看出,价格其实只是最明显的成本,而其他隐性成本,如人力成本、时间成本和管理成本,也是购买服务时不得不考虑的要素。
另一个隐性成本的例子就表现在外包合作伙伴的选择上。
众所周知,软件项目的失败率相当高,造成这一结果的原因有很多,但其中有一类原因相当典型,不得不说:价格导向。被我戏称为:花一顿杂酱面的钱就想享受满汉全席。我就曾经亲身经历过一位客户希望花 5000 大洋就让我实现一个带工作流引擎的系统,当时我的心理阴影面积可想而知。由此,我学到了一个教训:不要在没有合理预算范围的客户身上浪费时间。
这类客户一方面显然对项目没有基本的认识,另一方面也有意无意忽略了一些这样的隐性成本:
- 沟通成本,通常高水平的合作方会提前告知项目潜在的风险和问题,在前期尽量规避,保证项目正常进行。但若压榨得太狠,合作方要么没能力提出,要么故意不提出。
- 时间成本,这是上面行为的结果,沟通时期埋下的坑必然导致风险增加,交付日期延后。如果项目的时间属性很强,延迟交付必然对客户自身业务有影响。
- 管理成本,强扭的瓜不甜,勉强合作的双方必然有各种暗战。不论合作方有能力还没能力,客户方都不会省心。
同样的情形可以延伸到人员招聘上,因为从最细粒度来讲,员工相当于个人外包合作方。对人员待遇过于克扣难以招到高水平的人才,尤其是对于起步的创业公司,由于其本身就处于招聘战争的劣势(不论是公司知名度还是资金),更不应该将人员待遇作为唯一标准。
至此,相信我能说服你:价格仅仅只是一个显性的因素,但它不是决定购买行为的唯一标准。在很大程度上,除了价格,我们应该花更多的精力去关注于一些隐形成本。典型的隐性成本包括:
- 人力成本
- 时间成本
- 管理成本
- 沟通成本
除了成本,我们还应放眼于所得收益,毕竟:每个收益都有其合理的成本要求。