微软张宏江:工程水平决定创新能力

来源:互联网 发布:医学类搜题软件 编辑:程序博客网 时间:2024/04/23 20:57

微软张宏江:工程水平决定创新能力

在研究环境里,无所谓成功和失败,而做工程、做产品,最后只有一个衡量——这个产品最后在市场上能不能卖出去?

虽然中国号称盛产工程师,虽然我国的教育体系被认为最适合培养工程师,但是,其实“工程”这个词在中国是被完全忽视的。

中国企业拥有世界上最强大的低成本制造体系,拥有最有潜力的广阔市场以及最灵活最本土化的营销体系,现在又有越来越多的企业把创新提到战略高度,开始大力发展自己的研发和设计能力。但是中国企业依然很难持续制造出成功的产品。在一个产品从最初的设计定义,到最终按时推向市场的一系列复杂环节上,大部分中国企业的管理经验还停留在项目管理的阶段上,只考虑到时间维度,而忽视了质量和成本的平衡。

其实,连接这些复杂环节的就是“工程”。关于工程,有各种各样的定义,但是过滤掉众多复杂的修饰,核心的无非是这样一些字眼儿:

 

      ★应用技术、科学和机械知识,去设计材料、结构、机器、设备、系统和流程,以完成预期的目标或发明;

★以最短的时间和精而少的人力。

相比较而言,微软无疑是此中高手。回顾微软的诸多产品Windows、Office、数据库、浏览器等,都不是最初的原创者。但是微软总是有能力快速把产品市场化,并持续推向成功,这背后是一套不断成熟和完善的方法论作支撑。

微软亚洲工程院成立于2003年。不同于研究院,他们的重点在于最终产品的开发,7年间成绩斐然。微软CEO鲍尔默说:“微软亚洲工程院缔造了融技术创新、产品开发、研究成果转换于一体的全新机构模式。”目前微软5大产品研发方向——互联网技术、移动技术、数字娱乐、Windows工程以及面向新兴市场创新技术和产品的孵化都在此设立了产品开发团队。

《商业价值》杂志不久前采访了微软亚洲工程院院长张宏江博士。相信微软的产品工程理念,对于其他行业的读者也具有极强的实际意义。

Q很多人都分不清工程和研发有什么区别。工程到底是什么?

A其实研发更多是强调某一个技术,而工程更多的是把无数的技术怎么融合到一个产品中间去。在研究上,基本上不太讲所谓的约束或者是妥协;而在工程上一定要有约束。有很多约束,一个是成本约束、资源的约束,还有一个是时间的约束,这些因素就更多了。

很多情况下,软件因为本身有一个创意的过程,所以大家会忽略它工程的性质。我们很容易误解一件事情——我们给哪个公司外包了一个软件项目,把这叫工程,其实这不是工程,是一个项目。工程是一个设计和系统的流程。工程院很早做的一件事情,就是把微软的产品开发理念加工了一下,在中国提出一个产品开发的三足鼎立理念——项目经理、开发工程师和测试工程师一起工作,一起控制项目的进度。

举个例子,在软件工程上,产品最后集成要检验的时候,有一个过程叫Triage(分流),是说在战场上进行战地救护时,选择救哪个、不救哪个伤员的过程,非常残酷。但在战场上,有限的资源,还要考虑恢复战斗力的需要,所以哪些送走,哪些伤员先不管,这是战场医生和护士要做的一件事。对于软件开发过程,已有成百上千的错误(Bug),这时候你要把它分类,因为最后总是会有错误,你要知道哪些错误可以留,哪些不允许留。毕竟时间和资源都有限,总要有取舍,这需要测试、开发和项目经理反复协调。测试工程师提供错误出现的频度,而开发工程师则要提出修正错误需要的资源和时间,最终大家根据时间和资源来决定。

这是一个非常复杂的过程。我用这个例子来说在一个工程的过程中间,所牵扯到的方方面面很多。为什么这么强调流程,为什么要强调一开始设计的时候,测试工程师就应该参与。因为从一开始就要想到,这个功能(Feature)有没有可测试性,这是一个系统工程。

Q的确是很复杂,整个工程体系,有没有一些成熟的方法论去管理这些东西呢?

A我刚才说到的三足鼎立,这是我们的方法论。在流程过程上来看,任何一个产品在开发过程中间,你要把它分成几个里程碑。分的过程,也是一种方法论。比如在第一个里程碑要多花时间,因为还没有编程,系统到了第二个里程碑还可以推倒重来,那么到了第四个以后你可能就不能重来了。

我到今天做了6年了,也没觉得自己是一个所谓的工程专家。我下面有很多同事,他们是真正的专家。他们没有技术背景,不是研究数据库、人工智能、搜索引擎的,而是了解整个流程。当一个新项目交给他,他能够把整个项目分解成各个模块,这样就避免了作坊式的做法。

Q从研究院转到工程院,你觉得最大的转变是什么?

A我当时转做工程院的时候,我的老板,也是整个全球研究院的院长对我说,做研究有很多优势,别人只知道我们成功的东西,做10个项目有9个失败了,你把它扫到地毯底下,别人都看不到了。但是做产品不一样。做产品你做10件产品有9个成功,别人记住的是失败的那个。从某种意义上,做工程失败的可能性非常大,而成本也非常高。我觉得他其实强调了一点,在研究环境里你是非常自由的,无所谓成功和失败,因为失败了证明这件事情不能做,本身也有积极的意义,你甚至还可以写出论文来,探讨一些失败的原因。而做工程、做产品,最后只有一个衡量——这个产品最后在市场上能不能卖出去?这里面因素就多了,我们抛开市场的因素,还有技术因素、工程师因素,以及是否有很好的流程保证质量等等……

