Welcome to MSDN Blogs Sign in | Join | Help

[原文发表地址] HPC中国研发团队博客

[原文发表时间] 2008年08月20日

 

    大家好,我叫刘超,是服务器与开发工具事业部(中国)HPC团队的软件开发工程师(SDE)实习生。在微软实习了将近6个月了,在这段时间里对于实习、对于我们组的工作生活都有不少感悟和体会,所以很想借这次写blog的机会做一下记录,如果能对别人有所价值,那就是最大的开心了。

    在微软的实习经历对于我来说,是一份永远的记忆。在实习中开发的VS Add-in for Deployment,是我在公司中第一个独立开发的项目,而这个项目能够最终在Windows HPC Server 2008 SDK中发布,得到了很多同事的帮助,老板们也给予了我充分的信任,让我很感激。这个项目虽然不大,但是其中也有着不少波折:刚开始接手这个项目时,我做了很多调研,也提出了不少实现方法,但是进度很慢,主要是因为对自己没有足够的信心,总希望得到同事们的支持才开始动手。后来老板看出了这一点,告诉我“纸上得来终觉浅,绝知此事要躬行”,也指出经过了一段时间的调研,其实我所了解的并不比别人少了。我一听,觉得可不是嘛,自信心立刻就有了,然后进度就赶上来啦。在这一次开发中我也深刻体会到了原型产品和正式产品的区别:自己觉得很稳定的产品,到了测试阶段却能够发现很多意想不到的bug;在修bug的过程中,不仅自己trouble shooting的能力得到了提高,与项目经理(PM)、测试开发工程师(SDET)沟通的能力也得到了很多锻炼。现在回想起整个项目的开发,还是感觉很幸运,从这次珍贵的项目经验中学到了很多。

    对于我们实习生本身,为了更好地把握实习机会,也有很多需要了解和准备的东西。下面是在这几个月的实习中我的一些体会,希望能对师弟师妹们有所帮助。:)

  1. 一次实习最重要的是要抱着学习的心态进入公司,如果能有求知若渴的态度,那么这次实习的价值才能够被最大化。曾经听过一个经理对职场新人的建议是“榨干职位上一切你能学到的东西!”在大多情况下,一个职位一个人一生只会经历一次,比如现在的软件开发工程师,如果转做IT咨询或者项目经理,可能一辈子都不会再回到开发工程师的职位。对实习生而言,接触不同公司不同职位的机会还是很多的,所以如果能够在不同的职位上把能学到的东西尽量学好,往往会有很多受益良久的收获。曾经听人说过,如果是抱着拿工资的心态在工作,那至多只是工资慢慢地增长;如果是抱着学习的心态在工作,就一定有成为公司CEO的希望。
  2. 要积极,才能有更好的机会。刚进入公司的时候老板会安排一些项目,而在组里待久了,往往会了解到其他同事的一些想法或者原型,如果感兴趣的话就应该积极地争取参与进去。被动地等待任务往往会让自己慢上半拍,毕竟老板们不是神仙而且很忙,无法完全了解实习生的兴趣、工作状态和工作强度,所以毛遂自荐往往是更受欢迎的。
  3. 要有坚持的心态和责任感。在日常工作中,刚刚走上岗位的实习生一定会遇到各种各样的困难,这时一定要有坚持的心态和不畏困难的信念。很多人对一件事情开始时表现出很大的热情,却只有三分钟的热度,这对于与他合作的同事来说是灾难性的。如果承诺了一件事或者接了一个任务,就一定要坚持完成,信誉的建立比毁坏要难得多。实习生与正式员工相比,往往约束要少很多,学校课业的负担有时也成为逃避责任的一种借口。可是“人而无信,不知其可”,责任感是任何职业都不可或缺的,该修的bug一定要修,该完成的任务一定要完成,在战胜困难的同时,自己的自信也得到了非常大的提升,所以这不仅是对于公司的贡献,也是对于自己的贡献。
  4. 不管是什么样的工作,一定有它的意义;退一万步,即使是最单调乏味的工作,也能提高做事的效率和锻炼时间管理的能力;同样的一件重复劳动,有的人能够二十分钟做完有的人却需要一个小时。在微软,实习生被安排到的工作往往是开创性的新产品的开发,所以大多是非常有趣的;可是即使这样,也要知道对于不怎么感兴趣的工作保持热情也是非常重要的。
  5. 要有更好的系统性组织性。我以前做事风风火火的,有什么事情想到就做。看到别人给我发的bug,一旦想到解决的方法就开始修了。后来经过老板、mentor与我的沟通,了解到需要更多地为别人考虑,即使是修bug也要经过一定的流程、更加系统化才行,否则频繁的修改很可能引起别人的麻烦,而这些往往是在学校里进行手工作坊式的项目开发很少遇到的。
  6. 要多交流,这一点我很汗颜。我的一个很大的缺点是在交流方面没有足够的热情,而这可能是职场的大忌。酒香也怕巷子深,花了几年酿出的酒如果不能运出巷子卖掉还是一点价值都没有。所以情商方面的培养也是实习中非常重要的环节。一个很直接的方法就是多于老板交流,老板之所以成为老板,肯定有成为老板的原因。在与老板的相处过程中,个人的阅历、眼界和处事风格等等都会有很多提升。

    这篇文章到这里就要结束啦,在实习的过程中每个人肯定都会有自己不同的体会。希望各一位实习生不管在什么公司什么职位都能够得到更大的收获,在工作岗位上不断进取,走得更高更远。:)

 

刘超

高性能计算团队 实习生

高效率的工具

    工具的使用在人类历史发展中起到关键作用,一个时代通常因使用某种工具为标志。例如石器时代的标志是石制工具,铁器时代是铁质金属工具,信息时代是以现代通讯设备和计算机为标志。总之,工具使人们的生产效率大大提高,是人类革命性进步的重要组成部分。同样,在软件开发中,也离不开工具。

    在软件开发中,最常用的工具是集成开发环境(IDE)和源代码管理控制系统,集成开发环境包括编辑器(Editor)、编译器(Compiler)、链接器(Linker)和调试器(Debugger)等。Visual Studio Professional(专业版)就是这样的集成开发环境。源代码管理控制系统是一套客户端-服务器(Client-Server)系统,服务器存储源代码,它可以支持多个客户端提交代码并管理控制源代码的版本,它还可以在没有冲突的情况下自动合并客户端和服务器有差异的同一文件,在有冲突的情况下允许客户端手动解决冲突。这样一个系统会使一个开发团队的多名工程师有效地提交代码,而不用担心提交的代码会把别人的修改覆盖掉。另外值得一提的是Visual Studio 2008整合的代码分析工具,它可以自动找出代码中的错误,包括常见的缓冲区溢出等,虽然它也会找出一些并非是错误的地方,但能找出一定百分比的错误也会使这一工具受到青睐。

    代码中的漏洞也被叫作虫(Bug),软件开发测试工程师如果发现问题会记录到数据库(Bug Database)中。微软的Product Studio就是这样的一个产品,它是一个团队协作的工具,软件开发测试工程师把发现漏洞(Bug)纪录在Product Studio,项目经理会对bug做triage,软件开发工程师会改动代码修复漏洞。有时开发团队也会用Product Studio来管理工作任务,把任务象bug一样来管理。Product Studio对提高团队协作效率有很大贡献。

    这么多的工具,开发人员在用不同工具时,需要切换,不是很方便。Visual Studio Team System 2008(VSTS 2008)把以上的这些工具集成在一起,开发团队中的项目经理,软件开发工程师,软件开发测试工程师都用同一个工具VSTS来进行日常工作,这好像制造业采用了流水线设备,比以前车间里用不同工具制造出产品的部件再用其它工具组装出产品,效率有极大的提高。这样的一些工具常把流程也做在其中,人员在使用工具时也就按照流程来做了,这是今后开发工具发展的一个重要方向。

    CLR/Silverlight团队建立一年多了,队员对各种工具的使用已经非常娴熟了。WinForms团队虽然只有几个月,大家对各种工具的使用也上手了。目前两个团队都开始使用Visual Studio Team System 2008 ,我相信随着VSTS 的不断改进,我们的高效工具会使团队的效率达到最佳。

 

