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

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

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

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

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

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

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

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

部门经理   徐鹏阳

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

从卓越工程的角度看微软中国开发团队的成长 (一)相关推荐

  1. 从android研发角度看鸿蒙应用开发

    最近公司开发任务,要求做一款现有应用配套的鸿蒙FA,于是开始了我的鸿蒙开发之路.在这里记录并分享我从一个android开发工程师的角度,对鸿蒙和android在开发编码阶段的同与异. android转 ...

  2. 从社会契约论的角度看区块链开发的属性

    "世上本无路,走的人多了,也就有了路:世上本有路,走的人多了,也就没了路".比特币令牌本身没有价值,屯.用的人多了也就有了价值,价值纯粹存在于社会层面.但比特币令牌还远远没有走到世 ...

  3. 数据库的方向 - 行vs列(转自: IBM i 中国开发团队)

    转载地址:https://www.ibm.com/developerworks/community/blogs/IBMi/entry/database?lang=en 原文链接:http://ibms ...

  4. 微软中国发布“IE8浏览器性能解密”,为金山网盾辟谣

    天,微软中国安全技术团队摘取解释了<Internet Explorer 8 Performance Whitepaper><IE8性能白皮书>的部分内容. 微软安全团队为了避免 ...

  5. 微软IE7开发工作即将完成有待精雕细啄(转)

    微软IE7开发工作即将完成有待精雕细啄(转) 微软下一代网络浏览器IE 7就要完成了,并且正在进行最后发布阶段之前的精雕细刻.微软IE 7的一位开发人员称, IE 7现在实际上可以认为是"规 ...

  6. 从软件角度看央视“赢在中国”节目的那套投票系统

    中央二套的"赢在中国"的这套鼓励年轻人创业的励志节目真的很不错,我也断断续续看了几场.感觉柳传志和张瑞敏评论的很到位.周宇具备很强的闯劲的勇者,很有激情,很能感染团队中的每个成员, ...

  7. 【引力科技播】谷歌共享单车每周丢失250辆,微软中国工程师说漏嘴

    新的一周又开始啦!最新鲜的圈内资讯已经打包,快来欣赏吧!(关注引力空间站公众号:gstartups,了解更多.) 1.谷歌员工共享自行车,每周丢失250辆 据siliconbeat报道,谷歌五彩斑斓的 ...

  8. 微软中国 CTO:请把 AI 拉下神坛

    「我们不能用制造问题时的同一思维水平来解决问题」,这句出自爱因斯坦的箴言,对于身处智能时代的人类社会而言,意义匪浅.引用此言的是微软(中国)首席技术官韦青. 如何看待人工智能,又应怎样理解深度学习?如 ...

  9. Azure手把手系列 2:微软中国云服务介绍

    在前面的文章中,我们已经了解到Azure有两种,分别是由微软直营的国际版,以及微软中国委托21世纪互联运营的国内版,两种Azure存在一定差异,并且数据不互通.帐号以及计费不统一.所以在选择微软公有云 ...

最新文章

  1. cron引起inode节点用光的情况
  2. Windows CE的电源管理之三
  3. 力扣605 种花问题(C++,附思路)
  4. LeetCode(561)——数组拆分 I(JavaScript)
  5. 【EntityFramework学习笔记】为什么要使用迁移
  6. CSS flex 布局 一些基本属性应用
  7. 【图像分割】基于matlab随机游走算法图像分割【含Matlab源码 149期】
  8. JavaScript中使鼠标光标变为图片
  9. 计算机技术比武优秀获奖感言,教学大赛获奖感言4篇
  10. 我的自学ROS历程3-3-Vsual Studio code安装
  11. 字节跳动面经(一、二、三+大boss+hr面)
  12. Scrapy spiders介绍
  13. 联想用u盘重装系统步骤_联想笔记本u盘重装系统,详细教您联想笔记本怎么使用u盘重装系统...
  14. 40Gbit/s QSFP光模块的软件实现(硕士学位论文)错误指出
  15. 华科计算机博导刘云生论文,华科论文式要求.doc
  16. 关于功耗芯片那些事(四)
  17. 集丰照明|LED五种调光方式详解(DALI/DMX/0-10V/PWM/可控硅)
  18. 你是个成熟的项目了,该学会自动构建自动部署了
  19. CSDN 免费视频教程
  20. OKR案例:销售部门在OKR执行中的实战问题

热门文章

  1. c语言不借助其他变量交换a b的值,C++面试题之数a、b的值互换(不使用中间变量)...
  2. python中breakpoint什么意思_it/breakpoint是什么意思
  3. 12306一直提示网络有问题_教你怎么在12306官网订购火车票 火车票查询12306订购...
  4. IDEA中如何给含有main方法的普通类设置JVM参数
  5. mysql卡住如何定位_MySQL 5.7中如何定位DDL被阻塞的问题
  6. python自动生成坐标脚本_用一个简单的python脚本从经纬度坐标获得高程
  7. can总线报文是固定的吗_CAN总线负载率的计算方式
  8. spring cloud利用feign和sentinel进行内部或外部远程调用
  9. java 怎么从date取得年份
  10. tag 和branch的区别