1、l 微软开发工具事业部概况及面临的挑战l 敏捷开发简介l 经验分享:Visual Studio Team Architect团队的敏捷实践l Q&Al 我们的使命:Make every software project successful with MS platform and toolsl Altair Basic Interpreter 微软发布的第一个产品l 超过3000 名雇员,超过 25个产品团队l 我们的客户l非专业开发人员及编程爱好者l专业开发人员l测试人员l设计人员l企业级系统架构师活动用户3,586项目70工作项716,858源代码文件23,681,882构建47,309
2、l 项目周期长l 接受客户的反馈并进行调整l 团队成员的工作与生活的平衡l 按照“peanut butter approach”来完成所有的功能l 目标:以低成本,快速地开发出好的软件*.l 敏捷是一系列的原则l敏捷本身并不代表任何流程或者方法论11/24/20228*Ivar Jacobsenl 为非技术人员及客户提供更好的项目透明度l 在开发周期中尽可能早的提供产品的商业价值l 尽可能早的接纳客户的反馈l 创造机会去接纳变化l 以下的几组实践的框架都能很好的支持敏捷的核心原则lScrumlExtreme ProgramminglTest Driven DevelopmentlKanban,
3、11/24/202211AnalysisDesignCodingTestingDeploymentl 目标:lDeliver architectural tools that help customers manage software complexity.l 交付物:lUML DiagramslLayer DiagramlDependency GraphslArchitecture and Model Explorersl 团队:l5 Feature Crews with 6-8 crew membersl 将当前正在运用的优秀实践与敏捷开发的优秀的实践结合起来应用于我们开发当中l 我们采
4、用了根据我们具体情况优化过的Scrum11/24/202214l 一个能够很好的进行自我管理且富有战斗力的团队通常由2-3个开发人员,2-3个测试人员和1个项目经理组成l 团队对所开发的功能或者服务负责l 基于特定的时间进行迭代开发并发布功能l 在每次进行代码分支合并以前必须达到质量要求l 以项目管理的实践为核心l 迭代式开发l 由一系列的短周期的迭代组成l 开发中的技术环节的工作量并不用人月来衡量Initial Planning and DesignSprint1Sprint2SprintNStabilizationAnd DeploymentSprint Backlog-Tasks迭代计划
5、功能定义设计文档测试计划编码实现及测试缺陷跟踪和质量管理演示与总结项目关系人,客户4 Week Iterations每日 Sync up 会议Sprint产品Backlog 功能Sprint Backlog 任务Select Product BacklogCreate Sprint BacklogDefine“Done”确定能够被完成和集成的功能列表Story DefinitionGoalsFeaturesDescriptionPre-conditionsFlowAcceptance TestsDesignStory Parts Test CommentsPM CommentsDev Comm
6、entsl 测试人员在设计文档审核中的作用 质量设计l对设计的可测试性提出反馈l对设计的复杂性提出反馈l验证设计是否满足了需求l 开发人员在测试计划审核中的作用 质量计划l对测试的重点领域(优先级)提出反馈l测试是能够自动化的吗?l存在没有测试到的领域吗?VS Main BranchTeamBranchFeatureBranchDev/TestCodeTeamBranchFeatureBranchDev/TestCodeTeamBranchFeatureBranchDev/TestCodeFeatureBranchFeatureBranch维护功能团队所在独立分支的代码质量Code Check
7、in ProcessContinuous IntegrationSprint TestingImplement FeatureUnit Tests,Debug,FixCode ReviewBuddy Test(optional)Code AnalysisTest Suites,Debug,FixBuddy BuildFeature Branch Checkin维护功能团队所在独立分支的代码质量l 功能团队一起工作在同一个功能分支上l 构建是自动进行的l快速构建 用于测试核心的功能场景(30-60 分钟)l 任何构建失败都必须马上被修复l完全构建 用于运行完备的测试(数小时甚至更长)l 任何构建
8、失败都必须在本次迭代中被修复l 适时的代码签入能够极大的减少冲突及集成问题l Acceptance Testingl验证功能l Functional Testingl验证功能组件l Integration Testingl验证功能组件的组合l Security Testingl Performance and Stress TestingBug BashBug TriageBug FixingTest PassesQuality GatesTeam Branch Integrationl 代码覆盖率分析并填补差距l 回归测试l 探索性测试(Bug Bashing)缺陷大扫除l Drive Re
9、lease Criteria/Quality Gatesl Communicate Quality/Readiness for Integration l 维护功能团队所在独立分支的代码质量Feature SpecDesign SpecTest SpecSecurity PlanCode AnalysisCode CoverageNo Performance RegressionsLocalization TestingAPI ReviewsAll P0,P1 Bugs Fixed and RegressedQuality GatesMaintaining Team Branch Qualit
10、ySprint DemoWhat went Well?What can be Improved?Action Items需要持续改进的部分 哪些工作完成了?l 指定整体的计划和路线图是非常重要的l 好的架构设计是不能被忽略的l 依赖关系需要小心的进行管理l 在迭代的上游阶段就要强调质量l 重视代码质量并努力修复代码陷阱l 重构往往意味着额外的成本增加l 持续集成永远是你最好的朋友l 高效的沟通与写作是必须的l 沟通的透明度是必不可少的l 维持一个统一的节奏是重要的l 达到一个统一的节奏往往是不那么容易的l 选择那些能够适应团队和项目的实践l 使用那些能够被团队很容易的适应并且也能很好适应开发流
11、程的工具l 每次迭代中的总结与回顾如果能够被很好的跟进将是非常有效的l 我们从其他团队承接了额外的功能集l 我们在Beta 1以后根据用户的反馈又增加了超过10项新的功能l 我们按照我们的日程高质量的完成了我们的工作l 人l是人写出了软件,所以人是软件项目成功的最重要的因素l 流程l保留当前的流程实践中好的部分并且将它们和敏捷开发中好的实践相结合,共同应用到开发实践中来l 工具l使用工具来帮助软件项目中的人遵循好的实践要求同时不让他们付出过多的学习成本11/24/202244l 商用平台l 开发工具l 管理与服务 团队博客:http:/ Windows Server解决方案l 协议工程l 商业
12、在线服务 DEV200:“微软软件研发方法论及软件开发平台构建”DEV202:“高效与流程导向的开发团队企业部署Visual Studio Team System最佳实践”ARC211:“架构利器Visual Studio 架构工具预览”2008 Microsoft Corporation.All rights reserved.Microsoft,Windows,Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S.and/or other
13、countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation.Because Microsoft must respond to changing market conditions,it should not be interpreted to be a commitment on the part of Microsoft,and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.MICROSOFT MAKES NO WARRANTIES,EXPRESS,IMPLIED OR STATUTORY,AS TO THE INFORMATION IN THIS PRESENTATION.