结束语

    年轻的中国开发团队经过严格的人员挑选组队、人员培训、对技术和领域知识的掌握、高效工具的使用、简捷有效的流程的建立以及不断的经验积累,相信一定会成长为一支优秀的开发团队。

 

 

部门经理 徐鹏阳

上篇我们讨论卓越工程系统中的人才因素,本篇探讨第二个重要因素——流程。

简捷有效的流程

    人是有思维的、有创造力的,可是在做一些具体事务时却容易出一些低级的错误。这时流程会帮助减少这样的错误来保证产品的质量。流程如果太繁琐会降低效率;没有流程,质量又没法保证。所以要有一个平衡,要建立一套对产品开发最合适的流程也就是简捷有效的流程。我想大家对软件产品开发的周期,例如市场调查、产品需求、计划、产品设计、产品实现、测试、调试、修补漏洞、质量过关、产品发布已有了解,在此不多谈了。我想以产品实现和测试的流程为例来说明这段流程对软件质量保证的重要性。

    我在雷德蒙工作时,曾有个兄弟团队的资深软件开发工程师干过这样一件事。产品开发进入修补漏洞的后期,在这个阶段只有重要的漏洞才能去修补,而且代码提交前要经过伙伴测试(Buddy Test),这样做的目的是要保持产品质量的稳定性,可他过于自信了,在没有经过伙伴测试就把代码提交了。结果他的提交使第二天的每日构建(Daily Build)通不过多个重要的测试用例,兄弟团队也没法儿用它进行其它测试,白白浪费了一天时间。这件事对这位仁兄来说肯定是个教训,也说明流程是有作用的,不按流程做会导致一些影响很坏的错误。

    在开发团队中会有很多软件开发工程师,他们都要提交代码,尽管他们会很认真的编写代码,有时也难免出错。我们常用代码评审(Code Review)这一流程中的重要步骤来保证代码的正确性。一个工程师写的代码会由另一个或几个工程师包括软件开发测试工程师来做复审。这样,代码经过多双眼睛的审核,正确性会较高。有些开发团队会要求软件开发工程师提交代码时,要先把提交放入提交排队系统,这个系统会对每个提交做必要的测试,测试通过后系统才会正式提交代码。经过这样一个流程,代码出错的可能性进一步降低。伙伴测试和提交排队系统有异曲同工之效,都是在代码进入源代码管理控制系统前对提交的代码进行必要的测试来保证代码的正确性。伙伴测试会花费软件开发测试工程师的时间,提交排队系统也需要工程师花时间来维护,各有千秋。我带领的CLR/Silverlight上海团队与相应的美国队伍共拥有七、八十位软件开发工程师,提交代码要通过一个提交排队系统,提交前要经过代码评审。

    另外,也可以采用伙伴构建(Buddy Build)或滚动构建(Rolling Build)。伙伴构建是指一个工程师提交代码前或后由另一工程师帮忙做构建来验证提交代码没有构建问题。滚动构建是由一个计算机系统自动完成的,它周期性地同步源代码管理控制系统中的当前源代码后进行构建验证,也可以自动做一些测试,有问题它会自动发邮件给相关人员。WinForms上海团队组建不久开始建立流程,因为只有几个软件开发工程师,所以正在考虑采用每日构建(Daily Build)和滚动构建(Rolling Build)。

    每日构建(Daily Build)出来后,软件开发测试工程师会针对它进行一系列的测试包括版本验证测试(Build Verification Test)和临时手动测试(Ad hoc manual Test),另外还会不同周期地做全面自动测试(Full Automation Test),压力测试(Stress Test),性能测试(Performance Test),安全测试(Security Test)等等。这些大多都是事先根据测试计划写好的自动测试,同时会把在测试中发现的问题记录下来,软件开发工程师会相应地进行调试解决,项目经理会对所有发现的问题做Triage(会审),Triage这个英文词的原意是一个根据伤员的伤病情况来决定先给谁后给谁处理伤病的流程,这个词在这里的意思也就很容易理解了。

    测试在产品开发中对质量把关起到至关重要的作用,在整个流程中是必不可少的环节。这也是为什么微软在甄选软件开发测试工程师时也会很严格,软件开发测试工程师能力并不会比软件开发工程师差,只是在软件开发中分工不同,侧重点不同。

   现在,我带领的CLR/Silverlight团队和WinForms团队各自有一套简捷的流程来进行开发测试,虽不完全一样,但都是很有效的。总之,流程是为了保证产品质量而设的,定然不能缺少,但也不能太过复杂,否则会降低效率,也会影响人的创造力和能动性。

 

部门经理 徐鹏阳

 

备注:近期将更新《从卓越工程的角度来看微软中国开发团队的成长 (三)》

    在进入正题以前,我们来想象一下人类祖先在石器时代后期开始种植农产品的情景。最早发现农作物可以种植的人类祖先可能不小心把种子掉在地上,第二年春天雨季后发现长出了植物并结出果实,而秋天的收获激励他们有意识地在下一年去重复这一过程,他们挖坑埋种子的工具是石质的。经过很多很多年的进步,人类经历了农业革命、铜器时代、工业时代,直到现在的信息时代;播种农作物的工具由石质发展成铁质、钢质,由铲发展到犁,由牛拉的单犁发展到机械化拖拉机拉的多排犁;农作物种植的过程也由根据节气听天由命发展成机械灌溉、大棚种植和基因工程等现代种植方法。然而不管它怎样发展,有三样东西贯穿始终,那就是人、工具、方法或过程。

    同样,一个工程系统也是由人、流程和工具组成的。人在这个系统中是最重要的因素,因为流程是由人来制定的,工具是由人来使用和操作的。但这并不是说,系统中只有人就够了,流程和工具都不需要了。流程可以帮助避免因人的主观因素而产生的错误,工具可以比人工手动成百上千倍的提高效率,所以人、流程和工具在一个工程系统中缺一不可。工程在计算机软件领域是指采用系统的流程来设计、开发和传递产品及服务。卓越工程是指在工程上能达到杰出和优异。既然软件开发也是工程范畴的,那么开发团队的成长也就离不开优秀的人才,简捷有效的流程,和高效率工具这三个卓越工程系统中的重要因素。当然开发团队的成长还包括沟通、团队协作、团队文化和团队士气等等。我在这里只从工程系统中的三个重要因素来谈。

 

