看到最近流行起来的“打工人”的梗,在捧腹大笑以后,我也开始严肃地思考程序员这个工种的本质,开始思考“为什么程序员薪资那么高”。现在将思考结果写出来与各位交流,欢迎与我分享你的思考。
程序员工种有何不同
我们程序员在自嘲的时候,总喜欢自称“搬砖工”、“手工艺人”、“和流水线工人没什么区别”。我曾经也悲观地认为这其实就是事实。但是最近经过仔细思考以后,感觉程序员这个工种其实还是有一些不同之处的。
一句话总结:程序员生产出来的是资产 ,一般流水线工人生产出来的是商品 。
资产是一个不断增值的东西,资产是能源源不断产生收入的。而商品的价值在生产出来以后就基本固定了,正常的商品是不会增值的。
程序员的生产成果是代码。代码,只需要以非常小的代价(电费、机器运维),就可以不停运行,一直提供服务,因而不断产生收入。因此代码是一种资产。
而普通的工业产品是不会增值的。对于生产它的公司来说,生产商品就是为了销售出去的。当一个商品被卖出去的时候,它的价值就被全部兑现了,后续不会再给生产者提供价值。
一个极度简化的例子
举一个极度简化的例子,一个公司雇佣了一个程序员,用1个月的时间写出一个软件,可以为客户提供服务。这个服务最终运行了2年。
对于员工来说:
付出了1个月的劳动
收入了1个月的薪资
对于公司来说:
付出了1个月的员工薪资
获得了代码资产
这个资产可以在未来2年不断运行,不断产生收入
软件的边际成本极低,业务可以以极低的成本扩张。客户增加10倍,收入就会增加10倍,而成本可能只要增加0.1倍。一份代码就能服务成千上万的客户,而这份代码可能只用1个人写出来的
第二个月,公司继续雇佣这个程序员,用1个月增加了一个feature,可以为客户提供更大的价值(因此为公司提供更多的收入)。这个feature最终也运行了2年。上面的付出收入表格再次出现。
在这里我们忽略了代码的修bug成本。在管理得当的情况下,软件维护(仅指修bug,不包含增加feature)的成本相比初始开发,以及未来收入来说,是极低的。
循环往复,公司积累了越来越多的资产 。并且,公司可以招募更多的程序员,扩大生产(这里的生产指的是生产资产!),因此资产本身的积累速度也会越来越快。
对于传统工业品生产企业来说,这种资产积累速度只能望尘莫及。
总结
或许这就是当下互联网公司愿意给程序员支付高薪资的原因吧。公司雇佣程序员的时候只需要按照工作时间来支付薪酬,而程序员产生的资产能够
- 低成本持续运行,运行时间远大于程序员的劳动时间
- 低成本扩张,服务的客户数量远大于开发者的数量
因此,严谨地说,将程序员类比成流水线工人的说法,既是正确的又是错误的:
错误的地方在于,程序员生产出来的是资产,流水线工人生产出来的是商品
正确的地方在于,两者都是按照劳动时间来支付薪酬 (当然,有一些公司愿意给员工发放股权激励,相当于将一部分资产奖励给员工)
更恰当地类比,应该是将程序员类比成自动化工厂流水线的设计师。他们设计出来的自动化流水线,只需要提供少量电力和人力就能运行。