【CSDN】在微软工作了五年的人说:微软面临崩盘

时间:2022-09-29 05:04:06
在微软工作了五年的人说:微软面临崩盘

--------------------------------------------------------------------------------

2006.06.23    

 

我也逐渐发现了加班的原因是效率低,效率低的原因是人太多。Vista的发布日期又再一拖再拖,肉酸的微软是不是日子也差不多了?看到微软内部人员的这篇文章,觉得挺好玩,所谓在微软工作的高级白领原来一年只写一千行代码。(天,我一周都不止了?)

【简 介】
  作为一个工作5年的微软人,Philip Su分享了他对Vista推迟的看法,来自微软内部的声音。


首先从代码编写效率开始,请注意如下数据:Windows Vista拥有超过5000万行代码,而Windows XP拥有大约4000万行,Windows开发部门一共拥有大约2000名软件开发人员,从Windows XP出货到Windows Vista(即将)出货间隔5年时间。

(5000万-4000万)÷5年÷2000人=1000行代码/每人每年。

平均每个开发人员每年只“需要完成”1000行新代码--那些每周编写5000行代码的编程人员会对Vista的开发效率分外惊讶。相比之下,美国软件开发人员平均每年代码编写量也达到至少6200行(1999年这一数据为9000行)。

即便考虑到代码的测试以及优化工作,1000行每年也是一份过于清闲的工作--微软的薪水并不低。

Vista的开发效率到底怎么了?

微软文化没落 

微软内部轻视困难以及充满侵略性的企业文化已荡然无存,Windows就是正面。

当一个微软总裁询问你的开发小组能否如期完成代码时,他很有可能同时询问你“我的新阿玛尼西装穿着是否显胖?”--也许后者的答案才是他们更为关注的问题。

在连续数月听过一个某一个开发小组因自身工作进度问题导致整个Vista版本发布计划接连推迟,我,作为一个微软股东,终于找到机会和该开发小组的两个关键负责经理进行谈话,质问他们为什么能够如此无视开发进度及计划。这两个经理将不满传达给了他们的副总裁--这名总裁要求他们在三个小时内完成6个小时都无法完成的任务,“你们是绝顶聪明的人,想办法解决!”这两个经理很聪明,他们选择了谎言。“当然,一切都顺利进行,我们几经努力终于完成了代码。Vista将在八月完成,老板”。

真实,在无数次会议中选择了缄口不言。

 缺乏有效管理

除了欺瞒之外,Windows开发还遇到了另一项更难解决的问题--松散的管理决策*。

微软的Windows厨房里拥有过多的大厨--大量副总裁总经理,过多层狭窄的信息上报*,当我在Windows 开发部门时,我需要向 Alec汇报、Alec向Peter汇报、Peter向Bill汇报、Bill向Rick汇报、Will向Jim汇报、Jim向Steve汇报, Steve向最终BOSS BillGates汇报---考虑到我下属的两层,从基础开发人员向上传达一条信息需要经过至少11个“管理人员”到达Bill Gates。

臃余的管理*和过多的管理人员直接导致决策效率降低,在一次简单的日程会议上,我需要至少招集6个副总裁以及10个总经理--人越多,会议越复杂,效率越低,经理级人物在进行讨论时还经常考虑到“面子”问题,最经常的会议谈话如下:

“Bob,我不得不说,你的团队进度已经拖延了我们的进度。”“没关系,不过你一定要清楚,延迟不是我们造成的,而是第三方的问题,和我的团队无关。”

失控?还是无法控制?

最终我们不能忘记,Windows Vista是人类历史上最大的软件开发工程,对于Windows开发管理人员来说,处理如此错综复杂的问题确实是个不小的难题,历史上也没有一个企业能够解决这一问题。

目前的问题是,Vista到底能否再次如期完成?换句话说,Vista究竟仅仅是失控?还是彻底无法控制?

Vista,你怎么了?

微软,你怎么了? 


63 个解决方案

#1


微软不是号称招的都是最聪明的人么,呵呵,有这么多最聪明的人还怕什么。。。

#2


微软是一家伟大的公司,她在操作系统上没有失败先例。所以,人们没有理由不相信微软。 

#3


我还以为没分就没人看了。。

#4


..

#5


上面的文章搞笑,竟然这样衡量做软件的工作效率,
(5000万-4000万)÷5年÷2000人=1000行代码/每人每年。
===========================================
当然对我们这样低一点水平的做软件的人来说,这样差不多,
但人家是在做操作系统,不是码代码可以一次成功的,是个重复劳动的过程