优秀的人才组成优秀的团队

    一个团队的建立需要有合适的成员加入。从招聘开始就对人才进行严格的挑选,微软的招聘哲学是要“最好中最好的”。那么什么样的人会加入我们的团队?正直诚信、有责任心、尊重他人、对客户和技术有热情、自我完善、敢于接受大的挑战、有想象力和创造力等等。当然以上是基本素质,我们也要看设计、编程和测试等能力,这是因为我们是软件开发团队,软件开发的基本能力是非常必要的。

    微软招人看重的是个人能力和团队协作精神,学历并不是最重要的。我在微软亚洲工程院工作的时候,曾邀请一位美国团队资深架构师为工程师们做讲座,他在自我介绍中提到他没读完本科,我开玩笑说微软的架构师好像都没读完大学(大家都知道比尔盖茨先生没读完本科就从哈佛出来创办微软,他退休前的职称就是总架构师)。我举这个例子不是想让大家都从大学辍学,我也认识一些微软架构师不但读完本科还拥有硕士或博士学位,我想说的是学历可以说明一个人在学校取得的成绩,但不能代替工作能力以及在工作中能获得的成果。

    微软员工入职后会参加入职培训和其它一些培训,但培训本身并不能使员工马上适应工作。员工入职后的前三个月通常会有一个“良师益友(Mentor)”,由有经验的老员工担任,帮助新员工熟悉工作。员工会被安排一些具体任务来“导入”以后需要做的工作。员工以后的职业学习和成长也是由培训,向其他人学习和工作中的锻炼组成的。工作中的锻炼占绝大部分,向其他人学习次之,培训只占一小部分,培训中的内容如果不通过工作中实践很难变成自己的东西,所以在工作中的锻炼成长最重要。当然向其他人学习,包括向“职业良师益友(Career Mentor)”学习有很大益处。“职业良师益友”是一些愿意帮助别人的资深员工,他们可以给员工的职业发展出谋划策或用自身做榜样。这些是员工入职初和以后成长的一个基本模式,每个员工的道路不尽相同,但有一点是相同的,那就是员工作为自己职业发展的驱动者要自己寻找锻炼的机会,经理提供帮助和指导,公司提供支持。

    我刚加入服务器与开发工具事业部中国团队时,第一个向我汇报的员工对编程很有激情,他从12岁就学会用BASIC语言编程,大学时主修计算机,之前在一家外企公司做了两年软件开发工程师。一进入我的团队,就被分配到一个全新项目组,所以我们没能为他指定一位项目上的“良师益友”。但他并没有因此而退却,主动向美国团队要了资料,又找了相关的书来读,很快就上手开始修漏洞了。他还把所学到的知识整理、编写成文发表在MSDN杂志上,让更多的人来了解这项技术。没人期望一个还处在熟悉一项技术过程中的工程师写成这样一篇文章,并能发表在MSDN这样重要的期刊上,当然也包括我。在写这篇文章的过程中他既锻炼了自己,也展示了其自学能力, 最重要的是他给自己创造了成长的机会,通过给自己不断地创造成长机会,他很快成为一个技术骨干,大家有问题都会去问他。

    中国开发团队大多由年轻人组成,是微软分布式开发中的新生力量。我们通常会向美国团队 “借用”几个资深工程师来这里帮助招聘和训练本地员工。当然,我们也会把优秀的中国员工送到总部做短期融合培训,主要是和美国团队一起工作,了解公司文化和产品开发流程,以及与美国同事建立良好合作关系,便于以后开展工作。今年三月,我在组建WinForms(Windows Forms, .NET平台的一部分)团队时,就有三名本地员工前往雷德蒙进行短期培训,之后加入的新员工也通过阅读各类资料、动手实践来掌握WinForms的开发测试,如调查并修补漏洞,分析并写测试用例等。美国资深测试主管也受邀来上海帮助员工增加在这个领域的知识,熟悉开发流程和提高技术能力。同时,员工之间也定期交流各自的学习心得共同提高。当然,在共同发开产品的过程中,与美国同事之间频繁的视频、电话会议也帮助我们年轻的工程师们更快接手更多新工作。目前,拥有一名经理,一名项目经理,三名软件开发工程师,三名软件开发测试工程师和七名外包软测试工程师的WinForms团队已初具规模,承担了WinForms全部主要测试任务,并且可以开始修补漏洞和新功能的调研工作。这个团队能在很短的时间内承担起重要的任务,有成为一个优秀的团队潜力,虽然还有很长的一段路要走,但为今后成长为优秀的团队奠定了扎实的基础。

 

部门经理   徐鹏阳

备注:近期将更新《从卓越工程的角度来看微软中国开发团队的成长 (二)》

—— 安全与访问团队侧记

    用寥寥数百字介绍一个开发团队的方方面面,貌似不是一件容易的事情,不过古语说的好,“窥一斑而见全豹”,让我们来看看这个团队的两个独特之处:

1. 最分布的团队

    拥有一个远在万里之外的合作伙伴对服务器与开发工具事业部(中国)的每个团队来说都不是什么新鲜的事情,每一个团队都和位于西雅图雷德蒙的一个或多个产品部门以各种方式进行合作。人们常用“共饮一江水”来形容关系之密切,对于产品开发团队而言,最密切的关系莫过于“共写一行Code”了,如此亲密的伙伴,我们上海安全与访问团队有几个?One,Two,Three,足足3个!我们与纽约长岛的Forefront Server Security团队,西雅图雷德蒙的Forefront Client Security团队,以色列海法的Forefront Edge Security团队都有着共同的代码级开发合作,面对一个如此分散的虚拟团队,我们很可以“自豪”的说在时间上我们是“领跑者”,海法时间比上海晚6小时,纽约晚12小时,而西雅图则晚16个小时。我们共享着时间轮换带来的便利 —— 我们是名副其实的“日不落”团队,也品尝着时差所带来的额外开销 —— 我们四“兄弟”从来不曾有机会共聚首,早晨或者夜晚的电话会议和邮件的来回是我们工作的写真。我们彼此心照不宣,我们的多一份努力,换来的是顾客多一分笑容。

2. 第一个端到端地发布产品的团队

    我们团队在去年10月发布了Forefront Server Security Management Console 10.5, 这也是服务器与开发工具事业部中国团队的第一个全权负责开发并发布的端到端的产品。回首两年前,除了部门经理,我们团队所拥有的只是几名初出茅庐的大学生,研究生,但正是他们创造了自己的历史 —— 完整的产品开发周期和责任意味着我们必须对产品的规划、设计、代码、测试等发布的各个环节负责,我们必须对自己所做的每个决定负责,我们必须做各式各样的取舍,我们必须把短期目标和长期远景结合,我们必须在有限的时间里做最重要的事情。没有人会为我们的错误买单,但是我们做到了,我们获得了客户的赞誉 —— HP的全球IT总监发来邮件对我们的产品表示满意,我们获得了产品部门总经理的嘉许 —— 我们拓展了开发领域,开始负责开发更大、更重要的产品,下一代Forefront Security for SharePoint

    相对于Visual Studio, Windows Server, SQL Server等其他微软企业级产品,Forefront系列安全产品还有很长的路要走。然而机遇与挑战并存,这些挑战同时给予了我们团队历史性的机遇,我们成为了中国事业部里第一个独立负责产品的团队。

读到这里,您是否能感受到这个团队的风貌了呢?下面就简单介绍一下我们团队目前的项目:

    上海团队正在负责开发下一代Forefront for Sharepoint (FSSP14),并参与Forefront Codename “Stirling”的开发工作。 FSSP14提供了对Microsoft Office SharePoint Server (MOSS)和Windows SharePoint Service (WSS)基于内容的全面保护,包括基于多引擎技术的病毒以及恶意代码扫描和关键字/文件类型过滤。FSSP14的所有用户界面将基于Powershell 和新的图形界面框架,给用户带来全新的使用体验,同时崭新的Forefront Codename “Stirling” 将提供比FSSMC更为强大的企业级安全管理和监测功能。想知道更多?上http://www.microsoft.com/Forefront/default.mspx

朱梁

