产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

996.ICU 背后:程序员在互联网公司的真实生态

  • 2019-04-08
  • 本文字数:4399 字

    阅读完需:约 14 分钟

996.ICU背后:程序员在互联网公司的真实生态

导读:最近 996 话题持续发酵,引起了社会上不同媒体的关注,包括“工人日报”。InfoQ 编辑也读到了一篇不一样的文章,它站在 IT 产业的视角试图去解析为什么企业会要求“996”工作制,解释“这种结构性压迫”的原因。如果亲爱的读者你们有不同意见,欢迎在文章后的留言区讨论!我们希望以此文带出大家的心声。

本文经授权转载自“川叶聊科技”。


从上周开始,一批在中国各家互联网公司工作的程序员在代码托管平台 GitHub 上建立了项目 996.ICU,向互联网公司的“996 工作制”(朝九晚九,每周六天)等侵犯劳动者权利的企业制度发起了抗议,获得了程序员群体的大量支持。


然而,996.ICU 这个项目的网站很快就被 360、QQ、UC 等国产浏览器以“非法信息”、“保障绿色上网”等理由屏蔽。



图片来自网友 @oiax


于是有人调侃:“中国程序员最大的困境就在于,昨天在 Github 上给反 996 项目加了星,今天就要加班给 360 浏览器、QQ 浏览器、UC 浏览器……更新屏蔽反 996 项目的网址。”


这句话只是一句玩笑,其实很不准确,现实恰恰相反,中国的程序员通常来说并不会直接负责这种工作,中国的大公司通常会把项目进行非常细致的拆解。


就拿这个功能来说,通常的实现方式是:应用的前端预留屏蔽的接口和界面功能,后端给出管理数据下发通道,再做一个供审核人员维护的数据管理后台。这样一来,没有哪个程序员具体地屏蔽了反 996 项目的网址,但几乎每个人又都参与了其中的一小部分。


如果你不是互联网行业的从业者,或者你即使在互联网行业工作,但对基层程序员的生存状态不太了解,那么你就是本文希望面向的读者。

“码农”和车间工人真的挺接近了

让我们从中国的大公司一般如何开发一个浏览器说起。中国程序员的处境如何?这件事情为什么能够迅速传播和有众多响应?了解了这个具体的案例之后,可能会有更直观的理解。


浏览器本身属于技术较为复杂、开发成本很高的软件,但国产浏览器却为数众多。一种复杂、高成本的东西却出现了同质化竞争,这是为什么呢?


这是因为国产浏览器基本都使用了名为 Chromium 的浏览器内核或类似的内核,在它的基础上进行二次开发,所需的开发成本极大下降。Chromium 是 Google 公司基于另外一些开源软件开发的浏览器内核,它本身也是开源软件。


这样做其实是十分正确的。近几十年来信息技术能够突飞猛进,并且越来越多的人成为信息产业的消费者和劳动者,就是因为开源软件成为了互联网的基础设施。由于互联网的基础技术几乎都是开源的,重复的“发明轮子”毫无必要。这使得开发者可以专注于两个方向:对基础技术的深入研究,或对技术应用的开发。


中国的信息技术产业,特别是过去十多年崛起的一些大型互联网公司,他们的重点主要还是在对技术应用的开发上。过去十多年来,中国互联网产业的发展所提供的机会,使得业界认识到:投入到应用中的收益,显然比基础研究的收益更大。


随着这些基础的开源技术开发工具的进步,中国的程序员的入行门槛也越来越低,这和市场对程序员的需求数量越来越多这一趋势又是匹配的。随着资本参与互联网的大战,“快”成为互联网行业的共识。其实由于开源生态的存在,技术开发如今本身已经快得不能再快了,但市场竞争是残酷的,没有最快只有更快。


这就产生了一个矛盾:产业迅速膨胀,从业人员的水分也越来越高,但市场对公司的效率要求也越来越高。在这种态势下,技术应用方面的研发,很容易落入劳动密集型的实质当中



