@Lenciel

软件工程师的匠心

前天去参加年会,来接我的行政部门的同学一开始有些拘谨。聊起来了她告诉我,「我们主任给我说过,技术部的人脾气都很大」。这让我想起前不久和 studyboy 家吃饭,他太太说在公司遇到一个「技术大牛」,一旦要他处理用户提出的问题就会闹脾气:「我怎么知道为什么他那里用不了,我这里用得好好的。」

有的时候我 1:1 或者闲聊的时候,也常常会听到这样的话:「公司让我做的这些项目其实我没有什么太大的兴趣,因为技术上比较落后。」

我在想,做过工程师的人大概都会有这份「手艺人」的傲娇,它本来是好事。

「我不在乎这能赚多少钱,这个建筑的艺术性才是我追求的。」

但是我觉得理解匠心,最核心的部分恰恰是理解,「钱是怎么来的」。

钱是怎么来的,问不同的人这个问题,答案多种多样。但实际上,钱,是用户腰包里掏出来的。当然,你可能花着投资人的钱,但他们给你的钱无非是认可有一天你能帮他们从用户腰包里把钱掏出来。

想明白这点,如何赚更多的钱就很容易想到了:找到办法提升你交付的用户价值。

这句话看起来非常显而易见,但是却有很多的潜台词,对于傲娇的工程师来说,并没有那么直观。这也是这篇文章提醒大家的:

  • 用户不是因为你花的时间付钱(和咨询/律师等行业不同)
  • 用户不是因为你的学识付钱
  • 用户甚至不是因为你个人的产出而付钱

最后一点是尤其反直觉的,但事实就是如此:用户是因为你所在的公司作为一个整体交付的价值掏钱。

如果你想戴上耳机,拒绝任何干扰,写出优美的代码,没问题。你光是做好这件事也能够拿到应有的回报。但是如果你没有努力影响其他人,帮助整个团队提高输出的效率和质量,你对整个公司的贡献是有天花板的:你只能贡献那些优美的代码(我们先不讨论是不是只有你自己觉得它们优美)。

在最近几年看球赛的时候,我发现多了一个统计数据,叫 on-off splits,用来衡量当特定队员在场上或不在场上时球队表现的差异。这是一个很有意思的数据,因为它在传统的按个人输出进行统计之外,加上了个体对整体表现的影响:比如 C 罗全场 12 次射门独中 4 元,但是他刷出这样的数字时,其他人就踢得未必痛快。

这就是为什么,在我们公司对技术岗位的职级提升时,会不断增加「对其他人影响力」方面的考量。这并不意味着你需要成为一个经理(我们的经理是 M 线),而是你需要跳出个人的桎梏,站起来看看有没有办法最大化你交付的用户价值。

抛开职级、收入,这还是一个普适的道理。你的用户不会因为你花了很多时间就用它,也不会因为你功力深背景强代码漂亮就用它,大家只会因为你所在的团队提供了「有用的服务」来用它。

你可能会反驳说,就算我是一个让你满意的工程师,我不仅写好程序,还深入需求分析和交互设计,还构建基础设施,还对每个用户反馈认真对待,和团队一起不断打磨产品,但我根本没法控制多少用户会用我辛辛苦苦做出来的产品。

我只是个研发。

实际上,如果你真的关心通过工作能赚多少钱,你不能只是个好的研发:你的公司能够有什么样/多大规模的用户?处于前期,上升期,还是衰退期?我面试很多高级工程师要他们问我问题的时候,他们都问类似于「我们会用 influxdb 吗」「这边全部生产线都已经上 docker 了吗」「我进来之后是做 DevOps 还是自动化」这样的问题。

而不是:作为创业公司你们在解决用户的什么问题?解决这些问题的产品设计得如何,功能完备吗,体验如何?市场和销售能力如何,和研发的配合顺畅吗?产品盈利情况如何,后续有什么计划?

所以,如果你想成为一个收入不错的高级工程师,那么匠心可能主要体现在,把自己放到一个可以持续交付用户价值的公司里面去,交付用户价值。

颠覆者区块链

去年,技术圈有不少我认识的人投入了加密货币(Cryptocurrency)事业。从辞去工作去专职挖矿或炒币的普通程序员,到和李笑来联手做了 PressOne 的 KnewOne 创始人李路,各个层级都有。

到了 2018 开年,相关的讨论迅速蔓延到技术圈子外。关于各种币/ICO/ETH 的帖子每天都可以看到,各大交易所纷纷开始上相关的期货,李嘉诚也说这东西有风险啊所以我只投了一亿。

所以陆续有人问,你觉得靠谱吗?

我觉得首先,看过比特币的论文就知道,这是一个社会实验。你抱着参与实验的心态投一点是没什么的,但不要玩太大(请参考李嘉诚),毕竟亏了算你的。