VSDSL Book       软件行业正在兴起使用领域特定语言(Domain Specific Language, DSL)方法的大浪潮,此方法能够降低软件开发的成本,尤其体现在大型项目中。一个领域特定语言(DSL)是一种被设计用在一个特定的兴趣领域中的语言:垂直领域比如电话设计,或横向领域比如工作流。它可以是一种程序语言、一种规范、或一种设计语言。

    微软从Visual Studio 2005专业版开始加入DSL工具,为开发人员提供了一种图形化的操作方式,使 领域特定语言的创建更为平民化,以降低项目开发的成本。2007年6月,Steve Cook 、Gareth Jones 、Stuart Kent 和Alan Cameron Wills,4位微软DSL工具的始创者出版了Domain Specific Development with Visual Studio DSL Tools一书,与广大读者分享他们在软件开发中使用DSL工具的实际体验,这也是第一本专门介绍DSL工具的软件开发书籍,不仅介绍了特定领域开发、模型驱动开发等概念,更注重理论与实例相结合,用一个具体DSL应用实例贯穿全书,详细介绍了如何使用DSL工具来开发用户自己的特定领域语言,从而实现真正的用模型来驱动软件的开发。

    作为Visual Studio架构师套件中国开发团队,我们非常高兴有机会将此书翻译成中文,与中国的软件开发人员和架构师分享。本书的中文版也是国内第一本专门介绍DSL工具的中文开发书籍,相信它对软件开发人员和架构师快速了解和掌握DSL的概念和工具的使用会有较大的帮助。

    翻译<<Visual Studio DSL工具开发指南>>对我们来说也是一个不断学习、实践、再学习和再实践的过程。在我们的日常开发工作中,就大量地使用到了DSL工具及其相关的概念。这本书也帮助我们团队的新老成员快速掌握了DSL相关的知识,以及将其具体应用到工程实践中的步骤。对于很多开发过程遇到的问题和难点,我们经常是通过阅读这本书找到了答案或解决的方向。在阅读的基础上,不断的进行工程实践,又更进一步加深了我们对书中内容的理解。其间,我们经常得到四位原书作者的帮助,同时,也要感谢我们管理团队和出版社对我们翻译工作的大力支持。

    本书的翻译力求忠实于原著,由于时间仓促以及译者水平有限,翻译的错误和不妥之处在所难免,欢迎广大读者批评指正。

 

周京生

测试开发工程师

 

备注:DSL工具作为Visual Studio SDK 的一部分发布(DSL工具的最早的版本是随着Visual Studio 2005 SDK发布的),SDK可以在我们公司网站上免费下载。本书中的实例都是基于Visual Studio 2005以及相应的SDK进行开发和调试的。目前,最新版本的Visual Studio 2008以及相应的SDK已经正式发布,这个版本DSL 工具与本书所使用的版本可能在某些方面存在细微差别,请读者留意。

[原文发表地址] HPC中国研发团队博客
[原文发表时间] 2008年07月15日         

    “Microsoft impressed the supercomputing community last week when a beta of its new Windows High Performance Computing (HPC) Server 2008 scored a top 25 ranking on the Top 490 list of world's biggest supercomputers.” 当我看到新闻上类似于这样的报导时,总会有一阵激动,微软的HPC产品终于开始在市场上显露出了力量,而且也得到了越来越广泛的关注。

    在微软推出HPC产品前,高性能服务器领域一直是Linux和Unix的天下,作为高性能计算领域的新加入者,微软HPC研发团队的工程师们可谓是筚路蓝缕,以启山林,一切都要从头干起。通过不断的努力,我们在2006年推出了Windows Compute Cluster Server 2003,初步获得了肯定;而今年5月刚发布的Windows HPC Server 2008 Beta2版本引起了业界的极大关注;6月在TOP490.org公布的世界第31次全球超级计算机五百强排行榜上,位于美国伊利诺大学的超级计算机应用国家中心 (NCSA) 的服务器,浮点运算性能68.48TFlops的成绩登上了排行榜的23名,而他们所使用的操作系统就是Windows HPC Server 2008 Beta 1。

    现在,Windows HPC Server 2008已经能够有效管理数千个计算节点,具备高速NetworkDirect RDMA技术、远程直接内存访问界面、高效集群管理工具、面向服务器架构的工作调度、HPCBP规范标准集群互连等等;而且与前一个版本相比,08版产品的易用性,稳定性等都取得了很大的提高。比如我们能在很短时间内在成百上千台的裸机上部署好Windows HPC Server 2008,并可以运行一些诊断程序方便地测试出现有机器的连通性等。此外,通过Heat Map,我们可以直观地看到包括头结点在内所有节点的状态,包括他们的CPU和内存使用率等信息,这些特性都取得了很多合作伙伴的好评。来自NCSA的副主管Pennington在反馈中提到:“当我们在把Windows部署在超过一千个节点的机器上时,我们从这些机器是裸机时开始,到他们开始运行LINPACK测试程序仅仅花费了4个小时, WINDOWS HPC SERVER 2008的性能达到了我见过的同类机器中最高效的之一”。

    除了在性能上的提升,我们也非常注重发展合作伙伴,从合作伙伴的反馈中改善我们的产品,就中国而言,我们已经和上海超级计算机中心,曙光信息产业有限公司等建立了紧密的关系,同合作伙伴一起,共同推动高性能计算产品在中国市场的普及与应用。

    在产品不断取得成功的背后,我们中国研发团队也功不可没。Windows Compute Cluster Server 2003中的界面管理曾经被很多人批评,但是如何使得我们的HPC Server 2008具备强大复杂的功能的同时,又兼具易用等特性是一件非常有挑战性的工作,这直接关系到用户体验,如果在界面上就难倒了用户,则整个产品就不再让人感到舒适了。经过我们的不懈努力,以及不断吸取用户反馈,Windows HPC Server 2008在UI(用户界面)方面做了非常大的改进,包括管理界面,配置向导等都做了很大的改善。例如在网络拓扑结构选择部分,我们将抽象的网络拓扑结构转换为直观网络示意图(图1),这样即不容易出错,也易于用户理解和记忆。

图 1 :直观网络示意图
图 1 :直观网络示意图

    此外,前面提到的Windows HPC Server 2008中受到很多客户欢迎的Heat Map功能,能够让管理员实时监控各个节点的状态,如图2中所示,管理员可以看到现在的所有节点中可用的物理内存(Available Physical Memory),硬盘的吞吐量(Disk Throughput)和系统调用数(System Calls),并且这些指标都用图形化的方式直观的表现出来。

图 2 :Heat Map
图 2 :Heat Map

    另外,强大的Reporting功能,也是由我们中国研发团队完成的:集群的管理员可以将一段时间内关于集群上的信息收集起来,并以图标的形式表现出来,以方便管理员对这段时间内集群的状态进行分析,图3中精美的图标就是Reporting功能生成的结果:

图 3:Reporting 
图 3:Reporting

    在UI上的巨大改进也获得了很多客户的正面回应,来自英国达斯伯里实验室(Daresbury Laboratory)分布式计算组的计算机科学家Igor Kozin说,“Windows HPC Server 2008的一个很突出的地方是它具备非常可靠的图形化用户界面,而在这方面正式Linux仍然还缺乏的。”利用我们的UI界面,集群管理员能很快上手新环境,大大降低了花在配置上的时间和精力。 
  
    除了在UI方面的改进,为了满足不同客户的需求,我们也支持在PowerShell中用命令行来完成包括管理和提交Job等。对于习惯使用C Shell和Korn Shell的管理员来说,使用PowerShell脚本会相当方便。

    我们还增加了对SOA概念的支持,提供了API甚至在Visual Studio中嵌入了Add-In,使得开发人员能方便的利用SOA去部署并行程序。开发人员不用去关心他的程序会部署在哪些节点上运行,我们提供了WCFBroker机制去自动的将程序部署到合适的节点上,简化了开发人员编写并行程序。 

    总而言之,我们提到的这些特性都是以给客户提供价值为核心的,目标是实现我们和客户双赢的局面,因此也获得了众多的好评,而用户的意见甚至批评都成为我们不断改善产品的驱动力,期待Windows HPC Server能取得更大的成功!

