扫码打开虎嗅APP
编者按:作为业界巨头,微软和谷歌无论在薪资上还是名声上,都对顶级工程师有极强的吸引力。但对比之下就会发现,微软旗下的软件似乎总要略逊一筹。无论是同为浏览器的Chrome和Microsoft Edge、电邮Gmail和Outlook,或是操作系统Android和Windows Phone,都可以发现其中的差距。并不是说微软的软件不好,事实上,微软做得挺好的,但是软件质量似乎赶不上谷歌。究竟是什么原因造成了如此差距?
本文转自微信公众号:硅谷精英程序员,原文来自Quora,由Ann负责编译。
我叫David Seidman,曾在微软任职约11年,是微软高级安全项目负责人。而现在是谷歌安全工程总监。
之前有人回答说,是因为微软进行的软件开发本身就要比谷歌的难,这点恕我不敢苟同。无论怎么说,Chrome和Edge都是浏览器;Android和Windows Phone都是手机操作系统;Chrome OS和Windows同为电脑操作系统;而Google Drive和OneDrive也都是提供在线云存储服务。
所以性质上来看,并没有什么不同。
我们先把时间倒回到上个世纪。
90年代早期,微软遭到了苹果麦金塔电脑的冲击;90年代晚期,又面临WordPerfect旗下Lotus系列办公产品的威胁。1995年的WordPerfect,坐拥最尖端科技,市场份额超过50%。在这样竞争极度激励的环境中,不断快速开发有自己特色的新产品就成了大势所趋。
这样的结果,说白了就是导致市场上出现了大量的信息盗用行为。那个时候,微软的Windows和Office满是漏洞,设计过程非常潦草,基本可以说是粗制滥造,大量黑客事件可以说更是雪上加霜。除此之外,由于其最初的代码库都是在20世纪八九十年代建立的,因此也无法适用单元测试等更现代化的软件工程标准(在那个时候,单元测试这类东西都尚未被广泛使用)。
我们再说回到现在。
微软在市场上大获成功之后,大量的第三方应用开始涌现出来。这些应用都是依托于底层平台实现的可预测行为的。因此长期以来,这种稳定性就成了微软最大的优势。但这种稳定性也同样使得微软不敢轻易做出太大、太快的变化——毕竟这样就会打破平衡,导致其失去现有的市场优势。
IE浏览器、Windows Phone就都是依托于Windows开发的。现在回想起来,没有从零开始开发产品,可能是一个错误。但在当时看来,基于旧产品进行开发似乎就是更好更稳妥的办法(P.S.:我自己本人是并没有参与这些决策的)。
除此之外,想要稳定就意味着更新换代的速度会减慢。
微软会开发高度稳定的升级补丁,且升级频率低、测试过程长、审查次数多,每次升级的内容量也极庞大。而谷歌的思路则与微软恰好相反。他们会先对小部分用户提供高频的升级,如果远程检测出升级存在问题,就立即将其撤回。
事实证明,这个方法很有效,原因有三点:
第一,对用户进行测试要远比自行测试来的有效的多;
第二,的确有客户会愿意牺牲稳定性进行比较快速的升级;
第三,用户的使用反馈对于评判升级内容来说非常关键。
换句话说,谷歌的做法能同时保证质量、速度及创新,因此比微软更为有效。如今微软也确实意识到了这一点,因此对Windows 10和Microsoft Edge浏览器都采用了更为激进的升级策略。但要赶上谷歌的节奏,他们还得花上一阵子。
最后,从企业文化的视角来看,谷歌比微软更注重技术工程。
谷歌的员工和管理层,会愿意花更多的时间、更多的钱来达成更好的效果。这一点与其说是基于商业判断、不如说是企业文化带来的影响。谷歌在面对技术债务时显得更为有责任心,他们会坦诚地承认,然后偿还技术债务。
而微软则有所不同,也没少爆出黑客袭击事件。SharePoint和One Drive都是现代化时期开发出的在线服务,都继承了旧时的代码,但却仍然会出现服务质量方面的问题。
这是因为微软的企业文化注重产品特色、注重新产品的快速发布而非产品的技术质量。长期下来,谷歌已经对其回报以高质量的产品。当然谷歌的软件也并非十全十美,同样有很多故障或者问题需要修复解决。
但由于上述的原因,我认为当下谷歌产品的质量水平在微软之上。