“All in Cloud”之后,和你聊聊「云原生DevOps的Kubernetes技巧」 了解详情
写点什么

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

  • 2022 年 5 月 11 日
  • 本文字数:2611 字

    阅读完需:约 9 分钟

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/

2022 年 5 月 11 日 14:562690

评论 1 条评论

发布
用户头像
!这点实属不容易

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

2022 年 05 月 11 日 20:47
回复
没有更多了
发现更多内容

单片机上常用-GB2312、GBK汉字取模与字库偏移地址的计算与汉字描点

DS小龙哥

5月月更

后端开发【一大波干货知识】Redis中的IO多线程(线程池)

C++后台开发

redis 多线程 线程池 后端开发 C++后台开发

如何在你的 wordpress 网站中添加搜索框?

海拥(haiyong.site)

WordPress 5月月更

Amazon Personalize 个性化效果评估,从准确性到多样性、新颖性和偶然性

亚马逊云科技 (Amazon Web Services)

Amazon 模型

区块链技术已站上真正意义的风口,如何把握?

CECBC

全链路压测(十三):高可用和性能优化

老张

性能测试 全链路压测 稳定性保障

SAP UI5 OData V4 模型的构造方式

Jerry Wang

JavaScript 前端 SAP ui5 5月月更

模块六:作业

本人法海

「架构实战营」

超实用干货分享!一个分布式 JVM 监控工具

JAVA架构笔记

Java spring 程序员 JVM springboot

程序员如何保证自己开发的正确性——测试开发有感

Bruce Talk

技术 敏捷 TDD Agile

【LeetCode】在长度 2N 的数组中找出重复 N 次的元素Java题解

HQ数字卡

LeetCode 5月月更

深入剖析snowflake算法

高翔龙

算法 雪花算法 uuid 全局唯一ID snowflake

滑动窗口

秋名山码民

算法 5月月更

Amazon MSK Serverless 现已正式推出,无需再为托管式 Kafka 集群进行容量规划

亚马逊云科技 (Amazon Web Services)

kafka Serverless

最新干货分享!35道MySQL面试必问题图解!这样也太好理解了吧!

JAVA架构笔记

Java MySQL 程序员 面试 后端

druid 源码阅读(十一)maxWait 参数

爱晒太阳的大白

5月月更

KiteX 源码解析活动发布!

baiyutang

Go 字节跳动 微服务 5月月更

设计者模式之装饰者模式

乌龟哥哥

5月月更

Tech Talk 活动回顾|化“被动”为“主动”,如何构建安全合规的智能产品

亚马逊云科技 (Amazon Web Services)

产品 安全 解决方案

跨平台应用开发进阶(十) :uni-app 实现数据存储、获取和删除

No Silver Bullet

uni-app 数据存储 5月月更 全局

百尺竿头更进一步丨拓展 Amazon Aurora 的读写能力之 Gaea 篇

亚马逊云科技 (Amazon Web Services)

Amazon 环境搭建

【刷题第15天】剑指 Offer 09. 用两个栈实现队列

白日梦

5月月更

TCP为什么要三次握手与四次分手?

JAVA架构笔记

Java 程序员 TCP TCP协议

自学历程 小甲鱼Python

万里无云万里天

Python

实现compact table command

Asha

Docker下Java文件上传服务三部曲之三

程序员欣宸

Java Docker 5月月更

druid源码学习十

Nick

Apache Druid

【Meetup 预告】OpenMLDB x DolphinScheduler 链接特征工程与调度环节,打造端到端 MLOps 工作流

第四范式开发者社区

人工智能 机器学习 数据库 调度 特征工程

Kubectl-ice 插件展示集群容器配置信息更强大、更便捷

Marionxue

kubectl插件 kubectl-ice 容器配置

Linux环境编译多个C程序文件

Loken

音视频 5月月更

跨平台应用开发进阶(九) :uni-app 实现Android原生APP-本地打包集成极光推送(JG-JPUSH)详细教程

No Silver Bullet

uni-app Andriod 极光推送 5月月更 本地打包

PowerShell主架构师:我用业余时间开发项目,表现优秀反而被微软降级了_文化 & 方法_褚杏娟_InfoQ精选文章