刘贤斐
项目经理(实习生)

原文地址:SQL Server Culture

中文翻译:丁晓宁 邓昀     

    在上一篇关于SQL Server中国研发团队的文章中,我提出“文化”是团队建设中领导层面临的最重要的挑战之一。我们如何确保团队伴随着“正确的”文化而成长?究竟什么才是“正确的”文化呢?在这篇文章中,我想比较深入地探讨这个问题。

    让我们首先从“文化”这个词的定义谈起。韦氏词典将“文化”定义为: 
    主条目:culture  读音:['kʌlʧə] 
    功能:名词 
    词源:Middle English,cultivated land,cultivation,from Anglo-French,from Latin cultura,from cultus, past participle 
    综合的人类知识、信仰和行为的一种模式,这种模式取决于学习能力和传播给下一代的能力 b:一个种族、宗教或社会团体的习惯信仰、社会形态和物质特征 c:一个机构或组织特征性的一套共同的态度、价值观、目标和实践  d:与一个特定领域、经济活动或社会特征相关联的一套价值观、约定或社会习俗。

    如此说来,文化是指共同的态度、价值观、目标和行为。每个组织都有一种文化,无论这种文化是刻意培养出来的还是自然演化而来的,或是这二者的结合。有时候,一个组织会很明确地用语言描述出他们希望培养的价值观和文化属性。但是,大多数人都无法理解甚至不记得一个组织“强制”的文化应该是什么,这一点并不让人惊奇。我们每个人都伴随着某种文化背景成长,但估计很少有人会说,他们是通过阅读一份文档中的价值观描述而获得这种文化倾向的。多数人都是通过日常生活汲取文化营养,包括每日体验、行为、反应、正面或负面的反馈和累积,并且从接触到的不同的社会角色像我们的长辈、上司及同事感受文化影响。随着时间的推移,这些价值观念和行为模式就根植在我们的脑海中,我们自己也成为 “已有文化”的一部分,并开始向组织内的其它人传播这种文化。

    研究显示,无论是个人抑或团体、组织,一旦染上某种文化就很难改变或“去除”。同时,就长期影响而言,要区分成功的组织和平均或低于平均水平的组织,“文化”元素是一个更可靠和更重要的衡量因素,其可靠性和重要性远远超过商业策略、一项具体的技术或流程优势,甚至超过特定的领导力优势,不论这种领导力是如何有魅力或富有远见的。恕我直言,这就是为什么让一个团队伴随着“正确的”文化起步是如此重要,不论每个组织如何定义“正确的”文化。

    对一个像SQL Server中国研发团队这样的组织而言,显然很多“正确的”文化是遵循我们位于雷德蒙的“母团队”而来的。当然,这是在中国,我们会理解和适应以使我们自己的本地特色融入到文化中。但一些本质特征仍然是从雷德蒙的母团队中继承而来的,正是这些特征界定了我们是谁,以及我们的行为特征。那么,这些所谓的“SQL Server文化”是哪些呢?很难为这个积累多年的文化给出准确定义或归结为几个关键点,但我尝试在这里列出几点我认为是SQL团队文化的核心:

系统文化

    我们是一个系统的团队。我们创建关键业务平台软件,数以万计的组织利用我们的软件建立和运行关键业务应用,而这些应用又被全世界范围内的数万人群使用,一天24小时,一年365天地不间断应用。我们开发的软件有着数年的生命周期,实际上往往是几十年。任何错误或弱点,无论它存在于我们的设计阶段、实现阶段或流程、方法学中,都可能而且肯定会被表现出来。所以对人的素质要求门槛很高!在这种环境下要取得成功,我们需要一种专业级工程师的思维(见下文)。业余选手不适合!

IC文化

    建设关键性系统软件是需要数年时间来学习的。我们常常在招聘工程师时告诉他们,尤其是对那些刚从大学毕业的人们,甚至要3到4年后他们才能真正在岗位上完全发挥生产力!虽然这听起来有点夸大,事实上是真的如此。工程师要学会客户需求的是什么,如何将其转变为一个产品或功能,什么是好的设计与坏的设计(或伟大的设计),如何权衡利弊,如何有效地撰写强大、安全、可靠、高可扩展性、高性能的代码,而且要易于维护和易于获得领域内的支持,要以有效的方式与团队一起工作,所有这些是需要数年之久才能学会的。这是一个由聪明的新的毕业生转变为专业级工程师的过程,这中间不存在任何捷径。

    那么什么是IC呢?IC是微软术语,指个体贡献者(Individual Contributor,简称IC),与领导或经理相对应。在我们这样依赖高度技术技巧与知识的事业中,我们要非常重视个体贡献者。如果每一个聪明的工程师都打算在自己四年职业生涯后停止做开发而仅做管理工作,我们是无法建立像SQL Server这样的产品的。我常常列举这个统计数字:微软全球范围内有几十个或许数百个副总裁,但只有14个院士(我们很幸运,有2个院士在SQL Server)。我的意思并非是说副总裁不重要,但在微软,当然在SQL Server部门也绝对如此,我们非常重视那些愿意将整个职业生涯贡献给技术开发的人。在某种意义上说,比尔盖茨就是一个终极IC,当然他有下属,但他的主要角色是公司的首席软件架构师,帮助把握公司的未来技术方向。在微软,无论怎样强调IC角色和深厚技术知识的重要性都不过分。

    事实上,我相信这一点是基础的基础,以至于我此刻想谈得远一点,而并非仅指SQL Server、微软或任何特定的公司。在我亚太区的旅行中,许多人表达了这样的信念或希望:亚太地区作为一个整体(尤其是几个特定国家如中国和印度)在世界经济体系中应该越来越多地承担起技术领导地位。显然,亚太地区有着丰富的人才,为这种可能提供了必要的条件。不过在我看来,同样毫无疑问的是,如果亚太地区真的要做到这点,即由在这里的实验室和公司主导长期的产品线和产业创新,就必须要创造一种重视深度技术成就的文化。在目前的环境下,当我和大学生们谈起他们的职业抱负时,10个里面就有8个想在毕业的几年内成为管理人员。说实在的,我们无法期望在这样的基础上建立下一代的技术领导地位。我认为就整个亚太区生态系统而言,而不仅仅是指某一特定公司或团体,建立一种重视深厚技术知识和IC的文化是势在必行的。

创新文化

    数据库产业是一个成熟的一个产业:30多年的历史,每年全球超过200亿美元的年收入,人们很容易认为在这个阶段创新不再是这个产业驱动性的力量了。这样想就大错特错了!在之前的文章从数据库到全面的数据平台,我描述了该领域面临的前所未有广度和深度的挑战。为了应付这些挑战,创新必须是我们基因中的一个核心价值观,否则我们将很快没落。创新是可大可小的,技术上的创新或流程上的创新,但创新必须是深入到每个员工的日常生活和呼吸中的价值观。SQL Server有着创新的传统,甚至从根本上改变了这个成熟的产业,包括领先的易用性和自动化管理、在核心平台上集成BI功能、显著的简化开发者体验等。今天,我们继续着这一传统,在下一版本的SQL Server中有着许多突破性的创新如实体数据模型等。我们绝对需要在未来发展中继续注重创新。

聚焦客户

    在今天这种超级紧迫的环境中,很容易仅仅关注竞争对手而忘记了客户。但至关重要的一点是,只有服务好你的客户才能击败竞争对手,而不是相反。聚焦客户,这不是某一个特殊部门或角色的工作。当然,公司肯定设有专门面向客户的部门,像我们的客户支持服务(Customer Support Services,简称CSS)和其他各种领域的组织。但聚焦客户是组织中每个人工作的重要职责。无论你是一个开发者、测试者、项目经理、架构师、甚至管理人员,不知道客户最终想要的是什么,你不可能做好你的工作!没有比失去与客户的联系更容易在行业里落后的了。在我们的团队中,每一个成员都有一项强制性的工作,那就是花一部分时间在客户上,不论是通过新闻组、论坛还是参加客户会议,或其他各种方式。

做正确的事

    我可以继续讨论一些SQL Server和微软重视的其它价值观,例如尊重多样性、开放性、诚实但尊重、接受大挑战等,虽然这些都是非常棒的价值观,我们的确非常重视,但如果你什么都谈了,那就等于什么都没谈。所以我想以一个简要的价值观来总结,我称之为“做正确的事”。这听起来可能有点蠢,但这却是我们在SQL Server团队赖以为生的价值观。无论工作内容是关于顾客的,关于产品的,或是一个内部问题,这是指导我们日常工作的座右铭。我想举几个例子说明。我敢肯定,每个SQL Server客户直到今天都还记得Slammer蠕虫病毒。这一事件彻底改变了我们SQL Server团队的软件开发方式。当蠕虫病毒来袭时,我们其实刚刚通过一轮安全压力测试并发布了SQL Server的SP3,SP3实际上修补了蠕虫病毒所利用的漏洞。然而,一旦事情发生了,问题不再是我们是否已经发布了补丁。我们必须帮助客户备份系统,尽快地以安全的方式恢复系统运行。就短期而言,SQL Server团队费了很大力气给出工具和指导方针,帮助顾客恢复自己的系统。但我看到的是我们努力所带来的长期变化,我们开发过程的变化、我们备灾的变化、我们整个安全方针的变化。在过去几年中,这些努力的结果已经证明了自己,SQL Server已经证明自己是市场上最安全的产品之一。这意味着我们将不会再有弱点或漏洞吗?显然,答案是否定的。然而,我们可以说的是,我们每天都在努力着,努力使这种事件发生的可能性尽可能降低;而且如果这样的事件再次发生,我们已经在时刻准备着响应。

    我想举的另一个例子是SQL Server 2005中的数据库镜像(Database Mirroring,简称DBM)功能。DBM是该版本中最重要和最受欢迎的功能之一,显然我们面临着压力要发布该功能。然而,快临近SQL Server 2005发布时,情况变得很清楚,我们没有时间把这个功能放到产品中了(无论是在微软内部或一些选定的客户那儿)。像DBM这样关键的功能,我们需要一段时间来证明它已经足够在生产环境中应用。所以,我们面临艰难的抉择,延迟发布或无论如何都要发布DBM或者把DBM从该版本中去掉。这几个选择没有一个是容易的,如果容易,我们就不会在这儿谈论它们了。但最后,我们决定正确的做法是先发布SQL Server 2005但并不标明DBM符合生产环境使用标准,在随后的时间完成产品测试,然后在SP1中标明DBM符合生产环境使用标准。当然,短期内该决定也带来了一些痛苦。但现在回头看,客户会告诉我们,他们欣赏我们的加倍小心和努力,以确保这项功能在他们投入生产使用前是完全合格的。

    但愿这两个例子能让你知道什么是我们所说的“做正确的事”,实际上还有很多此类的例子。这篇文章已经够长了,就不再举例了。我希望大家都能明白,当我们提到“SQL Server文化”时它意味着什么。要确保我们SQL Server中国研发团队在未来几年中伴随着这种根深蒂固的文化印记一起成长,这是一个有意义的挑战。也是我们决定建立这个团队时所制定的核心承诺的一部分。

    下次再聊 —加油,再见!

Prakash(孙博凯)

来看看我们的产品 之 集群性能监测

大家好,首先我非常高兴地为大家带来一个好消息,Windows HPC Server 2008的Beta 2已经发布啦!相较于上一个Beta版本,我们一方面进行了许多新的产品特性的开发,另一方面也修正了不少问题,相信大家一定已经迫不及待地想要一睹Beta 2的风采了吧。您可以从http://connect.microsoft.com了解更多关于我们的Beta 2的信息。点击这里阅读全文。

 

Small Business Server 2008 RC0 公开体验版发布!

经过广泛的开发测试以及一定范围内的评估,我很高兴宣布Windows Small Business Server 2008 RC0的公开体验版已经成功发布。点击这里阅读全文。

 

Silverlight 2 Beta 2来了!

美国时间6月4日上午9点(北京时间6月5日凌晨0点),微软全球副总裁Soma Somasegar与微软执行主席Bill Gates在于奥兰多举行的微软全球技术大会TechED上共同宣布并展示了这周将会发布的Silverlight 2 Beta 2。点击这里阅读全文。

 

现在就下载开源工具P/Invoke Interop Assistant

P/Invoke Interop Assistant是一款帮助使用P/Invoke(及reverse P/Invoke)的开发人员进行托管代码与非托管代码之间签名转换的小工具。在一月份的MSDN杂志的网站上,我们曾经发布过它的第一个版本。点击这里阅读全文。

 

关于团队文化

在上一篇关于SQL Server中国研发团队的文章中,我提出“文化”是团队建设中领导层面临的最重要的挑战之一。我们如何确保团队伴随着“正确的”文化而成长?究竟什么才是“正确的”文化呢?在这篇文章中,我想比较深入地探讨这个问题。点击这里阅读全文。

TechEd North America 2008 Developers

    抵达奥兰多那天是儿童节,我和同行的陆榕按捺激动的心情,期待着6月3日到6日举办的2008北美区微软技术教育大会(TechEd)开发人员分会。

    每年微软会在世界各地举办技术教育大会(在中国当然也有),其中北美区的是规模最大的。今年微软第一次把北美区大会分成两部分,其中开发人员分会有超过六千人注册,而随后一周举办的IT专业人士分会更是有超过一万的注册量!

    这么多程序员齐聚一堂,开发人员分会注定是一次成果丰硕的欢乐派对。

 

主题演讲

    Bill Gates的主题演讲是必须要参加的,这是他最后一次以微软全职主席身份进行公开演讲了。他展望了应用程序开发的未来,邀请了Soma,Brian Harry,Dave Campbell展示了Silverlight,Rosario,Sync Framework等产品与技术。在这里你可以看到全程的现场视频和文字记录。

    Soma在做完demo不久就在自己的博客上新增了一篇帖子。你可以在这里看到Soma博客的中文版,这是包括我和陆榕在内的开发工具上海研发团队负责翻译的。

 

技术教育

    对于开发人员来说,最好的派对不是音乐和啤酒,而是最新最酷的技术!本次开发人员分会虽然只有四天,却提供了超过六百个技术培训机会,形式包括技术讲座、动手实验、交互体验、微软认证考试等等,内容覆盖了微软技术的方方面面:数据库平台、体系、开发人员工具和语言、Office和SharePoint……

    要在短短的篇幅里介绍完全是不可能的,在这里我就和大家分享几个问题吧:

1. 许多听众都很喜欢Class Designer这个功能,并且惊讶地发现原来这并不是一个新功能,在VS2005中就已经有了。那么对于功能的设计开发人员来说,要如何提高自己产品的“可发现性”呢?

2. 在某个广泛使用的微软产品中的某种情形下,当你用鼠标点击一个按键后,会发现自己的鼠标被“移形大法”到另一个位置!这个产品是什么呢?<下周五后公布答案 :-) >