#6


5000万行的恐龙系统和3-5万行的小系统完全没有可比性。

#7


看出来了

LZ是Sinox的拖

#8


俄罗斯一个牛人老头,一天写了六行代码,使得整个系统运行效率翻倍.
代码量,这是一个伪指标,不能说明什么.

#9


微软不是号称招的都是最聪明的人么,呵呵,有这么多最聪明的人还怕什么。。。
---------------------------------------------------------------------------
在中国应该是英文好的人吧。

#10


相比之下,美国软件开发人员平均每年代码编写量也达到至少6200行(1999年这一数据为9000行)。
==========================================================

哦,一年才1万行,记得csdn上有个人说他们团队每年40万行,20多人的团队一年搞了3G的代码。。。

#11


靠,这种算法是不对的

#12


人家代码是精华,你的代码是垃圾
而且还有测试,修改bug的时间
还有精简,原来写了1万行,后来缩到8000行

#13


还有真正写代码的可能不多

#14


呵呵,代码量的确没有意义。
欧参与一个狗屁系统的开发,2年写了7,8W行代码,现在人都傻了。

#15


我们公司去年曾做过一个手机项目,平均每个人日0.8行代码。

很多东西是不算在代码行数内的。
微软做操作系统,除了代码还要写各种帮助文档,这些都是许多种语言版本的。
另外,除去bug改修不谈,他们在外观美化,效率提升以及人性化操作方面的改修也是巨大的。

#16


代码行数就和GDP差不多,不反映本质

#17


我估计他们会把1000行代码写一千遍,优化修改一千遍的

写不是工作,修改和优化是他们的主要工作。

#18


qie

#19


希望微软不要让我们失望!

#20


:)

#21


Windows Vista是人类历史上最大的软件开发工程

#22


代码多代表什么,随便找个人让他对着键盘敲,一天能敲多少呢。

我靠,快召他去微软,微软有救了,哈哈

#23


Windows Vista是人类历史上最大的软件开发工程

#24


zijida(深水游鱼,吐泡泡被追殴.。o 0) ( ) 信誉:101  2006-06-26 14:15:00  得分: 0  
 =
  俄罗斯一个牛人老头,一天写了六行代码,使得整个系统运行效率翻倍.
代码量,这是一个伪指标,不能说明什么.
--------------------------------------------------------------
能具体的说说么?
  
 

#25


微软这么多牛人,不可能在bill还没有完蛋前出现大的纰漏的,这么多年都下来了,应该形成了一套有效切比较成功的管理体系,所以说有点危言耸听,不过现在微软的os倒是越来越大,每次必拖,越拖越久阿。丫的战略我们搞不清楚,钱是越赚越多了。

#26


今天上班比较闲,

写了个小程序玩玩,

vc程序,stocket通信程序,

6个小时,代码量大概400行,

不过详细计算下来,注释大概80行,从别的程序里面copy代码300行左右,

新的,可以宣布是自己写的代码就只有20行了,

而且程序还没经过测试,不知道经过测试后,还需要删改多少行.

#27


我觉得 vista是很棒的一操作系统

我一直认为gnome的ui比winxp好看.现在好了.我觉得vista的界面最好看.我最喜欢.

#28




这简直是白痴说的话,Windows开发部门确实拥有近2000名开发人员,但是只有大概一、二十个人是核人编码人员,而整体架构设计一般都是由五人组搞定的,这五个人编写了最基础的硬件层和服务层的代码。而像纸牌、媒体播放机这种软件根本就不是windows组的人搞出来的!

而事实上vista的5000万行代码实际上%80以上都是重用的代码,因此一个只有一、二十个人的核心开发团队才可以在几年内就完成一个超级强大的操作系统。

作者可能没有听说过“测试”这个词。一般来讲像操作系统这样的一个安全性要求极高的大型项目,测试占用的资源是开发的两倍以上,而测试占用的时间则大概要占到六到七成。按这样算,微软的开发工程师都写代码都快吐血了。

一周写几千行代码的程序员一定是个trash maker,我想他就算不吃不喝不睡觉也没有时间来搞单元测试。就算他一周上七天班,每天12个小时,每周5000行代码这样算下来,每小时竟要写60行代码!!作者是不是在搞笑,这是人还是神?

#29


