任晶磊:如何看待程序员在 GitHub 发起抗议互联网公司实行 996 工作制网站?

news/2024/5/20 15:12:20/文章来源:https://wizard.blog.csdn.net/article/details/89409292

作者:任晶磊

有人说,此行为艺术仍然停留在抱怨的阶段。那么我们来看看出路在何方,所幸已有人在路上。注意,这里都是正在落地的干货。

Disclaimer:我在表达观点时会引用自己的研究工作。如果认为此有夹带私货之嫌,就请略过拙答吧。

996的根源,往小里说是落后的管理方式,往大里说是不公的生产关系。要说怎么办,就看列位程序员要改良,还是要革命了!

image

引用先烈们以表敬意

改良派初探

996用工作时长要求程序员、限制程序员,这种管理方式落后久矣……百年前,福特汽车的管理者早已发现,流水线上计件工人的产量,如果工作时间过长反而会下降,于是率先推行了8小时工作制。这不全是靠罢工争来的。

如今,虽然劳动法摆在那里,但如果企业的管理水平得不到普遍提升,程序员权益的落实依然会面临各种现实的阻力。是时候告诉管理者,还有更好的方法衡量和管理程序员的工作。

那么问题来了,如何衡量程序员们的生产力呢?不按工作时间,莫非要数代码行数?这让人不禁想起西乔著名漫画《神秘的程序员》中的一集:

image

……

image

……

http://weixin.qq.com/r/YkhaQkHEkxzsrQUh9x1w (二维码自动识别)

最后,这场闹剧以公司上了静态分析技术为终结。这是个悲伤的故事,但悲伤在于工具的打开方式不对。这样的工具,本不该被滥用作KPI的替代物!

相反,评估程序员生产力的工具,可以成为一个有利的武器,帮助程序员打破堆砌工作时长的怪圈,用数据支持变革落后的管理方式;可以为那些内向的、不善于表现的程序员们发声,让不干事的浮出水面,让干得差的没有脸面,让干得好的登上台面!

那么,让我们来看一下数代码行数的正确方式。2016年代的Facebook,曾经由扎克伯格钦点把代码行数作为一个绩效指标。有些主管的bonus甚至有50%决定于团队在上季度提交的代码行数。这背后的逻辑是,虽然有无数的corner case,代码行数和开发团队的产出长期来看仍然是正相关的,而且交付更多代码的团队往往有更多的机会去学习、去试验、去探索。西乔漫画中各种代码充数的桥段是源于生活而高于生活的调侃,现实中会面对各种各样的制约,通过诸如代码审查等手段来规避。Facebook当年曾位列Glassdoor“最佳工作地点”排名之首,在工作生活平衡方面也表现不俗——至少距离996和ICU差着几十条长安街……

image

小扎跑过“世界人民大团结万岁”,但撵不上中国程序员996的步伐

更精细的改革派

当然,Facebook选择代码行数评判程序员产出实为无奈之举,你可知上一套西乔漫画里面的测评系统谈何容易。但是,永远不要低估“神秘的程序员”。

话说有一群来自微软亚洲研究院、加州大学伯克利分校(UC Berkeley)、清华大学和FreeBSD社区的小伙伴,真真做了一套基于静态程序分析并自带查重的测评系统出来。我们不仅实现了系统,还潜心研究了这个评估问题一年半,写了一篇短论文Towards Quantifying the Development Value of Code Contributions,发表在软件工程领域最顶级的国际学术会议FSE 2018上。

这篇论文的方法,一是model代码结构中的重用(reuse)关系——我们知道,重用乃是软件工程的第一要义,也是现代编程语言中大多数机制的出发点(如函数调用、继承、范型);二是基于对Linux社区几十位顶尖程序员的调研,模拟他们评判代码提交价值的做法,对代码提交进行分类并赋予权重。对于后者,论文里描述的方法还停留在基于提交信息(commit message)做自然语言处理,最新的迭代已经发展到直接对抽象语法树进行机器学习。

有人可能会说,发篇不痛不痒的论文有p用啊?

没错,但我们是认真的!去年,我辞掉了微软亚洲研究院的工作,又把殷和政拉下了水——他从北京八中少年班到清华“姚班”再到伯克利的开挂学术之路,竟折在了2017年初我们共同受邀参加的一次同学的婚礼上。我把测评程序员贡献的想法介绍给他,他随后中止了在伯克利的博士进程……我真的不是故意的。