3. F#是非常酷,非常像数学语言的一种面向对象编程语言。下面这段F#代码你能读懂么?

let increment x = x+1
let data = [1..5]
let data’ = [6..10]
let map func mylist = { for x in mylist -> func x}
print_any (map increment (data@data’))

它的输出是什么?<下周五后公布答案 :-) >

 

演示展台

    因为我是Class Designer和OCS Designer(两个在Visual Studio 2008中的设计器)的项目经理,所以有幸作为“Visual Studio 2008”展台的工作人员,向开发人员介绍一些新功能并收集他们的反馈。有这么大的一个名字,可以想象我们面对的是异常广泛的顾客群体,而他们会提出各种各样的问题。值得一记的有:

1.  一位用户安装Visual Studio 2008 SP1 Beta1失败。我将问题报告给负责setup的小组。同一位用户在第二天找到我,说他虽然还没有得到回复,但自己解决了问题,现在“一切都很好”。安装和升级一直是令用户比较头痛的事,我们意识到这一点,并致力于将其改善。

2. 另一个用户想给Class Designer提建议,因为没有找到我,第二天又来到我们的展台。他想要的功能有:

  • Class Diagram多级视图。从最高级别(解决方案视图)到最低级别(文件级别)
  • 可配置的代码生成。用户希望能控制代码生成的位置/方式。

    用户的反馈对我们来说是非常宝贵的,既可以帮助我们更好地了解客户需求,也能指导我们对未来版本进行新功能排序。