在一般的大型软件工司,每日平均有效代码量必须控制在40-70行之内,算法类可能更低,最低10-20行也可能,数据库类可能就高一些,但也不能允许超过120。而必须强制的是单元测试的通过率,如果单元测试通过率太低,那公司就要考虑是不是该换人了。

#30



40 - 70?C++程序? 

我们公司10几年的C++的经验开发人员一天可以写1000行以上的代码,而且包括了单元测试.

每天的代码量由你的代码经验来决定.不是写得越少越厉害.
   

#31


一天可以写1000行,但整个项目开发周期中,天天都写1000行么?


1000行是不可能D,我也7年C++经验了,见过很多牛人,包括仁科的首席科学家,唯独没见过每天能写1000行代码的编码神

#32


不会是哪个在微软看了5年门口的大叔告诉你的吧:)

#33


相比之下,美国软件开发人员平均每年代码编写量也达到至少6200行(1999年这一数据为9000行)。
==========================================================

哦,一年才1万行,记得csdn上有个人说他们团队每年40万行,20多人的团队一年搞了3G的代码。。。

------------------------
弓虽!

#34


没见过不代表没有.

我说是的10+以上的C++专家.
国内很多人认为每天写1k是不可思议,但在国外却是再正常不过的了.偏偏10+以上的全是老外.

#35


微软不是号称招的都是最聪明的人么,呵呵,有这么多最聪明的人还怕什么。。。
===================================
最聪明的人往往是最懒得人,应该是最聪敏的一个人带领一群智利一般的人

#36


没多大意义,你写的再多有什么用,

#37


up

#38


LZ是Sinox的拖

#39


所谓在微软工作的高级白领原来一年只写一千行代码。(天,我一周都不止了?)

这就是专业程序员和菜鸟的区别...

任何一个专业程序呀都差不多这个速度.. 超过了? 那你的代码绝对问题比这个数字的多..

这是几十年编程总结出来的数字...  你编程才几天???

#40


回复人:9731boy(与生俱来的卖片气质) ( 两星(中级)) 信誉:15  2006-06-27 09:19:00  得分:0

没见过不代表没有.

我说是的10+以上的C++专家.
国内很多人认为每天写1k是不可思议,但在国外却是再正常不过的了.偏偏10+以上的全是老外.

-------------------------------------------------------------
你没见过真正的软件开发吧???  一天1k,是怎么算的??
人家的代码量是加上 调研,分析,设计,测试,发布 然后计算出代码量,编码阶段一天1k当然正常,但如果你每天1k,从来不调研,不分析,不设计,不测试.. 那你发布的软件绝对是垃圾

#41


问问袁老大啦

#42


埃,别讨论拉。再怎么讨论也是人家外国人的东西,有那个时间还不如做点咱们中国人自己的东西

#43


无所谓 反正我用盗版

#44


to zez(思恩 闭关练功ing...):

   我说的当然是编码阶段了.没人能做一年365天都是1k.那已经是神了.

   另外,保证软件的质量有很多的方法,除了代码经验,就是code review还有就是unit test了.

   开发经验扎实的开发人员写出的代码自然是普通的开发人员所不能比的.

   不过话说回来了,我们不做企业开发,没有什么繁杂的业务流程,业务就是RFC规定的.其他的就是看团队的整体实力了. 

   等哪天你能和RFC的起草者共事,你就明白为什么牛人觉得每天写1k的代码是正常的了.

   匿.

#45


怪不得盖茨把股票卖了那么多

#46


垃圾代码写再多还是垃圾

#47


...

#48


“最终我们不能忘记,Windows Vista是人类历史(嘿嘿)上最大的软件开发工程”
“历史上(嘿嘿)也没有一个企业能够解决这一问题”
------ 嘿嘿,如果不看上下文,我还以为作者又是sinox那杂碎呐。

#49


呵呵,我用c++也超过10年了,我不知道自己有没有写过什么"一天一千行",计算行数有什么用?只有白痴印度人才这么算,代码行数说明不了什么问题,高质量的100行代码,能抵你低质量的10000行.一些人整天只知道copy/paste,代码行数是很多的,但可惜,都是垃圾.好的代码是精简再精简的,经过重构,也能减少很多重复代码.

#50


Windows Vista是人类历史上最大的软件开发工程

#1


微软不是号称招的都是最聪明的人么,呵呵,有这么多最聪明的人还怕什么。。。

#2


微软是一家伟大的公司,她在操作系统上没有失败先例。所以,人们没有理由不相信微软。 

#3


我还以为没分就没人看了。。