难怪如今程序员往往自嘲为“码农”,意思是“写代码的农民工”。程序员褪去了“智力劳动者”的光环,似乎成为了和车间工人没太大区别的工种:无论是从工作的复杂程度来看,还是工作时长对工作的产出来看,都越来越接近了。


如果你自己尝试过学习一些网页开发基础,你也许会感叹自己和一个建筑工人、装修工人的工作状态有一些相似。

基层程序员的真实地位

当然,把程序员和传统的产业工人做类比其实并不完全正确,这主要是因为:脑力劳动,或者说智力和知识,在信息技术开发的工作中起的作用太大了。


前面讲到,以开源为基础的技术生态,造就了技术的自我迭代速度越来越快。信息技术本身是日新月异的,它是其使用者所创造,其使用者主导其发展方向,又驱使着使用者不断更新知识。


面对一个需求,可能有几十种现成的技术方案可供选择,具体应该选择哪一种,就需要技术方面的知识和判断力。为什么国产浏览器会纷纷选择 Chromium 作为其内核,而不是其它呢?这个决定不是哪个公司的哪个程序员自己做出的,必定是有各个公司的技术委员会决议,或者技术经理、架构师论证过的。


虽然大家都是用的同样的内核,但我们看到各家的浏览器有其特色功能。这就不是程序员自己的主意了,而是产品经理的要求。为了统筹公司里的市场、产品设计、技术研发团队用在某个具体项目上的资源,大公司往往还设立项目经理岗位,做项目管理工作。


由此我们看到了基层程序员所负责的工作在互联网公司的结构中所处的地位。



产品设计部门一旦把需求确定下来,技术研发部门继而把技术实现方案确定下来,剩下的工作,就是经过详细的拆解,交给基层程序员,按部就班,一行代码一行代码地做出来了。


各种经理忙着开会,跨部门开会,部门内开会,把需求确定下来,再落实到产品设计和开发需求上来。一个基层程序员,还可能面临着每天三番五次开会,或者需求变来变去,留给自己清净写代码的时间未必是自己能掌控的。

程序员不是一个单一的群体

讲到这里,想必大家能够理解:996 的问题所牵涉的,并不仅仅是劳动法的落实与否这样简单了。即使在程序员这个职业群体内部,面对这个问题,也可以看到几种明显的态度区别。


996 的问题是这样一种结构和现实造成的——互联网行业高速发展,行业薪酬水平已经很高,这个行业的从业者很少有转行的动力,因为转行往往意味着明显的薪酬损失。而想在这个行业待下去,就必须在这个结构中找到最符合自身利益的位置。这样一来,基层员工对劳动时间或者强度的抱怨,往往很难得到“工友”的实际行动支持:公司的竞争力有赖于比隔壁公司工作得更努力,而公司的竞争力是保持较高薪酬的前提。


这个逻辑让我想起当年记者调查富士康,工人为什么普遍超负荷加班。许多工人都表示,宁愿自愿多加班赚钱,怕的是不让加班、无班可加。


但和富士康工人不同的是,程序员群体中的确有相当多的人给反 996 项目加了星(截至本文写作时已经有 15 万人以上)。说明程序员中有相当一部分人是明确反对加班的。


给对这件事情的主流态度分个类:


  • 反对 996;

  • 虽然反对 996 但不认同采用强制措施;

  • 支持合法 996;

  • 支持完全的市场决定劳动制度。


我的个人观察是:越是基层的程序员越是反对,越是高级的技术经理人越是倾向于支持,起码不完全反对。甚至还有程序员直接表示:反 996 就是一场闹剧。


所以,并不能把“程序员”看作是一种真正存在的群体标签。程序员只是代表一个工种,这个工种内部的阶层区别相当丰富。因此,不同的程序员基于自身利益的出发点,有不同的政治主张。