3. 听到用户说“这个功能太赞了,我能在我的产品里使用同样的东西么”总是让人很高兴。有个用户在实验机器上看到尚未正式发布的Schema Explorer,发现在explorer中进行搜索之后,不但搜索结果本身会被高亮显示,同时在右侧的滑动条上也有书签一样的标识,这样用户可以很清楚应该滑动到哪个位置来找到其他的搜索匹配项。这并不是我们的发明,但这样小小的功能确实能给用户带来便利。

 

最后...

product idols

    由左到右:Microsoft Virtual Labs,Visual Studio 2008,Windows Server 2008,Webcasts。Visual Studio 2008这个小伙子(绿色的)看上去有点呆……但还是挺酷的!

 

 

曹阳(项目经理)

Technorati Tags:

WSH at Computex    简体和繁体中文版Windows Home Server将在2008年下半年全面推出了!6月5日,Windows Home Server产品部总经理Charlie Kindel在台湾宣布了这个消息。此次中文版在台北Computex展出,合作伙伴包括技嘉(Gigabyte), 威盛(VIA), 启基(WNC)和声宝(Sampo)也将推出全套配套的为家庭用户提供的的解决方案,这是我们第一批为亚洲市场推出的本地化版本。自07年发布以来,Windows Home Server已经在全球发售,此前英文版的产品已在北京召开的TechEd’07展会与中国用户见面。中文版将我们的产品走上一个新的历史舞台。

    Windows Home Server有哪些吸引人的功能呢?随着计算机以及多媒体技术的普及,个人用户需要一个简单的解决方案来管理越来越多的数字媒体资料,包括照片,音乐和视频文件。Windows Home Server专为拥有多台计算机的家庭用户而设计,帮助用户更方便的管理和访问个人的数据文件,并为重要数据提供可靠的保护功能。产品提供简单易用的三大特性,自动备份,可扩展的存储系统,远程访问。作为第一款针对家庭用户的服务器系统,Windows Home Server正在成为一个数字家庭的应用平台:不单各种家用电子产品可以通过它来共享多媒体文件,第三方厂商更在此平台上开发了多种附加服务,从数码影集到家庭自动化应有尽有。

       WSH

    在Windows Home Server的开发过程中,中国团队起到了重要的核心作用。产品的远程访问特性由我们中国团队开发并测试完成。借助这个特性,您可以通过自己选择的免费个性化 Windows Live Internet 地址访问家里的服务器主页。只需使用浏览器登录到家庭网站,您就可以任意地管理、上传和下载照片、音乐文件、视频和个人文档,同时您也可以远程登录到家庭其他计算机的桌面操作,就像您坐在家里的电脑前一样方便。当然,这次中文版的发布也离不开我们,在展会上,我们的远程访问特性得到了广泛的好评。

    更多关于Windows Home Server的新闻,请参看http://blogs.technet.com/homeserver/

张帆、孔令开

    “Min, 我知道你以前有客户支持的经验,有没有兴趣了解一下微软客户服务是什么样的?”Prakash眨眨眼睛,一副吊我胃口的神态。

    “当然了。”

    “是这样,STB要在中国推广Frontline 项目,我推荐你作为第一个参与者,大概会花3周时间…”

    “啊,3周是不是长了点儿啊? SQL Server 2008马上就要发布了,我这儿还天天加班呢…”我有点后悔刚才答应得太痛快了。

    “花这些时间是值得的。你知道,美国SQL Server团队里好多资深的同事从这个项目回来后,都说自己彻底改变了。”

    我心里还是犯嘀咕:你确信他们都是往好的方向变化吗?

    以上是本人荣幸地成为中国区Frontline 项目第一人的过程。言归正传,先来说说这个Frontline 项目到底是个啥东东吧:它是微软服务器与开发工具事业部(STB)为了由“以产品为中心”转变为“以客户为中心”推行的一系列计划中的一部分。参与这个项目的产品研发工程师将用整整2-3周时间近距离观察企业客户使用微软产品和技术的“真实世界”,理解他们实际工作中的迫切需求和“痛苦”,进一步思考如何开发更好的产品和技术。

    第一周我在微软亚太区全球技术支持中心与工程师们交流,接听客户的产品支持电话并参与解决问题。余下两周在客户现场,直接参与应用系统部署并听取客户对产品和技术的反馈。

    在支持中心的日程安排以小时计。第一天早上9点,准时向我的Mentor小邓报到,她花了一上午向我详细介绍了他们的责任范围、工作流程和使用的各种工具。 来而不往非礼也,当天下午我也为技术支持中心的同事们举办了一个“数据库查询覆盖”的讲座。挑选这个题目我是花了心思的,一个是因为查询优化器是我的团队负责的组件,另外大家对查询优化也比较感兴趣。果然,下午的讨论很热烈。小邓要求每个人发言之前先自我介绍一下:叫啥名字,负责什么组件,哪儿人,家里娃多大了… 印象最深的是一位绰号“BI一条龙”的同事,他负责集成服务、分析服务和报表服务,在BI方面是位专家。这种介绍方式安排得太周到了,我很快和大家熟悉起来。趁热打铁,讲座后我就和负责各组件的同事约好了时间,周二、周三,和热线部门的几位同事在一起工作;周四是Internet支持部门;周五上午是Supportability,下午访问合作伙伴售前支持。

    Internet 支持工程师的工作很有意思,我第一次知道我们的技术论坛等网上社区是有专职人员参予问题解答的。我也使用他们的工具浏览了一下未解答的问题,从SQL实现到数据集成服务问什么的都有,想回答还真不那么容易。这也多少反映了研发人员和技术支持工程师的区别,我们对产品局部功能如何实现了解比较深入,支持工程师则对整个解决方案和产品特性了解的都很全面。

    在Supportability部门的半天经历也让我获益匪浅,之前我可分不清楚什么是可支持性,什么是可管理性(Manageability)。在负责SQL Server Supportability的小平跟我讲解之后,我算彻底是明白了。可支持性是指软件诊断、修复和预防问题的能力;而可管理性则指监控、维护和控制软件的能力。举例来说,SQL Server支持在线创建索引,支持数据文件自动增长,自动维护统计值,这说明可管理性比较好;可支持性则反映在解决问题上,比如你会用DBCC检查和修复数据文件,也会用到profiler 去帮助你分析性能问题。

    在技术支持中心一周结束后,我又现场参与了SQL Server 2008试用客户的应用部署。他们的应用把SQL Server 2008的空间数据支持新功能与商业智能报表相结合,非常直观的展现了各大区域的业务数据。相信随着数据库对空间数据支持的越来越完善,客户开发越来越方便,这种类型的应用会很快流行起来。

    最后一周,我和同组的另一位测试开发工程师胡雷访问了一个重要银行客户。通过与项目实施和系统管理人员的交谈,我们了解到用户对SQL Server的能力和易管理性颇为认可,特别是听到用户的几个应用数据量都在n个TB,让我心里颇有些高兴: 我们对企业级数据库的重视还是有点成绩的嘛J。当然也有批评,比如恢复数据库备份的时候, 那个容易被忘掉的”MOVE TO”子句,咋就不能多给点儿提示呢?这个这个,虚心接受。我们就是为了收集意见来的,一定会把中国客户的意见转达到整个SQL Server产品开发团队。

    应要求,我们也向客户介绍了SQL Server 2008的情况。客户对一些对银行金融应用相关的新特性,比如外部加密支持、外部密钥管理和可覆盖查询的审计还是很感兴趣的。针对BI数据压缩、数据库备份压缩这样的新功能,他们也询问了很多细节问题。毕竟对TB级的数据库,压缩不单可以提高IO效率,也能节省存储设备上的投资。

    为期三周的Frontline项目结束了,比我接受任务时想象的要快得多。我彻底改变了吗?不知道。但是我对什么是好的软件产品的理解有了很大改变:功能强大,有各种超酷特性很重要,但更重要的是能直接满足客户的需求。一个好的产品还要易于使用、方便管理,这叫高可管理性;客户使用上出了问题要容易诊断,最好还能自动修复,这叫高可支持性。