#4


..

#5


上面的文章搞笑,竟然这样衡量做软件的工作效率,
(5000万-4000万)÷5年÷2000人=1000行代码/每人每年。
===========================================
当然对我们这样低一点水平的做软件的人来说,这样差不多,
但人家是在做操作系统,不是码代码可以一次成功的,是个重复劳动的过程

#6


5000万行的恐龙系统和3-5万行的小系统完全没有可比性。

#7


看出来了

LZ是Sinox的拖

#8


俄罗斯一个牛人老头,一天写了六行代码,使得整个系统运行效率翻倍.
代码量,这是一个伪指标,不能说明什么.

#9


微软不是号称招的都是最聪明的人么,呵呵,有这么多最聪明的人还怕什么。。。
---------------------------------------------------------------------------
在中国应该是英文好的人吧。

#10


相比之下,美国软件开发人员平均每年代码编写量也达到至少6200行(1999年这一数据为9000行)。
==========================================================

哦,一年才1万行,记得csdn上有个人说他们团队每年40万行,20多人的团队一年搞了3G的代码。。。

#11


靠,这种算法是不对的

#12


人家代码是精华,你的代码是垃圾
而且还有测试,修改bug的时间
还有精简,原来写了1万行,后来缩到8000行

#13


还有真正写代码的可能不多

#14


呵呵,代码量的确没有意义。
欧参与一个狗屁系统的开发,2年写了7,8W行代码,现在人都傻了。

#15


我们公司去年曾做过一个手机项目,平均每个人日0.8行代码。

很多东西是不算在代码行数内的。
微软做操作系统,除了代码还要写各种帮助文档,这些都是许多种语言版本的。
另外,除去bug改修不谈,他们在外观美化,效率提升以及人性化操作方面的改修也是巨大的。

#16


代码行数就和GDP差不多,不反映本质

#17


我估计他们会把1000行代码写一千遍,优化修改一千遍的

写不是工作,修改和优化是他们的主要工作。

#18


qie

#19


希望微软不要让我们失望!

#20


:)

#21


Windows Vista是人类历史上最大的软件开发工程

#22


代码多代表什么,随便找个人让他对着键盘敲,一天能敲多少呢。

我靠,快召他去微软,微软有救了,哈哈

#23


Windows Vista是人类历史上最大的软件开发工程

#24


zijida(深水游鱼,吐泡泡被追殴.。o 0) ( ) 信誉:101  2006-06-26 14:15:00  得分: 0  
 =
  俄罗斯一个牛人老头,一天写了六行代码,使得整个系统运行效率翻倍.
代码量,这是一个伪指标,不能说明什么.
--------------------------------------------------------------
能具体的说说么?
  
 

#25


微软这么多牛人,不可能在bill还没有完蛋前出现大的纰漏的,这么多年都下来了,应该形成了一套有效切比较成功的管理体系,所以说有点危言耸听,不过现在微软的os倒是越来越大,每次必拖,越拖越久阿。丫的战略我们搞不清楚,钱是越赚越多了。

#26


今天上班比较闲,

写了个小程序玩玩,

vc程序,stocket通信程序,

6个小时,代码量大概400行,

不过详细计算下来,注释大概80行,从别的程序里面copy代码300行左右,

新的,可以宣布是自己写的代码就只有20行了,

而且程序还没经过测试,不知道经过测试后,还需要删改多少行.

#27


我觉得 vista是很棒的一操作系统

我一直认为gnome的ui比winxp好看.现在好了.我觉得vista的界面最好看.我最喜欢.

#28




这简直是白痴说的话,Windows开发部门确实拥有近2000名开发人员,但是只有大概一、二十个人是核人编码人员,而整体架构设计一般都是由五人组搞定的,这五个人编写了最基础的硬件层和服务层的代码。而像纸牌、媒体播放机这种软件根本就不是windows组的人搞出来的!

而事实上vista的5000万行代码实际上%80以上都是重用的代码,因此一个只有一、二十个人的核心开发团队才可以在几年内就完成一个超级强大的操作系统。

作者可能没有听说过“测试”这个词。一般来讲像操作系统这样的一个安全性要求极高的大型项目,测试占用的资源是开发的两倍以上,而测试占用的时间则大概要占到六到七成。按这样算,微软的开发工程师都写代码都快吐血了。

