谁该为阿里的彩蛋背锅?
头图来自视觉中国。
圣诞本该是开心的节日,即便有些许杂音,欢乐、祥和的气氛仍然成为了中文互联网的主旋律。
但就在这样的日子,却有很多人因为“圣诞”慌张起来:他们是一群大小机构的产品经理和程序员,在自己负责的项目中,突然发现了这样的奇景:
先别在意那个拼错的 Christmas。除了企业,吓一跳的机构当然也包括部分政府部门:
甚至有一些程序员发消息表示自己已被愤怒的老板开除——这是不白之冤吗?
谁出了问题?
一番 GitHub 热议后,众人终于锁定了罪魁祸首。
这个彩蛋源于许多开发者使用的一个开源产品,来自巨头阿里巴巴的“Ant Design”。在 Ant Design 官网,我们可以看到,蚂蚁金服体验技术部称该产品是一个服务于企业级产品的设计体系。
你可以简单地将其理解为一个开源的 UI 产品,目前其用户包括蚂蚁金服、阿里巴巴、腾讯、百度、口碑、美团、滴滴、饿了么及……受害或未受害的其他用户。
事情爆出后不久,Ant Design 的开发人员便出面解释:这一彩蛋纯属个人行为,与企业无关。此外,蚂蚁很快回滚了代码,并推出了官方修复版本。
我们并无证据得知这位程序员是被蚂蚁推出来“背锅”的,还是这真的只是其个人行为。如果该事件最终被确认为团队乃至公司行为,不知蚂蚁还要牵扯多少麻烦。看看那个拼错的 Christmas(如今已修复),说是个人行为,好像也有些根据……吧?
不过我想起了一个相似的故事。2016 年,阿里“抢月饼”事件曾经引发互联网企业大讨论,那个因为写了“抢月饼代码”而被开除的程序员也曾受到广泛的关注和同情。至于阿里系企业是否有让程序员“背锅”的传统,就不得而知了。
谁遭了殃?
受这件事影响最直接的,其实是和蚂蚁距离最远、最不直接接触的用户,也就是各路机构产品的直接使用者。在中国自然无妨,但在一些比较敏感的国家,产品上突然跳出圣诞节彩蛋,或许是会令用户充满疑惑。如今,与我们远隔重洋的北美,已经有大批无信仰、轻信仰者不说“Merry Christmas”而改称“Happy Holiday”。
这自然由于北美的信仰较为分散、复杂,但在另一些信仰相对集中但并非基督教信仰的国家,事情可能会更糟。已经有人声称自己在伊朗的项目也出现了彩蛋问题,如果是真的,只能祝老兄好运。
但受影响更大的可能是应用 Ant Design 的企业。对用户来说是个文化层面的问题,企业则需面对安全、稳定、可控等一系列质疑。毕竟,自己的产品中冒出个自己不知道的彩蛋,那是不是意味着今后也可能出现其他自己不知道的情况呢?而且,手忙脚乱的追责、修复工作,想必也给企业带来了不少直接困扰。
不过被坑得最惨的,恐怕还是这些产品的具体开发者和负责人,也就是 Ant Design 最直接的用户。事发时,他们的慌乱想必不在自己老板之下;考虑到一些开发者比较“菜”,可能一时半会儿连病根儿都查不出来,他们的血压要飙到多少?此外,如果一些开发者并未对雇主或客户讲清楚自己用了开源设计,那么他们又该怎样解释这口“天降大锅”?
对有些人来说,可能真不只是开除那么简单。
谁该背锅?
不管怎样,事情已经发生了,有人要为此负起责任。那么,谁该负担损失,或者说,谁的责任更大些?
我们应该注意到一个细节:该彩蛋源于 2018 年 9 月 10 日的一次升级,且官方并未声明。那么,使用 Ant Design 并遭遇彩蛋的开发者就此分为两类:在 9 月 10 日前使用并于当天 merge 代码的,在 9 月 10 日后才首次开始使用的。
对于前者而言,他们要查看的升级内容相对较少,但考虑到官方日志并未提及这次彩蛋,没发现恐怕要一半怪自己、一半怪蚂蚁了。
但对于那些 9 月 10 日后使用,一开始便将 Ant Design 作为一个“企业级产品”来使用的初体验者而言,让他们完整 review 该开源产品未免有些苛求——不排除一些大企业有专人负责此类工作,但对于绝大多数小微企业乃至已经有相当体量的企业而言,完整 review 开源代码都并非确定的工作流程或某种职位的义务,遑论企业外的其他机构。
这是为什么?在客观上,review 完整代码的工作量实在太大,对很多开发者而言,如此开源还不如自己重写;在主观上,使用开源的基础组件(Ant Design 绝非某种特定功能组件),追求的本来就是稳定、可控、高效,结果该组件并不能如愿,那到底是谁的问题呢?
在 Ant Design 官网,我们可以看到“用最小的工作量”是 Ant Design 迄今引以为豪的一句宣传语,不知道这句宣传语潜在的含义是否是“用最小的工作量,但你要花绝大精力去 review 一遍”。
而且,强调 Ant Design 是企业级产品同时,蚂蚁还突出了“确定”和“自然”的价值观。突然冒出来的圣诞彩蛋,恐怕在任何人眼里,都既称不上“确定”也称不上“自然”吧?
无论如何,在产品(无论是否开源)里擅自添加彩蛋并且默认开启,绝不是单个程序员该做的事情。如果该行为并非来自个人而是来自团队,那么蚂蚁团队或许该重新审视自己在表面上反复强调的价值观了。