何民

    在过去的两年里,微软中国研发集团服务器与开发工具事业部的暑期实习生中总能看到这样一些学生的身影,他们说着富有九种声调的粤语和普通话组合,他们热情开朗而满怀憧憬,他们拥有出众的presentation 和interpersonal skills。他们就是来自香港的学生,其中大多来自香港中文大学,香港科技大学和香港大学。

    在刚过去的四月, 我和5个产品组的同事组成了一个香港实习生招聘团,访问了其中的两所香港高校。当飞机平稳地降临在香港机场,走出机舱的瞬间,一丝热风捎来了海的味道,轻盈地拂过,南方已一片初夏情景。

第一站:香港中文大学

    初晨,第一缕阳光唤醒了整个城市,我们一行驱车前往香港中文大学。汽车驶出了香港岛,城市的喧嚣逐渐湮没,远处依稀眺见了山丘温柔而蜿蜒的曲线。清新的空气中,电台音乐变得具有穿透力,心情却一片怡静。终于,我们来到了环山而建的香港中文大学。

CUHK_3 CUHK_2 CUHK_1

ACM座谈会:重遇Kane

    香港中文大学ACM团队今年成功晋级World Final,座谈会上,我们惊喜地遇到了去年暑假在我们事业部实习的Kane,一个带着黑边眼镜的香港男孩,他一边热情地帮助我们回答学生的问题、分享自己的实习经历,一边代表学生向我们提问。Kane的双重身份让在座的同学和我们都觉得异常亲切。座谈会结束后,即将毕业的他,向我们递交了微软正式员工的申请。

    随后的宣讲会,吸引到了更多的学生参加,我们向大家介绍了微软中国研发集团和服务器与开发工具事业部的组成、各个产品组的项目以及招聘的职位(软件开发工程师,软件开发测试工程师项目经理) 。

CUHK_Seminar 2 CUHK_Seminar 1

第二站:香港科技大学

Future Start:Cammie

    第二天,我们访问了依海而建的香港科技大学,并在那里遇到了许多留学香港的大陆学生,也遇到了即将在7月获得博士学位的Future Start -- Cammie,一个来自大陆的女孩。Cammie自豪地告诉她的同学自己将加入微软,并分享了在微软面试的经历。点击这里,你可以了解更多微软的面试技巧。

HKUST_1 HKUST_2

热点话题

核心vs边缘:

    实习生在微软是否能参与核心技术的工作,一直是同学们最为关心的问题之一,在此次香港的两场宣讲会中也无一例外地被提及。每个实习生像正式员工一样地工作,在mentor的帮助和辅导下,成长一个微软的工程师。实习生,是我们潜在的未来员工。过去的两年中,微软中国研发集团服务器与开发工具事业部招收的毕业生中,有一半左右是从实习生转变过来的。

关于上海:

    上海的衣食住行是另一个热点话题。对于从未离开过香港的学生来说,上海是神秘而又陌生的。此次香港之行,我们成功地招聘到了更多像Kane一样的实习生,但愿他们通过自己的暑期实习体验,能向他们的同学构画和诠释出自己眼中独特的上海。

后记

    香港行之后,我们继续拜访了内地的多家高校:北京大学、清华大学、中科院、中科大、复旦大学、上海交大、中山大学、华南理工… …同时,我们启动了加拿大Waterloo University的实习生招聘项目。服务器与开发工具事业部的第一个来自Wisconsin University的女生将在今年六月开始她的微软实习生涯。

    随着暑期的到来,我们期待着更多崭新的面孔出现在事业部,听到来自世界各地的声音,为我们注入新的动力,带来新的生机,新的希望… …

 

黄澜

 

备注:对实习机会感兴趣的同学请留意本篇博客附上的三类职位JD,并可以直接将英文简历以电子邮件的形式寄给stbcint@microsoft.com。祝大家好运!

Technorati Tags: ,,

微软为开发人员提供的成长环境

时间过得飞快,不知不觉来到SQL Server中国研发中心(SQL CRD)已半年多了。简单地记录一下自己的感想吧,免得再过些日子就全忘了 。点击这里阅读全文。

 

Step by Step LINPACK Guidance

I’ve been working on deploying LINPACK on our Windows HPC Server 2008, including compiling source code, setting up environment for the machines and also making adjustments on input parameters for LINPACK, so I would like to share some experience with you on the issue. 点击这里阅读全文。

为Windows HPC Server 2008选择合适的网络拓扑结构

大家好,我是HPC组的DEV朱仁琪。在加入微软的一年里,非常有幸能够亲眼目睹我们的Windows HPC Server 2008捷报频传,从第一个Beta版本到最近发布的社区预览版本(CTP),功能越来越强大,着实令人兴奋。在此我和大家一起分享一下我对于Windows HPC Server 2008网络配置的一些心得。点击这里阅读全文。

利用SBS最佳实践分析器进行系统分析并导出结果

SBS最佳实践分析器(Best Practices Analyzer)是一个非常有用的工具,可以通过扫描系统的各个组件了解系统的配置状况,发现漏洞。除了可以在最佳实践分析器中查看系统报告外,我们还可以把扫描报告导出,交给专业的支持人员进行分析。这里给大家演示如何用SBS最佳实践分析器扫描系统并将结果导出的过程。点击这里阅读全文。

关于团队的一些小小变动

由于某些原因,我们与这里的博客小别了一段时间。并不是因为我们对传播Silverlight的相关知识丧失了激情,也并非这段时间没有Silverlight的相关故事,只是在研发团队内部发生了一些小小的变动,我们在根据变动调整自己,也在根据变动计划将来。点击这里阅读全文。

微软发布Windows Essential Server Solutions公众预览版和定价

客户和合作伙伴开始评估预览版的Windows Small Business Server 2008和Windows Essential Business Server 2008。 雷德蒙德,华盛顿州 – 2008年5月13日 – 客户和微软公司合作伙伴现在可以通过访问http://www.MultiplyYourPower.com 了解试用面向中小企业的Windows Essential Server Solutions (包括Windows Small Business Server 2008和Windows Essential Business Server 2008)预览版的方法,与此同时,微软也公布了两套解决方案的定价。