主题:【原创】闲聊微软 序 -- 丁丁鱼
不要停!期待楼主精彩下文
一个成功企业大多拥有以下三方面的优势:人,流程,工具,即 People,Process, Tools。 其中,人的因素是最重要的,或者是决定性的。这一点,微软也不例外。公司的高层们在不同场合不断强调,人,是人而不是软件产品或者其他什么,是公司最重要的财富。所以,我就从这个“人”上继续聊聊对微软的总体印象,先说工程师。总的感觉,微软工程师的总体素质很高。我为自己有幸成为其中一员而自豪!
就先从好的开始吧
初到微软,就发现导师说的没错,自己周围能人如林。比如,几乎每个大一些的产品组都有一个或几个能把专利块(微软给每个专利申请人发一个黑色石质的纪念品)当积木堆满窗台或书架的牛人。对新人,这种特殊的办公室装潢实在令人眼馋。第一反应,牛,卧虎藏龙啊!第二反应,靠,什么时候兄弟也整这么一块玩玩。
能跟这些牛人们一起工作,即让人兴奋,压力也不小。后来慢慢发现,大家好像压力都不小,上至P和VP们,下至小兵。为什么呢?原来微软企业文化中对竞争极为推崇---这也许和两位创始人的性格有很大的关系。讲通俗点,是骡子,是马,拉出来遛遛。什么时候遛呢,就在每年Review的时候啦。今年,每个员工所定的目标一律公开,兄弟的那好多级领导包括Ballmer在内,都黑纸白字;到时候,搞不定,嘿嘿,想抵赖也不好使。
这种对竞争的推崇使得微软强调得最多的是个人能力而不是所处的职位高低。比如,公司的最高级技术人员(Technical Fellow 和Distinguished Engineer)对公司战略的影响有时会超过VP们。有一次,我听到一个认识的Architect教育一个工程师,没有必要为某总裁对一个设计的不满而道歉,“he is just a guy, like you and me”。也是,在公司,除了Bill Gates和Steve Ballmer有单独的区域,其他P和VP们好像和一般员工在很多方面没有什么不同:一样大的办公室,一样排队买午餐,有时一样需要站着开会,一样早出晚归--也许更早或更晚。。。 个人感觉,这种相对平等的环境加上鼓励竞争的氛围会对人有种趋势作用,想去有所作为。
想有所作为?没问题,公司有的是产品和部门在等着有能力的人:成型的,全新的;要推出的产品,提高产品质量的工具;市场上稳居老大的,刚刚开始抢市场的;全球产品,中国产品。。。 这不,想整出点名堂的平台和机会也都有了,就等您开练了---只要您有能力通过面试。
是不是就是那个sco-xenix啊
莫非是Steve Ballmer?
二十一世纪什么最重要?人才啊,呵呵
第一是关于操作系统的DEBUG,不知道微软的程序员是如何做的,是否很痛苦的一件事情?
第二是关于软件质量的,感觉微软这几年的软件质量有很大的提高,尤其是从WINDOWS 2000开始,不知道有什么窍门?
不知兄台有空和方便的话,可否聊聊这两个话题?
正准备在下中谈谈。似乎是这种企业文化的一大副作用,尤其是在没有竞争对手的时候,现在,似乎没有太大问题
应该全改了
操作系统的调试,我个人感觉与应用程序的调试也没有太大不同。设好了断点,一步一步往下走就是了。
当然如果你要调试内核,那恐怕很难在一台机器上实现,一般需要两台机器的。不知你所谓的“痛苦”,是否是指这方面?
至于质量管理,那是一个很大的话题。简短来说,运用里程碑式管理,加上反复的多层次的测试,应该能保证一定的质量。以鄙人愚见,大概所有软件产品的质量管理模式都大致如此吧?
见笑。
懒厨兄出了个好题,在下得马上作答;毕竟这里是技术班麻
先聊聊OS Debugging。开发OS时,根据具体Feature的不同,使用不同的Debugger。高层一些的,比如Notepad,窗口管理器(Explorer),用一般的就行。底层的,比如Driver,系统服务,文件系统,就得通过串口连接来远程跟踪(Remote Debugging)。具体地说,就是在被跟踪的机器/OS(Debuggee)上打开Kernel Debugging 的功能,再把系统信息通过串行线输出到Debugger中。对Debuggee,在系统启动时,按F8,选择Debugging Mode;或者在boo.ini 文件中加入相应信息(具体的得查查,这种做法在Vista里已经不用了)。大家有兴趣,可以试试,反正我第一次见到系统信息输出在Debugger里是挺激动的。至于具体的Debug操作和跟踪应用程序也差不多,加载Symbol,源文件,设断点,步进,等等。毕竟OS只是个很大的程序---尤其是Windows
Windows的开发,测试人员的测试机器(Test Machine),应该都连接远程跟踪。这样,一出问题,比较容易找到原因,比如系统崩溃后,是想继续,还是想重启。搞OSDebugging,就像用一台机器控制另一台机器在走,挺有趣的。刚开始时,系统很容易就崩溃;现在好多了,用远程跟踪的机会也少了。不过,这么一次次得崩溃,发现问题,解决问题再测,倒让自己和Vista建立了挺深的感情
再具体的,在下的这片里有更多:http://www.cchere.com/article/877642
关于Windows在质量上的提高,我就先谢谢懒厨兄的鼓励啦
其实窍门也谈不上,就是重视和下功夫,这和做其他技术一样,来不得虚的。自己不把问题找出来,别人总有办法能鼓捣出来。到时候,公司的面子是一回事,各种有形无形的损失就大发了。所以,从上到下,从总设计师(Bill Gates, 觉得这个翻译不错)到小兵们都不敢大意。应该说,总体上还是功夫不负有心人的。
还是那句话,人,流程,工具。在QA这方面,微软对员工的培训还是挺严的。比如,我们(开发,测试,项目管理)每6个月必须参加计算机安全培训。流程方面,新Feature的设计要有安全分析,代码要经过静态检查;每个Feature加入Windows之前,原则上要经过几十个自动测试程序的检验。一个不过,对不起,搞清楚问题再说。有时,SVP就在测试出错EMAIL的CC List上,挺慎的荒的。再说工具,从自动测试平台,到Debugger的插件,再到代码静态检查工具和做极限测试和安全测试的工具包,公司还是投入了不少注意力的。综合这三方面,个人对Vista的质量和稳定性还是有信心的。
说了这么多,我这里描述的微软产品的质量好像应该高出大家用的一截才对呀,这段现实的落差在哪里呢。待兄弟下回试着讲来,还是从工程师们开始。
操作系统的调试,我好奇的是在操作系统还没有成形的时候,不知如何调试的?例如WIN95总不能在DOS上面调试吧?此其一。其二是我猜操作系统上许多臭虫很难重现,开发人员如何认定这个臭虫是硬件引起,还是驱动引起,还是内核引起的呢?
质量管理,确实是很大的话题,我想了解的是,WINDOWS 2000之前,微软的产品质量普遍被认为不行,WINDOWS 2000之后,感觉好了很多,那么微软到底做了什么,来提高产品质量的呢?
这个得细细琢磨。。。。
一样的编译,连接。当然,运行就得先把系统起来才行啦。
原则上,Debugger只要跑起来就行。