半岛体育:出乎我们意料,前一段时间InfoQ中文站、雅各布森和微软共同举办的“敏捷Scrum实战营”活动,得到了上海和北京两地技术人员的热捧,原计划300人的参会规模,实际报名近800人,活动也根据需要从两场增加到三场半岛体育。在活动中,我们也收到许多来自参会者的反馈,他们希望能够了解类似微软这样大规模、分布式的团队是如何实施敏捷的。据此,InfoQ中文站联系了微软上海研发中心半岛体育,并很荣幸得到他们的积极反馈。本文即是InfoQ中文站特邀编辑滕振宇采访了微软亚太研发集团服务器与开发工具事业部的部门经理Ramesh Rajagopal的作品。在采访中,Ramesh从项目管理、需求管理以及技术架构控制等方面分享了他所带领Visual Studio软件生命周期管理工具团队使用敏捷方式组织管理大规模方面的经验。
注:本文是依据邮件采访整理而成,为保持现场感,文中使用第一人称指代微软亚太研发集团服务器与开发工具事业部。
微软Office产品组最早引入了功能小组模型,并采用这个模式开发、发布了几个Office版本。之后,微软其它部门也开始采用,包括Windows部门和开发工具事业部门(后者负责开发Visual Studio系列产品)。这些部门都拥有数千名工程师,我们需要在具有数百万行代码的代码库上工作,并且多次成功发布了这些产品,可以说,功能小组模型在项目管理、需求管理、以及技术及构架控制等方面有着很好的扩展性。
首先简单介绍一下我们是如何进行产品计划。进入产品开发前,高层管理团队要确定新版本将带来的商机(Business Opportunity)。(注意:为了能够确定这些商机,高层管理团队会从在整个部门收集数据和征询反馈意见。)然后,起草对应这些商机的高层目标。这些目标会被分解为多个用户价值主张(User Value Propositions,可以将它们看作是Agile术语中的“epic“故事)。接下来它们又会被细分为用户体验(User Experience, 可以将他们理解为Agile术语中的“主题”,Themes)。功能小组于是会定义实现这些用户体验的用户故事。实现这一整套用户体验也就是实现了用户价值主张,从而达到商业目标(Business Objectives)。
我们会为每个产品的发布设计一个计划里程碑(通常情况下一个里程碑需要12个星期)。在这个阶段,产品负责人会为这个产品发布制定一组要达到的商业目标和目的。接下来每个下属团队(它们是整个产品半岛体育,如Visual Studio,开发的一部分)要创建出符合一个或多个商业目标的产品待开发事项(Product Backlog)。