这个系统可以登录https://meri.co/试用(对公司有私有部署支持),主要代码开源在https://github.com/persper/code-analytics. 算法和工具都还不成熟,希望大家一起改进!

彻底的革命派

作为中国人,我们最能理解改变生产关系、释放生产力的深刻内涵。四十年前,小岗村十几户农民按手印签下的那份“大包干”合约,开启了波澜壮阔的改革开放的时代巨幕。没有那份改变历史的合约,恐怕今天都轮不到我们谈论996ICU.

image

1978年,安徽省凤阳县小岗村的18位农民在“包产到户”合约上按下手印。

今天我们生活在一个“资本主义”的世界。假如你有钱,可以买下一个公司的股份,不需要写任何一行代码,就能永远坐享公司发展的红利。

而如果你只是一个程序员,你996地为公司卖命,却只能换得一份普通的薪水。一朝离职,不论公司未来从你曾写的代码上赚多少钱,都与你再没有半毛钱的关系。

996ICU本质上是一种压迫,是对生产关系中处于弱势一方的压迫,是因为没有充分的工作自由而带来的压迫。为什么不能有“智本主义”?为什么程序员的付出不可以转化为“知识股权”(intellectual shareholding)?

我们不仅这样想了,而且正在努力地做。去年7月份,我们在哈佛大学和MIT给了两个talk,阐述我们的观点,主要内容总结在《软件开发的下一个十年:程序员收复价值》。简单来说,我们认为智力或知识投入不像金钱那么容易计数,而通过市场对个体每天细碎的开发活动计价也是不现实的。所以,就需要一套代替公司管理层级的程序员贡献测评方法——这就回到了我们上面介绍的论文和系统。它们不仅是企业改良的催化剂,更是广泛变革生产关系的基础。

我有一个梦想,在不远的将来,程序员们可以摆脱公司的桎梏,像今天参与开源项目一样贡献代码,并获得知识股权,而项目的收益将按股比反馈给所有贡献者。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_710654.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型网站架构系列:分布式消息队列

