PowerShell 主架构师:我用业余时间开发项目,表现优秀反而被微软降级了

简介: 经过两年多的时间,微软在 5 月 3 日宣布对用于 Visual Studio Code 的 PowerShell 扩展进行了一次重大更新,是对 PowerShell Editor Services 的核心 PowerShell 引擎的彻底改造。

经过两年多的时间,微软在 5 月 3 日宣布对用于 Visual Studio Code 的 PowerShell 扩展进行了一次重大更新,是对 PowerShell Editor Services 的核心 PowerShell 引擎的彻底改造。

巧的是,5 月 7 日,PowerShell 创建者 Jeffrey Snover 在推特上分享了他因为研发 PowerShell 而被微软降级事情的不满。

事情经过

事情起源于投资者 Peter Thiel 对勇气的讨论:“勇气并不总是在商业中得到回报”,而 Jeffrey 则认为 “勇气是未来领导者和以前员工的一个关键特征”。他还断言,“许多人专注在让老板满意,而不是解决问题。”此外,他还说出了一个埋藏了十多年的秘密:

当我为 PowerShell 做原型时,一位朋友告诫我说这是会被解雇的事情。还好我没有被解雇,而是被微软降级了。

“这真是令人尴尬。我不得不告诉我的妻子,但我没有告诉我的家人和朋友。十多年来,在我晋升为杰出工程师之前,我从未向任何人提起过这件事。” Jeffrey 表示。

Jeffrey 于 1999 年加入微软,担任管理和服务部门的架构师。2009 年 3 月,Jeffrey 获得了 “杰出工程师” 的称号,而其因研发 PowerShell 而被降级的事情大约发生在 2006 年之前。但事实上,在 2006 年 11 月 1.0 版完成后,Windows PowerShell 在半年内被下载近百万次。

Jeffrey 为什么要研发 PowerShell 呢?他在接受外媒采访时表示,作为一名长期 Unix 开发人员,他曾尝试直接使用 ksh 或 bash ,但都失败了。

“Unix 和 Windows 之间存在核心架构差异。Linux 是面向文件的操作系统,而 Windows 是面向 API 的操作系统。在 Linux 中,如果可以修改文件并运行进程,那么就可以管理任何事情。这就是 awk、sed 和 grep 作为管理工具的原因。当时,Windows 上没有这样的功能。一切都在返回结构化对象的 API 后面。这就是为什么 awk 不适用于 WMI,sed 不适用于 Active Directory,而 grep 不适用于注册表。我必须研发一种新工具来控制这种环境。”

微软对员工的业余时间研发有规定,禁止员工开发直接与现有 Microsoft 产品配套的产品。或许出于这个原因,Jeffrey 研发的 PowerShell 并没有受到微软欢迎。

据悉,当时他花费时间研发 PowerShell ,被微软从 L69 降级到 L68,微软甚至试图将他降级到 L67,并强烈暗示这是一次影响薪资的降级,以此作为警告。

“设计一个新产品的原型怎么会导致这么严重的负面后果?”有人问道。Jeffrey 并没有正面回应降级的原因,而是将微软和谷歌进行了对比:“微软并没有谷歌的 20 % 政策。”

谷歌的“20% 政策”是指,允许员工灵活地将 20% 的工作时间花在与薪酬无关的创新项目上。其余的 70% 的时间应该用于核心业务任务,10% 的时间用于与核心业务无关的项目。

“Jeffrey 在微软确实吃了不少苦头……”多年前就有网友感叹道。“我只是不擅长遵循指示。”Jeffrey 曾说道。“组织/领导者面临的挑战之一是,创新在成功前只是叛逆。这就是为什么主管对我大喊:“Jeffrey ,‘WINDOWS’的哪个部分让你困惑了?”Jeffrey 在推特上写道。

Jeffrey 在推特上也坦诚:“我曾考虑将 PowerShell 作为一家初创公司,但意识到要成功需要在成千上万台机器上运行。在 Windows 中发布意味着我的想法将被超过 10 亿台机器使用。我接受了这个事实,影响力比自我更重要。”

微软的改变

90 年代到 00 年代初期,微软有严格的禁止兼职政策。2011 年时,Windows Phone 7 团队开始鼓励员工在业余时间开发自己的项目。这在一定程度上推动了微软政策的变化。

“微软一直在碰壁,为 Windows 制造越来越多的花里胡哨,但没有人需要。”斯隆商学院管理与工程系统教授 Michael A. Cusumano 曾评价道,像微软这样的公司需要定期进行自我改造。

“我们往往有严格的兼职规定,”开发者体验总监 Brandon Watson 谈到该公司时说道,“但我们已经改变了这些规则,这样开发者就可以在业余时间做这件事,并获得经济利益和工作成果。”

根据 Watson 的说法,该公司提供的是应用销售的标准分成:70%给开发者,30%给微软。

