使用TeamFoundationServer管理软件开发生命周期微软(中国)有限公司VisualStudio2005架构师开发人员测试人员项目经理非专业人士爱好者学生议程•软件开发过程中的问题•TeamFoundationServer•实例•展望软件开发过程中的问题•早上该9点上班但9点半才到(跟老板讲原因是路上塞车厉害)•到办公室后先和几个同事聊聊天,谈昨晚电视转播的比赛…•打开电脑后,看到有两个必须要修复的Bugs。哼,等下再说吧…•先看看朋友的邮件,再将几个笑话转给朋友…•再跟女朋友发几个短信…对了,还得给我那两哥们儿发个明天下班后去逛电子商场的约会。•赶快看看新浪网上有啥新鲜的…女朋友来电话,不得不接。•阿呀,忘了去倒杯咖啡喝…隔壁同事讲淘宝网上有卖我想要了很久的数码相机,赶快去看看…咦!真快,午饭时间已到了!•吃完饭,打开我那两个bug看看…有点晕,先去拿瓶可乐醒醒脑…•再玩几分钟扫雷的游戏…再看看bug,还不知道该怎样修复。算了,随便试试再说,行了。该提交代码了,Check-in…•电话铃响,老板在骂:“你的什么垃圾代码,将今天整个团队的Build全都Break了!”唉,这该死的Job!撤销Check-in…•谢天谢地,6点到了。看看外面,路上好挤,早点回家吧…软件开发过程中的问题–开发团队成员之间交流困难–使用多种绑定工具而不能集成–工具不具有内在的方法论指导–IT项目的投资回报率令人失望方法论+工具•有法可依–软件过程方法论:XP、RUP、MSF…•有法必依–工具:BugManagerSystem,SourceControl•执法必严–集成:各种工具集成工作•违法必究–公司章程、规则议程•软件开发过程中的问题•TeamFoundationServer•实例•展望TFS(单服务器)组件小型团队中等团队用户数量=20=50处理器2.2GHzPentiumIV或Athlon操作系统带ServicePack1(SP1)的WindowsServer2003企业版带ServicePack1(SP1)的WindowsServer2003标准版RAM1GB2GB硬盘8GB可用空间30GB可用空间TFS(双服务器)组件部门级别公司级别用户数量=250=500逻辑层次应用层数据层应用层数据层处理器2.2GHzPentiumIV或Athlon双处理器,2.2GHzPentiumIV或Athlon双处理器,2.2GHzPentiumIV或Athlon四处理器,2.2GHzPentiumIV或Athlon操作系统带ServicePack1(SP1)的WindowsServer2003企业版带ServicePack1(SP1)的WindowsServer2003标准版RAM1GB2GB2GB4GB硬盘20GB可用空间80GB可用空间40GB可用空间150GB可用空间TeamFoundationServer架构TeamFoundationDataServicesSourceCodeControlServiceWorkItemServiceBuildDataServicesRegistrationServiceEventingandNotificationServiceLinkingServiceTeamFoundationIntegrationServicesMSSQL/TCPSOAP/HTTP(S)ASP.NETTeamFoundationData-TierMethodologySCCWI(ProductStudio)BuildDataWarehouseBuildResultsTestResultsCodeCoverageStaticAnalysisSQLReportsWebPartsWSSIE…TeamProjectPortalSiteSQLReportingServicesOfficeSystemMSExcelPlug-inMSProjectPlug-inVSPackagesVisualStudioCommandLine…TeamFoundationObjectModel(ManagedAPI)设计目标生产力集成可扩展性性能学习成本低管理成本低工具紧密集成方法论集成客户化过程模板集成第三方工具远程开发健壮性安全性可伸缩性创建新的团队项目•给出工程名称•给出描述•构建门户网站•加载方法论模板版本控制FirstTime团队门户网站CostMSFAgilevs.MSFCMMI敏捷版——MSFAgile•强调“进化和改变”•依赖于人的持续改进•灵活的计划CMMI版——MSFCMMI•强调“计划和优化”•依赖于流程的改进•强调预先计划CMMIQualityOrientedAgileTeamFoundation团队基础服务•工具集成•项目管理工作项管理报表服务分析服务源代码管理•变更管理变更追踪变更历史•构建服务器•项目门户基于TFS的团队工程•包括:–工作项–项目文档–报表–构建数据–版本控制•集成:–团队站点–方法论指导–报表服务Integrated项目管理文件夹•项目管理文件的容器–开发–过程指导–项目管理–需求管理–安全–模板–测试TFS应对项目管理的挑战•确保需求的覆盖率•远程的团队协作•与项目相关的文档管理•获取团队工作的最新状态•获取关键指标进行分析与报告•何时开始,何时结束•下一步做什么•项目会成功还是失败?企业级的源代码管理•基于SQLServer•支持http协议•分支与合并•Checkin原子性链接工作项静态代码分析代码覆盖率CleanBuild•Changeset•并发checkin•书架•工作区SCM传统方法普通方法命令和控制方法优点初始成本低灵活性好良好的跨功能沟通可预见性可重复性缺点总拥有成本高沟通困难缺乏可预见性不可重复性延迟发布和服务软件包复杂性和成本高灵活性差TFS进行源代码管理-目标•可扩展性•高可用性•支持远程开发•支持并行开发•集成的Check-in策略•可扩展性–三层结构–SQLServer2005–500+用户•高可用性–签入策略–安全•远程开发–HTTP协议–代理服务器VisualStudio2005MSSQL/TCPSOAP/HTTP(S)SourceCodeControlServiceVSTSApplicationTierSQLServer2005并行开发•支持多个发行版本(MultipleReleases)–分支–合并•多点签出(MultipleCheckouts)–多人签出–签入前合并voidfoo(){...}voidfoo2(){dev2changes}voidfoo(){...}voidfoo2(){dev2changes}voidfoo(){dev1changes}voidfoo2(){...}voidfoo(){...}voidfoo2(){...}voidfoo(){dev1changes}voidfoo2(){...}并行开发•单点签出voidfoo(){...}voidfoo2(){...}DEV1DEV2voidfoo(){...}voidfoo2(){...}voidfoo(){dev1changes}voidfoo2(){...}voidfoo(){dev1changes}voidfoo2(){dev2changes}BLOCKEDvoidfoo(){...}voidfoo2(){...}voidfoo(){dev1changes}voidfoo2(){...}voidfoo(){...}voidfoo2(){...}voidfoo(){dev1changes}voidfoo2(){...}voidfoo(){...}voidfoo2(){dev2changes}voidfoo(){...}voidfoo2(){dev2changes}并行开发•多点签出voidfoo(){...}voidfoo2(){...}DEV1DEV2NOCONFLICTvoidfoo(){dev1changes}voidfoo2(){dev2changes}voidfoo(){dev2changes}voidfoo2(){...}voidfoo(){dev2changes}voidfoo2(){...}voidfoo(){...}voidfoo2(){...}voidfoo(){dev1changes}voidfoo2(){...}并行开发•多点签出voidfoo(){...}voidfoo2(){...}voidfoo(){dev1changes}voidfoo2(){...}DEV1DEV2voidfoo(){...}voidfoo2(){...}CONFLICTvoidfoo(){dev1changes}voidfoo2(){...}voidfoo(){dev1anddev2changes}voidfoo2(){...}SourceCodeControlParallelDevelopment•多版本–分支–合并V1.0V2.0V1.0’V1.1branchmergemergestartBugsRequirementsIssuesListChangeRequestsCustomerRequests我们要管理的方面项目管理•工作项追踪-需求任务缺陷风险变更请求问题评审-场景任务质量缺陷风险•四个客户端过期的风险风险评估文档10大风险3.规划5.控制2.分析1.识别风险描述4.跟踪风险管理过程整个过程中必须不断更新“风险评估文档”迭代的MSF过程模型通过把一个大的工程分解为多个版本来减低风险TimeFunctionalityVersion1Version2Version3报表服务测试的有效性工作项进度与预期完成时间非计划的工作项工作项的反复测试团队的速度缺陷的发现与修改效率ProjectPortal基于WSS的项目门户构建服务器•自动每日构建•静态代码分析•运行自动测试•自动生成报表•安装部署方案•客户化与定制构建过程BuildinitiatedfromTFSPreparebuildmachine&GenerateaBuildNameGetsourcesCalculatecodechurnProducebuilddetailsPublishbuildUpdateworkitemsCalculatecodecoverageCompileandanalyzeExecutetests议程•软件开发过程中的问题•TeamFoundationServer•实例•展望实例-背景•某微软内部开发团队,人员17至21人之间•角色:项目经理架构师开发人员测试人员支持人员实例-背景开发团队所采用的测试和bug工作流过程实例-背景整个SDLC流程都由以下工具来管理:•MicrosoftVisualStudio®.NET2003•MicrosoftVisualSourceSafe®6.0•MicrosoftOffice®Professional2003•MicrosoftOfficeProjectProfessional2003•MicrosoftWindows®SharePoint®Services•InternalMicrosoft产品bug和问题跟踪应用程序实例-需求•熟悉的集成开发环境•集成的工作流过程•集成的管理•集成的SCM解决方案•集成的报告功能实例-解决方案TeamFoundationServer的五个核心集成组件实例-收益•开发人员的时间得到了节约:借助VSTS,开发团队为开发人员节约了15%到20%的工时•集成的SDLC流程:VSTS将整个SDLC都整合到了单个解决方案中•更好的团队协作与交流:开发团队中的所有成员都能实时地了解各自的工作项目以及每个项目的状态。•集成的报告功能:VSTS所提供的集成报告基于经业界验证的最佳实践议程•软件开发过程中的问题•TeamFoundationServer•实例•展望广泛的业界支持参考资料英文h