其次,各种币的本质是基于区块链的记录。它有价值,是因为有人信,有人信,是因为:

  • 安全性:加密,虚拟,不会被偷也不会被轻易冒用
  • 可追溯:每个币以及它的流转都在区块链里面有无法伪造的记录
  • 不滥发:去中心化(没有政府滥发),有上限(现在比特币每 10 分钟新增 12.5 个,然后每四年减半,最终枯竭)

那么这些观点成立吗?不妨花一些篇幅说一下我对作为基石的区块链的看法。

现在每天都有很多关于区块链的讨论,甚至有的 A 股公司因为说自己做区块链了,就能涨停几个板。人们对区块链感到如此兴奋的原因更多不是技术上有多厉害的创新(当然如果你啥都不懂只是听说,可能也会以为它是个厉害的「技术」)。比如就记账的一个核心指标「每秒交易数」来看,比特币设计之初的理论最大值是每秒 7 笔,Visa 大概可以到每秒5万6千笔。因为实在惨淡,在 2017 年比特币甚至为了提高每秒处理的交易数量出现了一个调大区块的Bitcoin Cash分支(这个后面还会说到)。

区块链真正让人兴奋的地方在于它的去中心化。我们可以回顾一下人类的交易历史,来看看去中心化的魔力在哪里:

  1. 如果对交易特别是远程交易建模,它是典型的囚徒困境。因为买家对货物质量担心,卖家对能否拿到钱担心,缺乏信任交易就无法发生
  2. 解决这个困境一开始是靠信用体系:如果在交易中出现了不好的行为,信用度就会降低,直接影响后续的交易,于是大家都变得守规矩
  3. 随着交通/通讯等科技发展,与陌生人交易变得非常频繁,而信用信息的建立和传播需要时间,解决不了问题,于是出现了第三方监管:从银行,到支付宝,其实它们从事的都是这个角色
  4. 随着交易数量的爆发,第三方监管的问题出现:从事监管的如银行或者支付宝,可以随便抬高手续费,用户只能被宰割。这种问题一般是靠市场化的竞争去调节的:如果你收费太高,用户可以选择其他监管方提供的服务。
  5. 市场化的竞争并不是万能的,特别对于卖家而言,切换服务的成本太高了。于是市场手段之外,还会有问责机制,一般是通过类似行业协会推举委员会的方式进行,比如银行就有SWIFT

可以看到,不管是哪个阶段,都有很多人的参与,而越发展到后面,个别人或者组织的权力变得越来越大。人是有欲望的,有人的地方不但有政治,还会有坑蒙拐骗,贪赃枉法,以大欺小,同流合污。

这时候就有了区块链:用去中心化且无人参与的方式,完成第三方监管。正是因为有了「math-based money」的预期,所以很多人才那么兴奋:没有权力寻租和滥用,没有欺诈。

区块链技术本身并不复杂,却能够构建出这样的蓝图,的确是很有美感的。软件,作为人类所能创造的最复杂的东西,它恰恰也是最自然的:基础简单,规则清晰,在不断的迭代中却展现出造物的能力。

但好像所有欢呼的人都忘记了,软件就是人写的,至少现在还是。我们经常挂在嘴边的康威定律,对区块链来说同样是有效的。

以比特币的区块链为例,一开始,所有规则都是 Satoshi Nakamoto 定的,现在它是一个核心团队在管理。当一些规则变更的时候,特别是类似我说的涉及区块大小这种核心规则的变更时,整个团队里的冲突是非常激烈的,所有人类组织会出现的问题都会暴露无疑。

假设比特币真堕落了,会出现什么情况?我觉得无非是人类交易历史上已经有的解决方案再来一遍。

比如一开始,市场会出现竞争:这大概是各种币井喷式出现的一个很大原因,但也带来了危机。因为市场的总量其实是有限的,每个分支币种的出现,短期内都是对整个盘子里其他币种的稀释,而长期来看,没有排到前列的币种必然变得一文不值:因为交易,特别是线上交易是有群落现象的,大家都会使用排名靠前的币,因为这样才能有足够多的人来和你做交易,而不是干炒牛河。

如果市场竞争解决不了问题,那么会不会衍生出更强监管的机制?目前可以看到的是比特币本身虽然没有这个打算,但是有的币种,比如英国央行推出的RSCoin,以及之后俄罗斯,瑞典等国纷纷跟进发行的各种官方币,在设计上就是有这方面属性的。

但不管是通过市场竞争还是监管问责的方式解决这些历史上已经解决过一遍的问题,我们都可以看出这里面「去中心化」的命题是伪的:虽然作为规则的执行平台,区块链的确有号称的那些优势。但是上面执行的规则,仍然是人类组织来主导和维护的,也就难免引入中心化的管理。

所以区块链技术我觉得最多算是以往的监管方式或者说监管手段上的一个进步,但要说它可以根本性地颠覆现有经济活动的组织方式,我看不出来有这个可能。

这就好比,我们打个不太恰当的比方,如果在某个国家引入区块链来进行选举投票的计票,是不是选出来的老大就不是伟大领袖呢?

对不起,我对你们人类还是持悲观态度的。