当年,这项激励措施发布后很快就有 3000 多名员工注册提交了应用程序。其中微软的一对新婚夫妇编写了 Bubblegum 应用程序,他们分别是微软云计算平台项目经理 Sriram Krishnan 和 Xbox 团队项目经理 ararthi Ramamurthy。

根据 Krishnan 的说法,应用程序的研发工作都是在业余时间完成的。“我们在夏威夷度蜜月时开始着手研发。”

哈佛商学院投资银行教授 Josh Lerner 表示,微软不仅是在奖励人们在业余时间所做的事情,还是在利用这种能量实现公司的目标,来追赶上移动市场。

员工与企业博弈

如今,员工在业余时间做自己的开发已经被众多企业接受,甚至鼓励员工业余时间做研发。后来也引发了大家关于“业余时间不写代码的程序员永远不会像那些写代码的人那样优秀”的讨论,业余时间是否写代码甚至成为面试官衡量候选人的标准之一。

但开发者们也开始面临新问题:业余时间研发成果归个人还是公司呢?

在微软,员工业余时间的任何东西,只要 100% 使用的是自己的资源,那么项目就属于员工个人。

谷歌在劳动合同中明确规定,谷歌拥有雇员在公司期间所创造项目的知识产权,这一规定也适用于雇员的个人项目,以及旧项目在任职期间的新开发工作。开发者对这项规定也颇有微词。直到 2019 年,Nginx 创始人 Igor Sysoev 被捕,谷歌的政策才有所宽松。

2019 年, Nginx 创始人 Igor Sysoev 的前东家 Rambler 集团对 NGINX Inc. 提出了侵犯版权的诉讼,声称拥有 Nginx 网络服务器代码的全部所有权。莫斯科警方查封了 Nginx 在莫斯科的总部,扣押了设备、带走并讯问了多位雇员,包括联合创始人兼现任首席技术官 Igor Sysoev,以及联合创始人 Maxim Konovalov。

这次的事件中,最大的争议在于 Rambler 声称 Igor Sysoev 在担任公司系统管理员时开发了 Nginx,因此 Rambler 拥有 Nginx 技术的所有权。而 Sysoev 声称项目是用“业余时间”进行开发的。

这件事发生后迅速引起了整个科技圈的关注。最终,由于 Rambler 扛不住业界舆论,声称撤销对 Nginx 公司的刑事案件而完结。

这件事后,谷歌发布新的规定称,公司雇员可以向公司递交申请让个人项目脱离谷歌,但谷歌未必会批准每一个申请。一旦未被批准,就意味着该项目属于公司所有。不过根据谷歌员工的说法,未被批准的项目不在少数。

参考链接:

https://www.theregister.com/2022/05/10/jeffrey_snover_said_microsoft_demoted/

https://www.mercurynews.com/2011/03/04/moonlighting-within-microsoft-in-pursuit-of-new-apps/

目录
相关文章
|
5月前
|
存储 缓存 分布式计算
高并发架构设计三大利器:缓存、限流和降级问题之缓存的应对策略问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之缓存的应对策略问题如何解决
|
5月前
|
存储 缓存 边缘计算
高并发架构设计三大利器:缓存、限流和降级问题之控制浏览器缓存的行为问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之控制浏览器缓存的行为问题如何解决
|
5月前
|
存储 缓存 NoSQL
高并发架构设计三大利器:缓存、限流和降级问题之Redis用于搭建分布式缓存集群问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之Redis用于搭建分布式缓存集群问题如何解决
108 1
|
5月前
|
开发者 Sentinel 微服务
高并发架构设计三大利器:缓存、限流和降级问题之降级策略中的有限状态机的三种状态切换的问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之降级策略中的有限状态机的三种状态切换的问题如何解决
|
5月前
|
监控 应用服务中间件 nginx
高并发架构设计三大利器:缓存、限流和降级问题之Nginx的并发连接数计数的问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之Nginx的并发连接数计数的问题如何解决
|
5月前
|
应用服务中间件 nginx 缓存
高并发架构设计三大利器:缓存、限流和降级问题之Nginx作为前置网关进行限流问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之Nginx作为前置网关进行限流问题如何解决
|
5月前
|
监控 算法 Java
高并发架构设计三大利器:缓存、限流和降级问题之配置Sentinel的流量控制规则问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之配置Sentinel的流量控制规则问题如何解决
|
5月前
|
监控 Sentinel 缓存
高并发架构设计三大利器:缓存、限流和降级问题之RateLimiter的acquire()方法有什么作用
高并发架构设计三大利器:缓存、限流和降级问题之RateLimiter的acquire()方法有什么作用
|
5月前
|
存储 算法 缓存
高并发架构设计三大利器:缓存、限流和降级问题之使用RateLimiter来限制操作的频率问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之使用RateLimiter来限制操作的频率问题如何解决
|
5月前
|
存储 算法 Java
高并发架构设计三大利器:缓存、限流和降级问题之滑动日志算法问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之滑动日志算法问题如何解决

热门文章

最新文章