一周写几千行代码的程序员一定是个trash maker,我想他就算不吃不喝不睡觉也没有时间来搞单元测试。就算他一周上七天班,每天12个小时,每周5000行代码这样算下来,每小时竟要写60行代码!!作者是不是在搞笑,这是人还是神?

#29


在一般的大型软件工司,每日平均有效代码量必须控制在40-70行之内,算法类可能更低,最低10-20行也可能,数据库类可能就高一些,但也不能允许超过120。而必须强制的是单元测试的通过率,如果单元测试通过率太低,那公司就要考虑是不是该换人了。

#30



40 - 70?C++程序? 

我们公司10几年的C++的经验开发人员一天可以写1000行以上的代码,而且包括了单元测试.

每天的代码量由你的代码经验来决定.不是写得越少越厉害.
   

#31


一天可以写1000行,但整个项目开发周期中,天天都写1000行么?


1000行是不可能D,我也7年C++经验了,见过很多牛人,包括仁科的首席科学家,唯独没见过每天能写1000行代码的编码神

#32


不会是哪个在微软看了5年门口的大叔告诉你的吧:)

#33


相比之下,美国软件开发人员平均每年代码编写量也达到至少6200行(1999年这一数据为9000行)。
==========================================================

哦,一年才1万行,记得csdn上有个人说他们团队每年40万行,20多人的团队一年搞了3G的代码。。。

------------------------
弓虽!

#34


没见过不代表没有.

我说是的10+以上的C++专家.
国内很多人认为每天写1k是不可思议,但在国外却是再正常不过的了.偏偏10+以上的全是老外.

#35


微软不是号称招的都是最聪明的人么,呵呵,有这么多最聪明的人还怕什么。。。
===================================
最聪明的人往往是最懒得人,应该是最聪敏的一个人带领一群智利一般的人

#36


没多大意义,你写的再多有什么用,

#37


up

#38


LZ是Sinox的拖

#39


所谓在微软工作的高级白领原来一年只写一千行代码。(天,我一周都不止了?)

这就是专业程序员和菜鸟的区别...

任何一个专业程序呀都差不多这个速度.. 超过了? 那你的代码绝对问题比这个数字的多..

这是几十年编程总结出来的数字...  你编程才几天???

#40


回复人:9731boy(与生俱来的卖片气质) ( 两星(中级)) 信誉:15  2006-06-27 09:19:00  得分:0

没见过不代表没有.

我说是的10+以上的C++专家.
国内很多人认为每天写1k是不可思议,但在国外却是再正常不过的了.偏偏10+以上的全是老外.

-------------------------------------------------------------
你没见过真正的软件开发吧???  一天1k,是怎么算的??
人家的代码量是加上 调研,分析,设计,测试,发布 然后计算出代码量,编码阶段一天1k当然正常,但如果你每天1k,从来不调研,不分析,不设计,不测试.. 那你发布的软件绝对是垃圾

#41


问问袁老大啦

#42


埃,别讨论拉。再怎么讨论也是人家外国人的东西,有那个时间还不如做点咱们中国人自己的东西

#43


无所谓 反正我用盗版

#44


to zez(思恩 闭关练功ing...):

   我说的当然是编码阶段了.没人能做一年365天都是1k.那已经是神了.

   另外,保证软件的质量有很多的方法,除了代码经验,就是code review还有就是unit test了.

   开发经验扎实的开发人员写出的代码自然是普通的开发人员所不能比的.

   不过话说回来了,我们不做企业开发,没有什么繁杂的业务流程,业务就是RFC规定的.其他的就是看团队的整体实力了. 

   等哪天你能和RFC的起草者共事,你就明白为什么牛人觉得每天写1k的代码是正常的了.

   匿.

#45


怪不得盖茨把股票卖了那么多

#46


垃圾代码写再多还是垃圾

#47


...

#48


“最终我们不能忘记,Windows Vista是人类历史(嘿嘿)上最大的软件开发工程”
“历史上(嘿嘿)也没有一个企业能够解决这一问题”
------ 嘿嘿,如果不看上下文,我还以为作者又是sinox那杂碎呐。

#49


呵呵,我用c++也超过10年了,我不知道自己有没有写过什么"一天一千行",计算行数有什么用?只有白痴印度人才这么算,代码行数说明不了什么问题,高质量的100行代码,能抵你低质量的10000行.一些人整天只知道copy/paste,代码行数是很多的,但可惜,都是垃圾.好的代码是精简再精简的,经过重构,也能减少很多重复代码.

#50


Windows Vista是人类历史上最大的软件开发工程