以下是消息队列以下的大纲,本文主要介绍消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统)。 本次分享大纲 消息队列概述消息队列应用场景消息中间件示例JMS消息服务常用消息队列参考(推荐&am…

Python网页分析,分析网站的日志数据

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 以下文章来源于大话数据分析,作者:尚天强 网站的日志数据记录了所有Web对服务器的访问活动,本节通过Python第…

基于django快速开发一个网站(一)

* 创建虚拟环境、基于虚拟环境创建django2.0.0和图片加载库和mysql数据库驱动 1. 创建目录并创建虚拟环境 ╰$ mkdir Cornucopiavirtualenv ╰$ cd Cornucopiavirtualenv ╰$ virtualenv env1 2. 进入bin目录,并激活虚拟环境 ╰$ cd bin ╰$ source activate …

发现一个好看的手机壁纸网站,撸代码的手已经饥渴难耐了

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 最近有同学的爬虫代码出了bug,给问我怎么改 于是就发现了这个好看的手机壁纸网站。 看到那么多好看的壁纸,我的爬虫已经饥渴难耐…

浅谈web网站架构演变过程

前言我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。该系统具备的功能:用户模块:用户注册和管理商品模块:商品展示和管理交易模块:创建交易和管理阶段一、单机构建网站网站的…

php域名墙检测,php 网站域名被墙判断请求方法

可以使用exec去进行查询判断,判断traceroute to 出的ip和最后追踪到的IP是否匹配,如果不匹配可能就被墙了。也可以有个保险的方法,去请求下看是否有返回数据没有基本就是墙了。查询命令方法:traceroute --tcp youtubemy.com[rootl…

思科模拟器企业网站服务器配置,思科模拟器服务器配置

思科模拟器服务器配置 内容精选换一换虚拟IP(Virtual IP Address,简称VIP)是一个未分配给真实弹性云服务器网卡的IP地址。弹性云服务器除了拥有私有IP地址外,还可以拥有虚拟IP地址,用户可以通过其中任意一个IP(私有IP/虚拟IP)访问此弹性云服务…

推荐95个极富创意的单页网站设计实例欣赏

随着网络带宽的快速提升,越来越多的Web视觉设计师开始将自己的网页设计推向单页面的表现形式,他们在不断的尝试各种令人耳目一新的设计方案,像下面的这些例子有很多都是出自个人网站,使用JavaScript来实现单页面内的内容切换&…

30 个用于杂志网站的 WordPress 主题

WordPress 已经形成了一个非常完善的生态链,为 WordPress 开发的各种插件、主题越来越丰富。本文介绍 30 个适用于杂志网站使用的 WordPress 主题,其中也包含一些收费的主题,制作非常精美。 免费的 WordPress 杂志主题 Snips DotNews Render …

网站安全检测 Web 安全测试工具

随着 Web 应用越来越广泛,Web 安全威胁日益凸显。黑客利用网站操作系统的漏洞和 Web 服务程序的 SQL 注入漏洞等得到Web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,…

SharePoint 2010设计(Design)权限能操作的网站操作菜单项

在SharePoint平台中有经典的5大权限:完全控制、设计、参与讨论、只读、仅查看。其中设计权限与完全控制权限有些相似,而只读和仅查看基本上差不多,参与讨论权限主要是针对内容管理的。设计权限在SharePoint 2010里是不能设置权限的&#xff0…

ubuntu服务器网站备份,用 Ubuntu 建立 Time Machine 备份服务器

用 Ubuntu 建立 Time Machine 备份服务器:1、安装 Netatalksudo apt-get install netatalk2、设置 Time Machine 备份文件存放位置, 假设位置在 /backup/TimeMachinesudo vi /etc/netatak/AppleVolumes.default#~/ "Home Directory"/backup/TimeMachine &…

arcgis制作瓦片地图_挖掘Dark Sky Maps(热的要死后,疯传的一个气温地图网站)...

最近,各种朋友圈,社会媒体,都在疯传一张图,这张图显示的全球的气温图,本没有什么特别的,但是这张图的网站来源所展示的数据与气象局或者各种天气预报的温度值相差倒是不少,引来一片网友的吐槽。…

django 跳转其他网站_Django 实战 | 搭一个 GitHub 用户展示网站 04

一、搜索页面跳转在 urls.py 中添加一个 user 路径:from django.urls import path from . import viewsurlpatterns [path(, views.home, name"home"),path(user/, views.user, name"user"), ]在 views.py 中添加一个 user 方法:de…

使用LogParser分析IIS网站日志

LogParser是个强大的,多功能的分析工具,它统一的查询方式适用于各种文本类型文件(例如日志文件,XML文件,CSV文件)和操作系统层面数据文件(例如事件日志,注册表,文件系统&…

Webydo:一款在线自由创建网站的 Web 应用

Webydo 是一款专业的在线建站应用,使平面设计师可以创建和管理 HTML 网站,而无需编写代码。设计人员可以设计任何类型网站,只需要点击按钮,就能够发布先进的 HTML 网站。 你可以控制所有的设计组件,如:元素…

元素“Button”不是已知元素。原因可能是网站中存在编译错误,或者缺少web.config文件...

最近开发的时候ASP控件都有波浪下划线,提示不是已知元素,搞得挺郁闷的。虽然不影响变异,不过就是不爽。 折腾N久...... 解决了,把FramWork平台换成3.5,问题解决,不知道为啥,求大神指点。 问题描…

优化网站设计(三):对资源添加缓存控制

前言 网站设计的优化是一个很大的话题,有一些通用的原则,也有针对不同开发平台的一些建议。这方面的研究一直没有停止过,我在不同的场合也分享过这样的话题。 作为通用的原则,雅虎的工程师团队曾经给出过35个最佳实践。这个列表请参考 Best Practices fo…

网站服务器上加入三层开发的网站错误解决

在网站服务器上添加三层开发的网站,发现网站打开的时候提示Server Error in / Application.截图如下 解决办法: 1,把文件夹中的bin文件夹移动到上一目录下,比如放入该文件的路径是root根目录,然后新建test目录,上传网站…

网站常用颜色代码

文字灰:#999 按钮红:#b50000 转载于:https://www.cnblogs.com/shinima/p/5441501.html