首页 / 软件开发 / 数据结构与算法 / Visual Studio Team Architect 团队的敏捷软件开发(第一部分)
Visual Studio Team Architect 团队的敏捷软件开发(第一部分)2011-11-15 博客园 郑洁译在最近几次与客户面对面的交流中,我有幸分享了我们团队如何在日常工作中进行敏捷软件开发。毫 无疑问,这在中国开发人员中是个热门话题,我也想利用博客这个平台与更多的读者进行书面的交流。当 然关于敏捷开发利弊得失的争论有不少,而相关的开发模式也分成了TDD (Test Driven Development), Scrum, XP(eXtreme Programming)等流派。就我个人而言,一个团队是否严格遵循某种既定的敏捷方法并 不重要,但一定得选择并采用一种(或几种)最适合自己开发团队和开发项目的。我认为重要的是团队能 否遵循《敏捷软件开发宣言》所涉及的12条原则。在我深入这一议题前,请允许我介绍一下团队:我们属于微软开发工具部(Developer Division,以下 简称DevDiv),这个部门拥有几千名软件工程师,核心产品Visual Studio系列的用户从软件开发爱好者 一直到大型企业里的专业开发人员及架构师。大量而且复杂的依赖关系、代码改动、紧迫的开发周期等因素使管理软件开发生命周期并按时发布高 质量的Visual Studio产品极具挑战性。为了降低风险和复杂度,DevDiv在开发Visual Studio 2008过程 中采用了功能分支架构(Feature Branch Structure)和功能小组模型(Feature Crew Model)。其实这一方 式之前已在Office开发团队的实践中取得不错的效果。它的最大好处之一就是使负责某个功能的团队在独 立开发过程中有更大自由。由于篇幅所限,在这篇博文中我将侧重介绍我们团队是如何进行敏捷软件开发 的。我们团队负责Visual Studio系列中的Visual Studio Team System Architecture Edition,帮助架构 师、运营经理及开发人员以可视化方式构造面向服务的解决方案、降低(软件产品开发的)复杂度。目前 我们已开发了基于UML和 DSL几个建模工具。这基本上是一个全新项目。从产品开发来看,我们属于全球分布式开发,团队分布在三大洲的四个城市,包括亚洲的上海,北美 洲的雷德蒙和夏威夷,以及欧洲的剑桥。为了尽可能减少分布式研发对团队间交流所造成的障碍,我们尽 量使功能小组的成员集中于一地。基本上,每个功能小组的核心部分都在某一个城市完成,在其他城市可 能会有个别工程师参与相关开发。例如,我们在上海就有一个功能小组,其他一些工程师在雷德蒙的公司 总部工作。但有时,基于客户场景的特殊要求,我们也会将一个功能小组拆分成若干个,由多个城市的团 队同时开发。在本文后半部分和之后的系列文章中,我所谈及得敏捷软件开发流程都是同一个功能小组所遵循的, 即是我们中国团队所遵循的。我们中国团队主要负责开发基于UML的核心图形设计工具,包括即将发布的Logical Class Designer, Use Case Designer。此外,我们还负责在项目中提供建模元素视图功能的Model Explorer。我们所采用 的敏捷开发方法是Scrum的修改版。就如我之前提到的,我们认为敏捷开发方法和技术没有哪一种是万灵 丹,适合自己才是最好的。我们的团队中已有两位工程师参与过Scrum实践,也因此促成我们最终选择了 它。