当前位置:  开发笔记 > 数据库 > 正文

专访微软Office性能团队杨珂:高性能驱动好产品

随着软件产品的规模和使用群体正在呈爆发式增长,性能逐渐成为了软件质量保障的一个重要组成部分,为此我们采访了微软Office性能团队程序经理杨珂,一起了解:性能的重要性、产品开发管理者的意识和性能团队的建设

随着软件应用的越来越广泛,软件产品的规模和使用群体正在呈爆发式增长,因此性能测试越来越受到软件供应商的重视以及性能测试逐渐成为了软件质量保障的一个重要组成部分,而相应的,如何组建一个高效的性能测试团队自然就成为了有效进行性能测试的关键。为此我们采访了将在月底参加TOP100SUMMIT: 2014大会的微软Office性能团队程序经理杨珂,一起来了解:性能是什么、性能的重要性、产品开发管理者的意识和性能团队的建设等。

杨珂(Conan Yang),微软Office性能团队的程序经理。他是新疆人,浙江大学本科与博士,曾在微软亚洲研究院实习,在香港科技大学访问,毕业后在微软上海SQL组工作,2012年加入Office总部的共享性能团队。其它技术兴趣:图形学、信息可视化、可穿戴。

CSDN:请和大家介绍下你和目前所从事的工作。

杨珂:大家好,我在微软Office客户端应用部门的性能组担任程序经理,目前主要负责用Telemetry(遥测)的方法评价和改进Office应用的性能。

我很荣幸能回国向国内大牛学习的同时,也向同胞传递自己亲历的外企的软件文化技术,祝愿祖国信息技术蒸蒸日上。

CSDN:对于像微软Office这样的大型软件,性能是成功的一个必要条件,其中的性能包括哪些具体内容?

杨珂:不同产品对性能的准确范围有不同的定义。就我而言,我认为一个软件的性能包括两大方面:用户直接体验到的软件响应速度,和软件对整个系统其它部分的影响。前者包括一个用户操作的响应时间,触控的流畅度,加载内容的速度等;后者包括软件对内存、电池、硬盘空间,移动流量等系统资源的影响,即做一个好公民。

CSDN:像性能这样的产品要素有多重要?

杨珂:这里的“要素”在微软有的组被称作“fundamental”,就像建筑的地基;在有的组被称作“tenet”,就像一个宗教或哲学的主要信条。 如果性能这样的产品要素不好,产品是有致命缺陷的。 其它产品要素也类似:如果安全性、隐私设置等任何一项有问题,产品都不会成功。

CSDN:能否简单谈下你所在的微软Office性能团队?

杨珂:我们团队不到三十人,由大部分工程师和少数几个程序经理组成,团队的职责可以概括为四个角色:老师(教导),助手(工具),保姆(服务),警察(检查)。

这个团队早在90年代开发Office95时就有了,起初由开发功能的程序员兼任,后来随着产品规模增大,团队就专注于性能而不参与功能开发。我们的目标是使Office客户端性能超过用户预期。我们和Word,Excel,Powerpoint,Outlook,OneNote这些应用开发组打交道,也和Windows这样的姊妹部门合作。

CSDN:一个这么小的团队去当上千人的老师/助手/保姆/警察的角色,怎么忙得过来?

杨珂:这些是我演讲时用的比喻,说明我们的服务为各个应用开发组所共享。实际上每个应用开发组都有指定的“性能联系人”,这几个人在性能方面有经验,又充分熟悉自己应用的业务,可以将我们组统一发出去的要求、工具、服务做一定的调整以满足自己应用的需要,也可以将他们应用提出的各种要求整理之后统一反馈给我们,形成我们和广大工程师之间的桥梁。

CSDN:想象假如没有你们这个团队,你们的软件将会怎样?

杨珂:如果各模块组各自为战,那么有可能:

  • 各模块的性能水平参差不齐;
  • 有些性能风险没有在设计时提前考虑到,导致某些场景性能不好;
  • 各个模块重复开发类似的性能测试、遥测、分析工具,导致重复建设等等。

CSDN:你们这个性能团队并不发布产品,怎样衡量自己的成功?

杨珂:我们的业绩在某种程度上是和自己负责的那方面性能改进相关的,“性能改进”就是我们“产品”。如果最终发布的产品性能没有超过用户预期,我们就不算成功。

我们内部有时用这种方式激励自己:我们的某项改进又为全世界用户节省了多少小时,多少度电,多少移动流量,等等。

CSDN:作为产品开发管理者,应如何与你们这样的内部共享团队合作?

杨珂:性能方面的业绩往往不像新功能那样显眼,因此管理者们容易到了开发后期或出现性能问题时才开始解决。然而那时程序架构早已不容更改,后续版本优化也比较难。

所以一个产品开发管理者应该充分意识到要素对产品就像地基一样重要和优先,要把要素团队的要求和自己的业绩评估挂钩并层层挂钩下去,要在产品设计之初就和要素团队充分评审讨论,要一一排查设计中可能的风险和应对策略,要在开发周期全程留出人力配合要素团队密切监视,要和要素团队以及姊妹团队有共享合作精神。

CSDN:随着软件应用的越来越广泛,软件产品的规模和使用群体正在呈爆发式增长,因此性能测试越来越受到软件供应商的重视,结合你的工作经验,你认为软件供应商如何组建一个高效的性能测试团队呢?有着哪些要求?

杨珂:我并不领导团队,所以可能在这个问题上欠缺经验。从我们团队测试方面的经验来说,这个团队需要有以下几点:

1. 对产品功能、程序架构设计有一定了解,这样才能嗅到可能的性能风险。
2. 有写自动化脚本和工具界面的专家,这样开发人员能够一键重现性能不好的场景,并有足够好的工具界面帮他深入分析解决问题,这对性能问题来说往往不容易。
3. 有深入理解计算机基础理论的专家,有时性能问题是操作系统、编译、SDK、程序架构等多方面的结合。
4. 有愿意不厌其烦做琐碎服务的人和跨部门跟踪性能问题的人,作为一个内部服务团队,脏活累活其实都很重要。
5. 要早早获得高层领导对性能目标的“尚方宝剑”,间接迫使那些功能开发组的管理者把性能和业绩挂钩,使得相关开发人员持续配合工作。

CSDN:微软想要打造一个在Windows、iOS、Android以及网络等多个平台上跨平台使用的Office软件,作为微软Office性能团队有哪些挑战及如何应对的?

杨珂:不同平台上的用户,对同一个软件的性能要求是类似的,对我们来说就是场景,指标,报表等方面是一致的。然而每个系统及其配套工具又很不同,每个系统上的工程进度往往也不同,因此我们基本上在最大限度重用工具和服务的同时,为不同系统配备专门人员,让他们在共享资源的同时,有自己发挥的空间。

友情提醒:杨珂将于2014年11月20~23日参加TOP100SUMMIT: 2014年全球软件案例研究峰会,带来题为《大型软件的专门共享团队-以Office性能团队为例》的演讲,届时的演讲会有更多的精彩内容与大家分享,敬请关注。

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有