团队简介

对于如潮的评论意见和电子邮件反馈,我们深表感谢(同样感谢在 Twitter 上持续关注我们的大量读者)。大家的热情和关注让我们倍受鼓舞,倍感荣幸。最初的评论中已经涌现出一些重要话题,其中一些是基于对 Windows 8 用户体验的展望。我们正着手讨论这些问题、设计细节,并做出权衡。Windows 8 产品的各个方面都增加了大量的新功能。构建 Windows 8 需要大型团队的共同协作,因此我觉得有必要向大家介绍一下团队结构,有时,了解“怎么做”会有助于了解“是什么”和“为什么”。本文将让您获得有关我们在 Windows 8 的哪些方面添加了新功能的概况,并成为您了解本产品的指南。

有些人倾向于将 Windows 的概念想象为一个实体或一个小组,另一些人则将 Windows 想象为一系列具体的个人。有时,您会通过某些人在会议上的讲话或发布的博客形成对该产品的概念。事实上,Windows 从来都是由一个完整的团队及 Microsoft 大部分资源构建的产品。几乎每个开发小组都会以某种方式为构建 Windows 8 做出贡献。而 Windows 也同样会为大部分其他小组提供帮助。

Windows 实际上是由一系列相互关联的小规模项目组成的巨型项目。当开始构建 Windows 8 时,我们对前进的方向已经了然于胸,并根据该方向建立了相应的团队结构。我们在确保许多团队共同合作的同时,尝试将工作细分给许多完全独立的小组。显然,客户希望获得相互关联的功能,但工程师希望能够相对独立地工作。我们需要对此做出良好的权衡。

我们投入了大量精力来构建团队结构,以便顺利完成 Windows 的开发工作。首先需要确定的是我们准备“做什么”,以便确保我们有完成该工作所需的最佳团队及团队结构。同时,我们必须确保全部工程流程(如,日常构建、集成、质量、安全和所有基本功能)从一开始就相互衔接(如若展开讨论这些话题需要极大的篇幅!)。

我们的团队由以下几种工程职能或角色组成。开发人员负责 Windows 的代码编写工作。此代码实施项目管理人员编写的规格附带的功能以及产品设计人员提供的交互设计。测试人员负责确保规格的完备性以及代码实现规格所述的功能。以上就是对职能划分的简单概述,但在日常工作中,各角色的工作人员也常常需要涉足其他角色的某些工作。团队中还有一些同样重要的角色,但我们倾向于将整个发布过程中的工程工作划分为开发、测试和项目管理三个相互衔接的步骤,这些角色的工作人员拥有平等的发言权和决策权。

我们还将 Windows 团队划分为“功能团队”,即负责 Windows 中一组特定结构元素或情境的开发人员小组。Windows 8 的组织结构中总共设置了 35 个功能团队。每个功能团队由 25-40 名相互协作的开发人员,外加测试和项目管理人员构成。我们的团队共同致力于构建一款全球性产品,为此我们的部分团队位于美国以外的其他国家/地区,同时在全球范围内提供该产品。

通常,一个功能团队将负责构建 Windows 的一个特定领域或组件。“功能”是一个很宽泛的词,有些人会将其想象为“用户界面”或网络等大型结构组件,其他人可能会将其想象为“开始菜单”或 IPv6 等更为具体的功能。因此使用功能一词可能有些不太确切。我们在设置不同的功能团队时,会将结构(代码、子系统、组件)与用户接触该结构的情境(用户体验)配对,同时努力压缩团队规模并确保其可管理性。功能的定义难以确切界定,因此我们很久以前就已停止尝试统计新功能。但我们还在统计与构建的工作和规格相对应的工作项(但该列表已经相当庞大)。

当人们通过计算得出我们团队中开发者的数量时,通常会有以下两种反应之一:“天啊,这么多人,怎么可能有效地组织起来呢。”或者“天啊,你们只用了这么点人,怎么可能开发出供数十亿人使用的产品呢”。对我们来说,团队越小越容易管理,但对您来说,团队越大就越有可能开发出您所需要的各种功能。因此,我们在两者之间进行了折中。我们希望在确保团队易于管理的同时,编写出高质量、功能齐全的代码。