代际差异与时代变迁

十多年前,第一批进入互联网行业的劳动者都是年轻人。如今他们中的一小部分成为行业精英,另一部分面临着老龄化的问题。但如今新入行的 95 后,和当初的 85 后面对的社会基本面,以及他们的生活态度,都有很大的不同。


我们似乎总是可以看到一些企业管理者抱怨现在的年轻人不好管了,频繁跳槽之类的。而已经全部进入 30 岁的 80 后们,虽然比 95 后看起来似乎更能吃苦一点,但作为独生子女一代身上的负担之重,也是企业所不能避免的。


互联网行业在中国疾风骤雨的时代已经到了尾声,行业增长趋于平缓。在暴涨时期,企业之间白热化竞争、同质化竞争却惯性依旧。从业者对自身收益增长预期的放缓,在心理上还无法完全接受。


所以反 996 事件在这样一种历史背景下,可以说是一种必然。过去十几年,明里暗里的 996 公司其实很多,别说 996 了,“007”的情况也不是没有。可是为什么现在才有互联网行业的反 996 运动呢?说到底,还是劳动者的付出和收益已经不成比例,或者说对未来的期许已经大不如前。



在一个理想的世界里,程序员们对新技术痴迷、利用业余时间研究创造,推动了技术的发展,所以把更多的业余时间留给程序员,更有利于产业的发展;在现实中,绝大多数程序员上班如“搬砖”,是一份养家糊口的职业。企业为了最大化人力产出,使用 996 作为一种管理手段,既压缩了人力成本,又满足了单个员工对自身薪酬的要求——但就无法满足员工对健康和生活的要求了。


在一个市场决定论者的眼里,反对或是支持 996 都是一个伪命题。因为如果 996 制度既不能满足市场需求,又不能满足劳动者的利益诉求,那公司也就不能从中获利,自然就会消失。但在一个社会责任论者眼里,社会的结构性压迫是单纯依靠市场无法消除的,必须有法治的正义作为保障,因此《劳动法》作为兜底是必需的。

代码、传播和声音

但是,对于绝大部分程序员来说,社会历史背景、公司管理、市场经济的理论,都不是他们熟悉的东西,他们的教育经历中缺少这方面的知识。


于是我们看到,他们在抗议的时候借助的是另一种他们熟悉的东西——像 GPL、MIT License 之类“开源软件许可协议”。


开源许可证是授权开发者使用软件源代码的一种合同,你必须同意条款,才能使用它。于是,有人建议和起草了反 996 工作制的“开源许可证”,希望能以此影响业界对 996 的态度。


围绕该不该用“开源许可证”反对 996,程序员基于政治立场的不同,当然也有不同的声音。但程序员对开源软件的生态其实都比较熟悉,大多数人并不会幻想这种许可证真的可以让 996 成为历史。


试图把反对 996 的这种声音,植入到开源软件的生态中,不得不说这是非常有意思的想法。因为开源软件本身就是一种传播媒介,一个开源项目会衍生出更多的开源项目,就像生物演化一样,形成丰富的分支。而许可证作为其唯一稳定继承的信息,会因这个项目自身的价值而被放大传播。


于是,代码和开源软件生态,成为一种表达意见的信息载体



其实这并不新鲜,开源软件的许可协议诞生之初,很大一部分原因就是开源软件的最初倡导者们为了表达开源、自由软件的主张而设计的。


历史有其自身的结构和循环。在理想主义的背景下,开源软件运动创造的生态使得中国的开发者可以迅速开发软件应用,形成大公司之间的白热化竞争、狼性文化,进而产生了 996 的问题。


而如今,一些中国的程序员希望通过开源软件内置反 996 条款的许可证,来传播反对 996 的声音,对抗一种结构性的压迫。


