1、第一部分关于微软 第 1 章微软的软件工程 第 2 章微软的软件测试工程师 第 3 章工程生命周期 第一部分关于微软 第 1 章微软的软件工程 肯约翰斯顿 本书的第一部分,也就是第 1 章到第 3 章,将介绍微软的基本情况,包括微软的目标、 微软如何组织软件产品开发,以及微软如何推出产品。本章的大多数内容都广为公众所知, 但也提供了一些微软的内部信息。 已经有很多书籍、文章和网站都详尽地介绍了微软的历史,本书将着重介绍微软的软 件工程,这将有助于读者更深入地了解微软的软件测试技术和方法。我们介绍的微软的历 史、愿景以及企业目标,对于我们在以后章节里讨论的所有软件测试方法和工具有重要的 影响。
2、1.1 微软的愿景和价值观,为何我们“爱微软” 除了足球世界杯或者板球赛事,让理性的工程师表现得热情奔放是比较难的。微软的 工程师也是如此。不过,有一件事可能例外。 在每年的十月初前后,位于美国华盛顿州雷德蒙德(Redmond)市的微软总部,都召开全 体员工会议。届时,将有近两万名员工乘坐几十辆大客车前往 Mariners 棒球队的主场 Safeco 体育馆出席会议,此外,还有数万名员工在线参加该年会。 年会上,最后一个演讲者总是微软的执行总裁斯蒂夫巴尔默(Steve Ballmer)。在雷 鸣般的欢呼声和响亮的摇滚音乐声(比如洛奇电影里的“虎眼”的音乐)中,斯蒂夫 快速跑上主席台,他热情奔放
3、,陈词激昂,把与会者的情绪推向高潮。然后,他跑下主席 台,到观众席和大家互动。当穿过观众席中的人群时,他不停地做出象征胜利的手势,时 不时和大家击掌相庆,受到很多员工热情的回应。他在途中会多次停留,继续激发大家的 热情。回到主席台后,平复一下呼吸,他会带领大家一起齐声呼喊:“我爱微软!”可以 很容易地在 网站找到这类录像,只要搜索“Steve Ballmer 公司会议”就可 以了。 不错,微软是个很酷的公司,在本书后面的各个章节里,大家会看到,作为软件测试 工程师,我们所工作的公司是世界上最棒的。我们丰富的历史、出色的产品和与众不同的 传统等(例如公司全体员工会议和大声呼喊鼓舞员工热情的执行总
4、裁) ,使得微软成为工程 师们的理想工作单位之一。 在微软早期的 24 年里,公司的愿景就是“每家每户的每张桌面上都有一台个人电脑 (Personal Computer,PC)。 ”从许多方面衡量,微软已经达到了这个目标。当然,在互联 网时代,公众对诸如 XBox 一类的设备的需求,以及对服务类软件的关注,使得微软对愿景 也作了相应的调整。从 1999 年到 2002 年,微软的愿景是:“杰出的软件无论在何时何地 运用于何种装置,都能赋予人们巨大的力量。 ”比起仅仅着眼于 PC 的愿景,这个愿景显然 更加远大,更加大胆。2002 年,微软又提出了更远大的新使命:“帮助全球的个人用户和 企业展现
5、他们所有的潜力。 ”图 11 展示了 2008 年微软的徽标,这个徽标反映了微软的新 愿景。图 11 微软 2008 徽标 2008 年 9 月,在公司全体员工大会上,斯蒂夫巴尔默宣布 了公司的新使命:“把软件的神奇和网络的力量集合起来,在全世界的设备上创造崭新体 验(Create experiences that combine the magic of software with the power of Internet services across a world of devices)。 ”当时,会场的屏幕上还显示了个人电 脑图像、服务器、浏览器应用程序以及从手机到游戏机等设备。这
6、个使命的真正含义就是 把软件加服务应用于每一个功能强大的互联网连接设备上。这个新使命,加上 2002 年提出 的愿景,使微软既有了使命也有了愿景。在推出新使命的时候,斯蒂夫一度停下来,回答 了一个很多人关心的问题,我们如何对待公司旧的愿景:“您的潜力就是我们的动力”? 斯蒂夫认为,多年来微软一直以“每家每户的每张桌面上都有一台个人电脑”作为愿景和 使命,今后恐怕不会再有这样的单一明确的目标来指导公司的发展了,这一转变也标志了 我们的成功和对世界的巨大影响。虽然我个人喜欢着重于帮助人们实现自己潜能的愿景, 但是作为一名软件工程师,我更喜欢软件、互联网和设备这些具体的东西,作为一名软件 测试工程师
7、,新的使命是对我的巨大挑战,因为这意味着我的测试矩阵又要再一次扩大了。 为了实现这个使命,微软公司认同 6 个价值观:正直诚实 、直率与相互尊重、勇于 迎接巨大的挑战、充满热情、值得信赖和坚持自我提高及完善(Integrity and Honesty,Open and Respectful,Big Challenges,Passion,Accountable,and SelfCritical) 。其中,勇于迎接巨大的挑战是软件工程师最常用的价值观。软件工程师 在谈论下一个重大项目以及为什么现在就要开始这一项目的时候,就会体现出勇于迎接巨 大挑战的价值观。巨大的挑战还包括机智地冒险、坚持但不僵化
8、和勇敢但不鲁莽。 微软公司价值观定义可参考: 的挑战是微软的工程师前进的动力。 这些价值观鞭策着微软的软件测试工程师努力不懈地 找出下一个缺陷、再下一个缺陷,以便我们的顾客能使用上高质量的产品。 当 Stephen Elop 被问及为什么要加盟微软,取代即将卸任的企业部门主席 Jeff Raikes, 即掌管整个企业部时,Stephen 谈到了使他下决心的几个原因,但他最后归结到一句很能 引起听众共鸣的话:影响力。 “加入微软公司提供了一个机会,一个对全世界数百万计人 们的生活和工作有积极影响的机会。比方说在飞机场,如果一个人走过来对你说:请看 我能用你们的软件完成的事。 那该是多么有成就感。
9、 ” 用软件改变世界需要出色的软件产品和创造这些软件的优秀团队。众所周知,微软经 常重新整编工程队伍,但是到我们写这本书时,最上层的 3 大产品工程部门还保持着多年 来没有改变的结构: 平台产品以及服务本部(Platform Products and Services Division,PSD) 。包括客 户服务分部、服务器及工具分部,以及在线服务分部。 企业本部(Business Division,MBD) 。包括信息工作者分部、微软商务解决方案分部, 以及统一通信分部。 娱乐及设备事业本部(Entertainment and Devices Division,ED) 。包括家庭娱乐 分部和
10、移动与嵌入设备分部。提示: 在微软内部,企业本部(Business Division)的缩写本应是 BD 而不是 MBD,但使用 3 个 字母缩写是微软根深蒂固的传统。所以前面加上微软(Microsoft),就成了“Microsoft Business Division”,于是 MBD 就成了企业本部的英文缩写。 微软所有的软件开发都由这 3 个大部门负责。每个本部由一个部门主席负责,直接向 执行总裁斯蒂夫巴尔默汇报,当然,斯蒂夫还有很多其他直接下属。在本书出版的时候, 比尔盖茨(Bill Gates) 应该已经退出了微软的全职工作,但是,在未来许多年,他还 是会出现在微软组织示意图中。图 1
11、2 是简化版的微软组织示意图。图 123 个软件开发 本部在微软组织机构中的位置示意图每个本部都为公司贡献几十亿美元利润和 100200 亿 美元的营业收入。从营业收入来看,这些产品本部比很多世界 500 强公司还要多。每一个 本部都负责几十个产品,其中很多产品都有很高的销售额和很高的利润,还有其他的一些 产品则是微软的投资,也许在许多年内尚无回报。 划分各个本部的原则是每个本部致力于不同的市场和不同的客户群,ED 专攻娱乐, MBD 做企业软件,而 PSD 则致力于构建平台,我们的生意伙伴和微软的其他部门用这些平 台为其他公司和顾客提供解决方案。 我们的首席软件架构师 Ray Ozzie 是
12、斯蒂夫巴尔默的直接下属。其他许多高级领导 人也是斯蒂夫的直接下属,如首席运营官(COO)Kevin Turner ,法律和公司事务团队 (LCA)的高级副总裁 Brad Smith。虽然在公司的各个部门,甚至在人力资源部门,都有 一些软件工程师,但是,绝大多数的软件开发工程师和软件测试工程师都分布在这 3 个部 门。是订购新 T 恤衫的时候了 这是 1998 年的一个炎热而晴朗的夏日。斯蒂夫巴尔默还没有出任微软首席执行官 或总裁,他把所有 Atlas 项目工程师召集到一个大会议室。就在一天前,Atlas 项目 T 恤 衫已经分发下来了,我当天就穿着那件 T 恤衫。在发 T 恤衫的时候,我知道我
13、们有麻烦了。 T 恤衫上的图案是一个人把世界扛在肩膀上,其寓意是 Atlas 项目的目标:在任何时候、 任何地点和任何设备上提供软件和服务。我们约 200 名工程师接受了这项任务。这一设想 最终成为微软企业的使命,所以我们这个小团队的资源显然是不够的。 在从办公楼走到会议室的路上,一个测试人员走到我身边,对我说:“是订购新 T 恤 衫的时候了。 ” 我问: “什么意思?” “很简单,伙计, ”他转身面对着我,一边退着一边说, “我们拿到了这个项目的 T 恤 衫。我们去见斯蒂夫巴尔默。难道你不明白吗?我们的团队要重组了。 ” “这是我今年拿到的第三件项目 T 恤衫了, ”我说, “我们团队不会再
14、次重组的。 ” 但是,我错了,我的朋友说对了,我们的团队进行了重组。从那时起,每次听到“是 订购新 T 恤衫的时候了” ,我的感觉总是很复杂。一方面,它可能意味着你要放下手头的一 切工作,开始一个新项目。另一方面,这可能意味着你有机会获得一个伟大项目的 T 恤衫, 这是一个并不多见的良机,你穿着这个项目的 T 恤衫去办公室,常常会引发别人的兴趣, “噢,我记得这个项目” ,由此而引发兴奋的交谈。我就有两件这样的项目 T 恤衫。 有一次,我们为全部门的测试工程师定做了 T 恤衫,印上了 Doonesbury 的漫画。如果 你想看的话,该漫画条发表于 1996 年 3 月 19 日,其中包括一个测
15、试工程师最喜爱的短语: “找出缺陷,非常酷” 。Garry Trudeau,Doonesbury 的创建者还在其中的一件 T 恤衫上签 了名,我们自豪地把那件 T 恤衫在我们办公楼的大厅内展示了多年。 其实,多次转换项目反而使我获得了很好的经验。在接下来的几年中,我并没有更换 团队或上司,却参与了多个服务器产品和服务类产品的测试工作,经历了几个项目的发布 过程。每当想起那些发布后的庆祝会,我总是感到有趣而难忘。 微软的文化之一,是不同的项目团队有自己独特的文化衫,上面印着该项目的标识等 图案。大家很喜欢穿着项目文化衫上班。这段文字里,换文化衫意味着更换项目或团队重 组。团队重组是一件大事,经常
16、发生,对于每一个人来讲都意味着机会。为了不和一般的 文化衫混淆,我们还是把它翻译为项目 T 恤衫。1.2 微软是大型的软件工程公司。 微软是一家大公司,这对任何人来说都是不足为奇的。截止 2008 年 1 月,微软全球 的雇员总数超过九万人。因此,了解微软在如此大的规模下,如何完成各项工作是很重要 的。 对于微软来说, “大”其实意味着“广” ,而“广”是指每年投入市场的产品线、微软产品 销售与竞争的市场种类,以及公司达到所有这些要求所面临的工程技术的挑战之广等。 例如,微软提供的软件产品的种类是庞大的。在 2007 财政年度(7 月 1 日至次年 6 月 30 日) ,微软发布了 100 多
17、种主要产品,比如 Microsoft Office 系统、 Windows 操作 系统、 游戏软件和游戏机硬件、家庭娱乐产品、商务解决方案(例如客户关系管理-(CRM) 软件) 、移动嵌入式设备(Mobile Embedded Devices)、网络在线服务(如 Live 邮件和网 上搜索) ,以及小型商务网络服务软件。微软还开始投资于企业到企业 (businesstobusiness ,B2B)的服务,并继续在其他新兴的软件市场中拓展。微软继续 投资在机器人软件、基于 Internet 协议的电视 (Internet Protocolbased Television,IPTV) 和车载电脑(
18、automotive PC)等。 同样惊人的是微软产品投入的市场数目。当微软有了一种新软件产品或服务时,通常 会在全球统一发布。这几乎要求每种产品的内容都要译成 80 多种语言和方言。表 11 列 出了产品及市场销量的统计数据,它会使我们对 Microsoft 产品线的广泛应用有更具体的 概念。表 11 微软产品的简要介绍 产品 简要介绍 Windows 操作系统 Windows 操作系统占有桌面操作系统的超过 90%的 市场份额。截止 2008 年中期(大约本书出版的时间),装机量已超过十亿台 Microsoft OfficeOffice 95 版本支持 27 种语言。Office 2007
19、 支持的语言超过 Office 95 的 4 倍。 随着全球软件市场的不断拓展,它支持的语言数量仍将不断增加 Windows MobileWindows Mobile 销量超过两千万,在智能手机的市场占有量首屈一指 (2007 年的数据)Xbox 360 游 戏机截止 2007 年底,全球已销售超过 1 千 4 百万台Halo 3游戏Halo 3(仅限于 Xbox 360 游戏机) 游戏首日销售额达 1.7 亿美元,创游戏史上首日销售纪录 Windows Live 邮件世界上最大的电子邮件服务,有超过 4.25 亿的活跃用户账户虚拟地球虚拟地球每天提 供 6 亿多图块的浏览服务 (图块就像瓷砖
20、,是地图的一个部分,用户可以自由缩放) 。 微软公司的巨大规模、多元化的产品组合,解释了为什么在微软没有一个统一的方法 来制造和发布所有的产品。从其核心意义上来说,微软是一个由广大员工的创造力所推动 的软件公司。即使横跨各种不同的产品团队和流程,很多测试团队仍共享许多相同的最佳 实践和测试工具。本书第一部分将重点介绍微软测试工作与人相关的一面,即我们如何组 织测试团队、如何面对测试公司各种软件的不同挑战。第二至四部分将具体介绍和演示测 试的最佳实践方法和工具。 1.3 拓展大型且高效的业务 我们主要用两个模式来组织工程师队伍。某个产品业务从培育期到成熟期,可能会从 一个模式转换到另一个模式。O
21、ffice 刚开始的时候,它根本不是现在的样子。先从 Word 和 Excel,然后增加了 PowerPoint 和 Access 等。最开始的几个版本,每个产品都各自独 立开发并发布。这种偏重于产品独立发布的模式通常称为产品部门经理(Product Unit Manager,PUM)模式,这在微软内是最常见的。 在 PUM 模式下,一个产品部门单一组织及管理他们需要的(或至少可以获得的)所有 工程资源。他们通常没有依赖其他部门的地方,除非另一个部门提供了一些比较成熟的技 术。PUM 模型比较适合那些需要迅速发布的产品并能灵活应对竞争对手,但它不适于资源 的集中和共享,例如产品编译或测试自动化
22、工具的生成等。在这种模式下,重复性工作和 团队间交流的开销较高。几乎每个产品,不论其如何成熟,其中仍有一些这样的小团队。 Office 和 Windows 这两个部门在发布主要版本的同时,仍使用 PUM 模式管理其孕育新产 品功能的团队。工程师团队常见的 PUM 模型如图 13 所示。图 13 工程师团队内最常见 的 PUM(产品部门经理)模型共享团队模式。 当产品以及产品类别日趋成熟时,其团队通常也随之变大,并自然而然地想通过集中 管理来提高效率和降低成本。这种模式有很多名称,但共享团队模式可能是最好的名称。 在此模式下,产品的公共功能的开发测试被集中在一个共享团队,其他的产品团队必定依 赖
23、于这个共享团队,不然,他们的产品功能就难以开发成功。 Office 是一个很好的例子。自从有人想出这个聪明的点子:捆绑我们的与办公相关 的应用程序软件,并把它们作为一整套系列来销售,Office 团队便开始了从 PUM 模式到共 享团队模式的演变。在实际工作中,Office 的员工称该演变了的部门为 Office 共享部门 (Office Shared Services,OSS) 。典型的 Office 部门组织结构如图 14 所示。图 14 典型的 Office 部门的组织结构在 Office 组织内,有包括 Word、 Excel 和 Sharepoint 在 内的许多产品团队注重于特定的
24、应用程序和与之相关的用户群,也有许多共享团队如用户 界面、编译生成和文档流程等团队,注重于集中与共享技术和用户情景。产品团队倾向于 关注其特定客户群(如 Excel 最关心电子表格用户),但他们同时必须遵从共享原则 (最佳 的用户界面是界面的一致性,这种一致性使得用户要学用 Office 的应用软件,只要学其中 一种 Office 的应用软件就可以了,而且可以有助于学会其他各种 Office 的应用软件功能, 可谓是一通百通) 。通过这种实践,Office 部门在每个产品不断创新的同时仍能保持整个 Office 产品系列的一致性。这些目标可能有些矛盾,但通过每个产品团队的通力合作,就 能整合设
25、计、开发和测试等各个方面,创造出一个 Office 部门考虑所有产品特点和共性的 整体发布愿景和创新设计。 同样的事情也发生在各个工程团队,特别是测试团队中。每个产品团队都有一个测试 团队,其任务是用创新的方法来测试和验证产品的功能。不过拥有一套统一的创新测试工 具和方法,对于产品会大有益处。因为认识到这点,Office 部门已探讨、寻求和创新某些 方法、实践和流程,并应用在特定的 Office 产品开发过程中。如产品功能小组(Feature Crews) (第 3 章会详细介绍)、Office 自动化测试系统 OASYS,以及代码提交到整个 Office 代码管理系统前,用于验证代码能正常运
26、行的工具“大按钮”(Big Button)等。 共享模式不仅提高效率,而且助长创意。一个共享团队可能对普通用户界面有独特见 解,但最初设计不一定能达到特定用户群的要求。共享基础设施质量欠缺会减慢其相关团 队的工作进度,如果其质量得不到改善,共享团队会成为其他团队的绊脚石,而其开发的 基础设施也将会被弃用。 在完全的 PUM 模式和完全的共享团队模式之间有很多变种。 其实在微软内部,尚没有 发现具有完全相同的组织结构和相同的开发产品流程的两个团队。很多人比喻微软从外面 看起来像一个战舰,但从里面看它时,微软更像一群快艇,都急速地驶向一个的共同的终 点,但又各显神通。对于微软工程队伍和产品组织,我
27、的一位朋友想到了一个更好的比喻。 像创作戏剧一样研制和发布软件产品 当刚开始在微软工作时,我很难理解不同的产品制造流程、最佳实践和不同的工程师 角色等。这些都引导我思考如何在这里做事。一方面,我们需要发明和创新。另一方面, 我们又是一个大公司,二者会莫名其妙地相互抵触,即大公司很少能在根本层面上成功地 创新。可是一个比喻却帮助我理解了这个难题,我把这个环境与剧团进行类比。与任何剧 团一样,我们有董事、生产商、演员 (工程师),当然还有 A 档和 B 档明星、舞台制作者和 其他参与的人。这个比喻的关键是:尽管表演艺术主要在于创意和完美的表现,但也是出 自剧院的产品,需要票房收入和被观众接受。对潮
28、流和长远趋势的把握,在软件开发中与 在表演艺术中同样重要,尤其是在当今以用户体验为主导的世界里。 营销、销售和法律等也都是角色分明,各司其职。我是这样来与微软类比的,行政及 财务管理者是制片人,部门总经理是导演,工程师们是演员,这与剧院内戏剧制作的角色 一一对应。与剧院一样,创新是产品的驱动力。一个突破性产品就像引领潮流的戏剧作品 一样。 一旦把二者联系起来,我觉得就像是站在我所钟爱的基洛夫芭蕾舞剧院的侧翼,看 我的好朋友及邻居们翩翩起舞。我的身心就像进入到一个光怪陆离、妙不可言的微软的奇 异世界。我内心世界的爱丽丝就像已经探到迷宫似的兔子洞的底部。 (西方童话典故) 整个比喻的关键是设法平衡
29、一个矛盾体:一个大型软件公司必须产出高额利润,又 同时保持其机动性和创造性。巨大的生产规模和创造性是有内在冲突的,成功地平衡好二 者是微软成功的核心。谷歌(Google)、苹果(Apple)或升阳(Sun Microsystem)公司似乎都 还没有在这么大的规模上证明能做好应对的平衡,但是 Cirque du Soleil 大马戏团和微软 已经证明了他们能成功地应对。 Irada Sadykhova,总监,卓越工程部门,有效学习&组织小组 1.4 在“大”公司中做 “小”项目 我们在微软不仅仅做大生意,也在寻找下一个大产品的过程中,开展许多较小的项目。 我曾经听到过比尔盖茨比较微软产品开发和电
30、影业的异同。他比喻每个大电影制片厂同 时投资在不同的电影类别。一个类别是“大片” ,如最近重拍的金刚 。通常这些电影的 制作成本非常昂贵,因此它们也带来很大的风险它们或者成为票房毒药,例如 2002 年 Eddie Murphy 的电影普鲁图纳什的冒险 (该片耗资近亿美元而票房收入仅 440 万, 被认为是最大的失败作品) ;或者成为突破性的赢家,例如统治票房的泰坦尼克号全球 收入 18 亿美元,又如拿破仑戴纳麦特以 40 万的投资收获 4600 万票房(不计算 DVD 和其他销售)。另一个类别包括知名影片系列的续集,如蜘蛛侠和蜘蛛侠或 星球大战系列的续集。通常我们期望这些影片带来高额票房。
31、所有电影制造商都有一个目标,就是要盈利,但他们通常是通过降低投资量来减低风 险。比尔认为意想不到的成功制作和成功的系列影片续集一直都存在,但长期成功的关键 是制片商通过同时制作多类别的影片将风险分摊,以及尝试找到下一个可拍摄很多续集的 知名电影。一部知名电影的续集拍摄带来的可预期的长期利润可以用来资助其他项目,很 可能下一个大的知名影片系列因此产生。彼得杰克逊的指环王系列和哈利波特 系列都是大胆的投资拍摄新的“大片”而后来产出多部高盈利续集的范例。事实上,这两 个系列都有新续集在制作中,彼得杰克逊正在制作两部来源于指环王系列的影片; 还有三部哈利波特的书将被拍成电影。 微软的产品战略和上述电影
32、业很相似。大型而且成功的微软产品部门(如 Microsoft Office、Windows、Visual Studio、Exchange、SQL Server、Hotmail 和 MSN Messenger) 的部分利润被用于“孵化培育”其他项目的投资。这些项目有望成就未来的大型而成功的 微软产品。在软件产业, “孵化培育”是很普遍的。孵化培育(incubation)这个术语通常 用于小型的软件创业公司。这些公司有很好的想法和值得期待的目标市场,但它们却还没 有发布第一个产品。微软较大的创业团队通常由总经理(General Manager,GM)管理,较小 的创业团队通常由产品部门经理(Pro
33、duct Unit Manager,PUM)管理。这些团队通常自成 一体,拥有大部分工程开发所需的资源。这样,他们的命运就掌握在他们自己的手中。我 曾为 BUM 工作过。 1997 年,我在从 MSN 分离出来的因特网服务事业部(Internet Services Business Unit,ISBU)工作。在原来的 MSN 团队,我们研发了许多新技术来推出 MSN。我们有比 Microsoft Exchange Server 扩展性更好的 email 服务,有比 Microsoft Active Directory 目录服务扩展性更好的登录服务器,有内容管理服务器和许多其他服务器。几 乎每家
34、互联网服务提供商(Internet Service Provider,ISP)如 CompuServe、Comcast 和 AOL 都拥有或需要这样的服务器。 可能是有人提议打包这些东西出售给小型的 ISP 和电话公司,因此就成立了 ISBU 部 门。很多来自 MSN 的工程师加入了 ISBU,一些小公司也被 ISBU 收购了。ISBU 的产品后来 发展为网站服务器、商业服务器和商用互联网服务器(Microsoft Commercial Internet Server Microsoft,MCIS)。在这种情况下,与上文所述的 PUM 或 GM 不同,当时管理着整 个工程团队的总领导被称为“商
35、务单位经理” (Business Unit Manager) 。我们称他们为 “BUM”。可英文“BUM”的意思可不怎么好听:原意为流浪汉、懒汉。所以,我们 ISBU 的 所有工程师就有为几位“流浪汉、懒汉”工作过的历史了。 bum 原意为流浪汉,懒汉。微软经常向内部的技术孵化培育项目投资,例如 IPTV、车载 电脑和机器人项目,以及微软研究院(Microsoft Research, )所做的所有工作。我们也投资可以促进软件 产业整体变化的项目。2007 年 4 月,我们和超过 10 个合作伙伴一起推出了微软公司软件 作为服务(Microsoft Software as a Service,S
36、aaS) 技术孵化培育中心计划。 在微软,有很多技术孵化培育的模式。成熟的产品往往孵化培育新的功能特性。例如, Office 2007 的彩带(Ribbon)是一项改变了 Office 用户界面的新功能,又如 Windows Vista 的 Shuffle 功能。最新版的 Visual Studio 所带的源代码覆盖率工具最初是作为微 软研究院和 Windows 的内部工具开发的。 我们用过的孵化培育创新的另一种方法是使用内部的风险投资团队。任何雇员可以提 交一个想法,然后风险投资团队将使用类似风险投资业界公司的流程来审查这个想法的可 行性。 就像在风险投资业界一样,只有极少数的超前想法通过这
37、一机制得到资助。 孵化培育想法的另一个来源是比尔盖茨的“思考周” (ThinkWeek) 。微软员工可以提 交白皮书详细阐述自己新的想法和创新。在大约每年两次的“思考周”中,比尔阅读和评 论许多这样的白皮书。 “思考周”结束时,比尔的批注(曾经是手写的)会被整个公司共享。 2005 年,华尔街日报这样描述“思考周”:这是一个每年两次的仪式,它可以影响微软和 高科技行业的未来。一个“思考周”的想法能为一项被千百万人使用的技术打开绿灯,或 将微软送入新的市场。1995 年 的一个“思考周”促使盖茨先生写出了论文“互联网浪潮” ,引领微软开发了它的互联网浏览器并将网景公司(Netscape)彻底打败
38、。诸如创造微软 的平板电脑、开发更安全的软件、开始在线视频游戏业务等计划都是在各个“思考周”中 孕育出来的 。 Robert A. Guth, “In Secret Hideaway,Bill Gates Ponders Microsofts Future, ”Wall Street Journal,March 28,2005, IZjgYNklaB4o52sbHmIa6 2Im4.html.就 2008 年秋季的“思考周”而言,员工们提交了 375 份白皮书,比尔评论了其 中的 125 份。设立这项计划就是为了鼓励员工提出创新和前瞻性的想法。许多非常有希望 的想法得到了最初的研发资助。比尔还
39、向全公司公布他推荐的阅读清单。最近,我写的关 于我们如何改进软件服务测试的白皮书进入了比尔的推荐清单。我感觉提出的理论被盖上 了批准的图章。微软平面的诞生 微软平面(Microsoft Surface, )这个概念 曾经是微软研究院的几个人写的一份白皮书。在比尔读过这份白皮书后,一个 PUM 参加了 该团队,并开始推动将该想法变成可行的产品。其结果是一台计算机被内置于一个桌子里, 而计算机的显示屏幕就是桌子的表面。我认为这看起来很像 20 世纪 90 年代一度出现在酒 吧中的桌面视频游戏。用户可以与微软平面使用手势交流,或通过把实际物体,如名片或 Zune MP3 播放器,放在平面上来实现交流
40、。 微软最近开始使用一种被称为“寻求” (Quest)的流程来创新想法。字典中将“寻求” 这个词定义为“搜索和寻找 ”。在微软, “寻求”是与我们制定的长期愿望和目标有关的。 “寻求”这个流程召集微软各部门的资深技术思想领导人来创建一个 510 年的关于技术创 新的远景规划。通过“寻求”这个流程,微软公司的顶级技术专家横跨不同组织和产品部 门进行协作,他们和企业领导人员一起规划最可能改变人们工作和生活并为微软及其客户 和合作伙伴创造新的商业机会的技术革新。 “寻求”的过程中不会引出只有简单答案的简单问题。通常,一个“寻求”历程需要很 多年才能完成。常常在创建一个新的市场之前,会需要崭新的研究、
41、建造众多的样品和发 现独特的见解。 一个成功的“寻求”历程必须是严谨的、有远见和有方向的,而且是以客 户为中心的。这里所提到的严谨是指我们待人接物,正直、诚实、开通、尊重对方这些价 值观所共识的部分。严谨对于微软的“寻求”历程来说意味着结合同事之间广泛的检阅和 审查,和包括 3 位本部主席、斯蒂夫巴尔默和其他几位执行官的公司高层领导组的监督。 这些“寻求”历程的目的不在于制作一个产品的另一个版本,而是怎样管理一系列长 远技术问题的组合。这种管理需要在跨组合作中找到和使用协同的作用和力量。这些“寻 求”历程的数量和焦点随着旧的“寻求”结束和新“寻求”的开始而年年变化。目前,50 多个包括从客户、
42、信息工作者到 IT 精英和程序编写者,跨越整个微软企业和所有客户群的 “寻求”历程正在运行中。 1.5 聘用多种类型的工程师 因为微软是一个既有产品又有平台的公司,所以微软大量合作伙伴都有自己的软件工 程师团队,这些合作伙伴在微软的软件上进行再创新。如果将与微软合作的供应商和合作 伙伴加起来微软工程师的数目在全世界超过十万人。在世界各地,有数以百万计的软件工 程师为苹果、IBM、 Sun、 Oracle 和诸如 Linux 的开源软件而工作。与他们所组成的完整 生态系统相比,微软工程师团队只占了很小的比例。然而,这也许是在当今市场上最强大 和最有影响力的工程团队。提示: 在全球 40 个国家内
43、,微软有 3.5 万余位全职软件工程师。微软每年会招聘 5000 多位 软件工程师和 1000 多位软件开发测试工程师。 与其他大多数公司相比,微软的独特之处在于它的工程过程和它管理软件工程师的方 法。一些人看到了微软在软件行业中取得的成功,并把这些独特的不同之处认为是微软关 键的竞争优势。 另一些人指出我们的一些产品存在问题,并怀疑是这些不同之处是否是微软的弱点。 然而,究竟有哪些软件工程方面的因素使微软与世界上其他公司相比有着独特和不同之处 呢? 工程类职种的划分 如果你对全球在微软工作的 80000 余名员工的角色进行分类,你会发现有 35 000 多人在销 售、市场营销和信息技术部门工
44、作。产品工程是公司开发和支援软件产品的部分,截至 2008 年初,微软在全球雇用了近三万五千名工程师 。其他一万名员工跨越了很多领域, 如从工商管理到法律等。虽然微软还在继续迅速增长,但是,销售、市场营销、信息技术 与产品工程之间的平衡在这些年一直是相对不变的。 产品工程师是实际参与产品创造和发行的员工。这些产品包括硬件、软件和相关服务。微 软工程角色可分解成以下 10 个产品工程职种: 软件测试。软件开发测试工程师(Software Development Engineers in Test,SDET) 通常称为测试人员(Tester),有时也称为软件测试员。SDET 负责为微软所有产品维持
45、高标 准的测试和质量保证。 软件开发。软件开发工程师( SDE)常常被称为软件开发员。 SDE 写的软件程序造就 了微软产品以及软件产品的升级。 项目经理( PM ) 。在微软,PM 是一个相当独特的角色。该角色结合了项目管理、 产 品计划和设计的要素。项目经理的工作包括给一个新产品的技术方面下定义,并监督产品 的发展过程。 运营(Ops)。Ops 是微软信息技术( IT )的一部分。运营部门管理和维护着微软的在 线服务,以及企业内部从网络到服务器的 IT 基础设施。运营部门和产品部门紧密合作, 以求在软件服务架构方面降低生产成本,使我们的软件加服务更加可靠。 易用性和设计(Usability
46、 and Design)。易用性体验和设计(Usability Experience and Design,UX)结合了我们宣传的产品设计和产品易用性两个角色。设计师关注的是前 端用户对软件在视觉和功能方面的体验。易用性则在关注视觉和功能方面体验的同时,研 究用户怎样使用现有的产品和新样品,然后在产品发展过程中把分析结果用于改进产品。 内容。在我们外部网站上,内容仍称为用户帮助和教育。这一职位侧重于设计和提供包 括用户界面(UI) 文字、网络信息、培训、模板、栏目、书籍、测验和帮助文件等各类用户 帮助,以便用户从微软的产品中获得最多信息。改名为“内容” ,是强调微软需要专注于所 有不同产品、运
47、载工具的信息内容。 创意。创意职位最多存在于游戏组。这个职位的工程师开发和改善微软在个人电脑上和 Xbox 游戏机上使用的尖端游戏软件。创意职位包括游戏设计师以及游戏艺术设计者。 研究。研究包括软件开发和测试两种角色。软件开发工程师和软件开发研究工程师的差 异是软件开发研究工程师的重点放在研究、发表论文和培养新的技术,而不是按照时间表 发行产品。 本地化。国际项目工程(Internatioanl Project Engineer,IPE)曾被称为本地化。 本地化重点在于把微软软件的文字翻译成多种语言,并使微软软件适用于不同的国家和地 域文化。IPE 人员还负责根据具体的地域市场需求,修订微软的
48、软件。 工程管理。工程管理是由管理多个职种,比如测试、开发、项目管理等团队,的经理们 组成的。他们的头衔通常是产品部门经理(PUM)、总经理(General Manager)或部门经理 (Group Manager)。提示: 硬件被认为是一个特殊的职种领域,其中包括硬件开发工程师、硬件测试员及硬件项目经 理。这些职种与在软件和软件服务方面的相关职种相似。但不同之处足以令他们有着自己 的职业道路和培训支持。 产品工程师们由他们自己的职种划分排列。工程师的人数在每一个职种都不同,多则 万人,少则几百人。 最大的 3 个职种是软件开发(SDE ) ,项目管理(PM) ,与软件测试 (SDET) 。第
49、四大职种是迅速增长的 IT 运营,这与公司对服务类软件日趋重视的转变有 关。 微软以前并没有把这些职种分离。早年,每个人的名称都是“技术员” 。专业化角色始于 1979 年,用不同的标准职业名称来辨认确定工程师的职业道路开始于 1980 年代初期。 3 位组合(Triad)这个名字指的是软件开发、软件测试和项目管理 3 个职种,如图 15 所 示。这是 3 个在微软的最大的工程职种。来自于 3 位组合职种的大量工程师都在产品开发 团队里。随着重点转向软件和软件服务,图 15SDE 、SDET 和 PM 3 位组合 IT 业务也在迅 速增长。 一般的大型软件公司都会雇用以上几类工程人员,每一类人员都有它自己的行业交流活动, 例如测试行业的软件测试分析和讨论会议(Software Testing Analysis and Review,STAR) ,又如开发行业的软件安全开发会议等。 会议是为了提高专业技能和促进 整体行业发展。 在微软和整个软件产业,软件测试都是其中一个较大的行业。在这本书里,我们希望通过 与您分享微软测试人员的故事来阐述我们的一些观
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。