我之前提到过,Windows 和许多其他产品之间会互相贡献代码,因此在您查看本列表时,请记住以下几点:其中一些功能来自其他小组(例如,浏览器语言运行时来自开发工具小组),同时,其中的一些功能也会用于其他产品。例如,本产品所有内核、网络、存储、虚拟化及其他基本操作系统功能也用于构建 Windows Server,也就是说 Windows 客户端操作系统的全部功能及 Windows Server 操作系统的大部分基本功能是由同一团队开发的。并且核心操作系统中构建的某些功能最终只用在了服务器产品中。

以下列出的许多团队描述了您所熟悉的功能或领域,您很可能仅凭这些名称就能猜出它们的职能。在我们后续发布的帖子中,团队成员将陆续标明自己所属的团队。我们还将这些团队划分为七个相互关联的大型部门,分别为:基本功能、设备与网络、核心操作系统、开发人员体验、用户体验、Web 服务和工程系统。Windows Live 小组(Hotmail、Messenger、Skydrive、Photos、LiveID 等)也具有相似的结构。Internet Explorer 小组也由数十个团队独立的组成,但也为构建 Windows 8 做出了诸多贡献。

  • 应用程序兼容性与设备兼容性
  • 应用程序商店
  • 应用程序与媒体体验
  • 应用程序体验
  • 核心体验改进
  • 设备连接性
  • 设备与网络体验
  • 生态系统基础
  • 工程师桌面
  • 工程系统
  • 企业网络
  • 全球体验
  • 图形平台
  • 硬件开发人员体验
  • 人际互动平台
  • Hyper-V
  • 控制您的 PC
  • 内核平台
  • 许可与部署
  • 媒体平台
  • 网络内核
  • 性能
  • 演示与组成
  • 可靠性、安全与隐私
  • 运行时体验
  • 搜索、查看与命令
  • 安全与身份
  • 存储与文件系统
  • 持续工程
  • 遥测
  • 用户中心体验
  • Windows 在线
  • Windows 更新
  • 无线和网络服务
  • XAML

除了这些开发、测试和项目管理人员组建的团队,我们的产品开发团队还包含其他许多成员。内容开发团队负责撰写和编辑在线协助、网站、开发文档和软件开发工具包等许多内容,以命名一些内容。产品规划部门负责客户和市场调研,并密切关注预发布软件相关的反馈和遥测。产品设计团队为 Windows 8 开发整体交互模式、图形化语言和设计语言。研究和可用性团队负责开展现场和实验室研究,以便了解各种类型的客户对现有产品和计划推出功能的评价。本地化团队负责将 Windows 翻译为超过 100 种语言(并负责对本博客进行本地化)。运营团队负责为数以亿计的用户和近十亿台 PC 提供服务。当然,还有许多其他负责各种工作的团队,由于篇幅的限制,就不再一一介绍。

当我们开始研发 Windows 7 时,有人向我们反映,我们的 Windows 团队过于庞大,导致其引发的工程问题比所能解决的问题还多。同时,您也不难从评论中发现,用户对各方面各情境中新功能的需求层出不穷。

人们希望看到新功能及改进的原有功能;希望获得具有全球可用性、可访问并具有卓越品质的功能;希望功能可以兼容现有硬件,同时充分发挥最新硬件的性能。我们的任务是在最短的时间内组织超大规模的团队共同协作,尽可能满足这些需求。这将是一个规模空前的工程任务。

如果各位留意一下字数,本文尚未超过 1500 个单词,因此我将其称之为团队简介。请踊跃发布您的评论,这将有助于为我们提供发帖的灵感,并与您展开坦诚的对话。我希望本帖能够为有关 Windows 8 的讨论提供一些统一的背景信息。

--Steven