Q听你讲了讲,我觉得做工程院的院长要比做研究院长挑战大得多?

A研发只要把握几条,第一个是好环境,第二能吸引好的人才。这两条下面,作为院长,你要有比较好的悟性,能把握未来的发展方向。因为坦率地说,你不希望去干扰每个研究员做些什么,但是大致的方向还是应该有所把握,可以通过奖励机制,通过资源的分配来引导。所以,研究相对来说比较清晰、比较简单。工程需要可控的因素很多,但事实上不可控的因素更多,要在可控和不可控之间进行平衡。

Q您现在作为工程院的院长,每天工作的内容都是什么呢?

A原来在研究院的时候,我们一年做一次院长回顾(review),基本上把整个院的项目有重点地过一遍,更多的是了解,大致知道我们的资源分配到哪些研究方向里面去了。到工程院就是每个项目、每个里程碑都要有回顾。这种回顾真的是在做决定,而且你每个决定,都会看到成本和损失,以及产出。

Q工程院对人才有什么特殊要求吗?

A做工程的人,需要具有两个素质,一个是对自己工作本身的技术很了解,第二要对工程的过程、流程要有一定的了解,这是对工程师的要求。

对于一个管理人员,要求不仅对技术了解,对流程了解,还要有很好的执行力。在很多情况下,管理人员的判断实际上很大程度上基于对技术和流程的了解,基于对资源和每个人能力的了解。我也会越来越强调人的抗压能力。因为毕竟会有失败,而且这种失败,很多情况下不是自己可控的;加上技术发展也很快,我们每个人其实都承担着很大的压力。怎么能够保持乐观的状态,保持自己对于技术和工作的激情,我觉得都是非常重要的因素。

Q工程院其实需要一些特别资深的人,在中国似乎这样的人很难找?

A对,所谓资深的人,一个是说纯做技术的,做了10年,还在做技术。无论是做数据库还是纯编程,这样的人少。因为我们的管理层,一线经理、二线经理甚至一直到总经理,都需要懂技术,而现在国内大部分人当了一线经理以后,就不再做编程了。而我们不仅要求一线经理要编程,二线经理还要做代码检查(code review)。

这个我觉得也不必特别失望。对我来说,认清了一个现实,可以看到一个国家的管理人才一定和它的工业水平是相当的。中国没有很多具备大规模研究经验的管理人员,因为没有太多做大规模核心软件的公司。

Q再追问一下,怎样描述现在研发、项目经理、产品经理之间的关系?现在产品经理很重要的工作就是定义一个产品,和工程流程似乎有重合?

A我来说一下微软怎么做。首先,要把研究拿出去,因为微软的技术研究是非常开放的,要开发一个新的产品,不仅看研究院有什么技术,还要看整个市场有什么技术,所以我把研究拿开。对于一个新产品,有几个部门牵扯进来,一个是工程部门,我刚才说到了项目经理和测试工程师、开发工程师。还有市场部,一个叫产品管理,一个叫产品规划。产品管理更多地是和市场打交道,了解市场需求;产品规划是拿到这些市场需求以后,如何定义一个新的产品。比如定义平板电脑的产品,但是市场的定义是从用户角度出发的。到了工程院这里,我们要做的就是从工程的角度来定义什么叫平板电脑——笔输入、多触点等等,把产品的概念分解成一个功能列表(Feature List),这就引入到工程这一层了。市场部会提出时间的需求,工程部会回应大概需要多长时间。然后开发工程师看特征列表以后,会提出完成这些功能(Feature)需要用哪些新的技术,我们有哪些成熟的技术,甚至是我们已经有的程序。

Q项目启动以后,是不是跟市场部的交互就会少很多了?

A对,我们基本上一个产品刚开始编程的时候,产品规划的人就开始看下一个项目了。

Q我知道你对美国的工程课程和院校做了不少研究。你觉得从工程院的角度来看,现在中国的教育有哪些问题?

A我其实并不愿意特别明确地去批评中国的教育体系,我觉得每个教育体系都有它的历史原因。

如果说一个比较普遍的建议,我们每个学校不应该去追求大而全,应该停下来想一想,教育的宗旨到底是什么?在美国大部分的企业,包括微软,到学校招人并不追求一定要硕士,大部分的软件工程师是本科毕业。为什么我们在国内反而要招硕士呢?我们硕士质量是不是就那么高,我们的硕士是不是真的多学了多少东西,或者多学了多少有用的东西呢?我们学理工的人,知道技术换代很快,所以最终强调的是学习的能力,对技术的悟性,对于流程的理解,这些是比较根本的东西。如果我们学校的教育体系里这些东西被忽略掉了,反而学了很多课程,而这些课程可能学的时候有一半已经过时了,这是不是很大的资源浪费?从这个角度来看,我们应该反省一下。

我比较喜欢美国的Harvey Mudd College。这个学校在国内很少有人听到,是美国本科最好的学校,很多孩子要去这个学校,像伯克利都不会考虑的。这个学校一年只招100多个学生,总共只有不到600名学生,而且只有本科。它的教学宗旨强调三点——系统、设计、经验,这就是工学院。而一个理学院往往强调的是创意和思维,强调探索。所以理学院的课程更加松散一些,这边的课程就耦合得很紧。

这个学校最有名的课程就是工程,它不分电子工程还是化学工程,强调的专业就是“工程”。课程强调的就是系统设计、通过实验进行学习,最后一个是专业性的实践。它的课程设置强调的是技术的宽度和精专,然后强调的是跨领域,强调的是解决问题的能力。

原文链接:http://content.businessvalue.com.cn/post/2347.html

原创粉丝点击