另一些程序员,他们有的成为公司中高层,权衡着 996 的利弊,掌控着对千万名程序员的业余时间的控制权;有的自己创业或成为独立开发者,24 小时心里都是工作,但具体时间自己灵活掌握;有的远渡重洋,去一个没有 996 的地方继续搬砖,成为当地的高收入者。


有能力的人是有选择的,自然可以自扫门前雪。但一个文明的社会,需要给所有人发出声音的渠道,更不能抹煞一个群体发出声音所做出的尝试。我想,与争论 996 是不是合理的相比,倾听他人、理解他人,整个社会的信息和声音的传播渠道的畅通无阻,才是更重要的。


2019-04-08 14:549989

评论

发布
暂无评论
发现更多内容

芯片破壁者(十七):“硅谷市长”罗伯特•诺伊斯开启的产业法则

脑极体

打通IO栈:一次编译服务器性能优化实战

AI乔治

Java 编程 架构 io 高性能

一次百万长连接压测 Nginx OOM 的问题排查分析

AI乔治

Java nginx 架构 服务端 高性能

系统架构--作业

Nick~毓

Java-技术专题-JDK8-HashMap的实现原理

洛神灬殇

重大事故!IO问题引发线上20台机器同时崩溃

AI乔治

Java 架构 多线程 io 并发

12张图带你彻底理解分布式事务产生的场景和解决方案!!

冰河

分布式事务 2PC 可靠消息最终一致 TCC 最大努力通知

阿里大牛精心整理了46张PPT,教你弄懂JVM、GC算法和性能调优

Java架构之路

Java 程序员 面试 编程语言 JVM

如何优雅的搞垮服务器,再优雅的救活

MySQL从删库到跑路

Linux 升级glibc 启动异常 无法进入系统 抢救模式

架构师训练营第四周学习笔记

一马行千里

学习 极客大学架构师训练营

一周信创舆情观察(9.28~10.11)

统小信uos

Netty源码解析 -- 客户端启动过程

binecy

Netty nio 源码阅读

Pulsar 社区周报|09-19 ~ 09-25

Apache Pulsar

大数据 开源 Apache Pulsar 消息中间件

如何花“一点点小钱”突破华为云CCE服务的“防线”

华为云开发者联盟

容器 k8s

Apache Pulsar 社区周报:09-26 ~ 10-09

Apache Pulsar

大数据 开源 云原生 Apache Pulsar 消息中间件

图解面试题-二叉树的所有路径

9527

Java 面试 算法 LeetCode 二叉树

让超宽带抵达产业互联网:UBBF上演智能联接全面落地

脑极体

架构师训练营第四周命题作业

一马行千里

极客大学架构师训练营 命题作业

为什么学习总是停在开头两页?

Nydia

Java之父都需要的一本能够更深入地了解Java编程语言的书

Java架构之路

Java 程序员 面试 编程语言

ClickHouse最佳实战之分布表写入流程分析

京东科技开发者

数据库

怎么才算掌握了JDK中的线程池

AI乔治

Java 编程 架构 jdk 线程池

区块链的浪潮开始涌动了

CECBC

区块链 期货

年轻代频繁ParNew GC,导致http服务rt飙高

AI乔治

Java 学习 架构 JVM GC

程序员黄金年龄25-28岁,我们30+的人该去哪儿?附华为案例;

Java架构师迁哥

代表Java未来的ZGC深度剖析,牛逼!

AI乔治

Java 架构 ZGC JVM GC调优

架构师训练营第四周作业

脸不大

异步excel导出组件设计和实现

Wayne Chu

Java 微服务 EasyExcel SpringCloud 服务治理

一次线上JVM调优实践,FullGC40次/天到10天一次的优化过程

AI乔治

Java 编程 架构 JVM GC

Flink周期性水位线分配器-6-3

小知识点

scala 大数据 flink

架构师训练营第 1 期第四周课后练习题

Leo乐

极客大学架构师训练营

996.ICU背后:程序员在互联网公司的真实生态_开源_川叶_InfoQ精选文章