团队开发管理张炜开发合作部weizha@microsoft.com议程用VS.NET进行团队开发UML建模和产品构架开发项目组队,实施和升级要则用VS.NET和VSS进行团队开发团队环境简介ASP.NET应用程序开发模式系统化解决方案与工程依赖文件的管理应用程序创建管理建立与保持团队环境团队环境简介团队开发的关键过程开发过程创建过程ASP.NET应用程序开发模式隔离模式(推荐)半隔离模式非隔离模式ASP.NET应用程序开发模式使用隔离模式的益处独立开发独立调试源代码控制快速高效使用非隔离模式的不利之处影响他人工作FrontPage扩展的局限系统化解决方案与工程VisualStudio.NET中的解决方案与工程解决方案工程系统化解决方案与工程单解决方案使用一个Solution文件来容纳所有相关的工程系统化解决方案与工程单解决方案的益处使用更为灵活的工程应用避免版本问题自动切换debug与release版本系统创建过程与创建脚本非常简单单解决方案的不利之处缺乏伸缩性经常需要重新编译系统化解决方案与工程分区的单解决方案用子解决方案来划分工程系统化解决方案与工程分区单解决方案的益处只需要与一个子解决方案打交道在每一个子解决方案中使用工程应用单个主解决方案市的创建过程简单分区单解决方案的不利之处添加新工程时操作繁琐分区困难系统化解决方案与工程多解决方案没有一个主解决方案存在系统化解决方案与工程多解决方案的益处添加删除工程非常方便能够将系统划分为多个部分多解决方案的不足之处必须使用文件引用必须引用当前版本无法得到最新的代码依赖文件的管理Assembly引用基于工程的引用基于文件的引用WebService的引用数据库的引用与开发COM对象的引用依赖文件的管理基于工程的引用工作于多台计算机上使得VS.NET能够追踪工程的依赖状况防止文件丢失自动追踪工程配置变化防止循环引用依赖文件的管理基于文件的引用仅仅在需要的时候使用使用本地拷贝自动依赖追踪引用文件的存放地点引用Release版本的文件依赖文件的管理WebService的引用WebService的版本控制使用动态URL更新WebService引用依赖文件的管理数据库的引用User.config配置文件configurationappSettingsfile=user.configaddkey=DBConnStrvalue=server=PRODDB;IntegratedSecurity=SSPI;database=Accounts//appSettings/configuration依赖文件的管理数据库的开发中央数据库不要给予开发人员管理员权限每个开发人员应有特殊的权限数据库结构与存储过程的管理本地数据库SQLServerDeveloperedtion原始数据的保存同步更新数据库结构与对象依赖文件的管理COM对象的引用生成兼容的InterOP对象使用PrimaryInterOP使用TLBIMP调用服务对象动态注册应用程序创建管理版本控制使用脚本和工具进行自动创建组织和发布创建输出应用程序创建管理版本控制控制Assembly的版本使用自动编号使用固定编号创建服务器上的文件夹结构应用程序创建管理使用脚本和工具进行自动创建创建过程标示源文件建立文件夹使用Devenv.exe创建版本号未完成的创建应用程序创建管理组织和发布创建输出把结果做成MSI文件包创建专用的账号建立与保持团队环境开发工作机配置VisualSourceSafe配置各类服务器配置建立与保持团队环境开发工作机配置使用映像文件安装工作机软件/硬件配置VisualStudio.NET企业模版建立与保持团队环境VisualSourceSafe配置开发者域名配置单独域名且有信任单独域名且无信任公司域名的一部分VSS服务器配置VSS安装与管理建立与保持团队环境各类服务器配置SQLServer配置WebServer配置Windows2000,WindowsXP,或WindowsServer2003.建议在NTFS分区上安装Web服务使用IIS5.0or6.0.议程用VS.NET进行团队开发UML建模和产品构架开发项目组队,实施和升级要则.NET中的UML工具MicrosoftVisioRationalRose/XDEOthertools.NET应用程序的建模.NET企业模版使用.NET企业模版的收益.NET企业模版规则自定义.NET企业模版发布.NET企业模版.NET企业模版.NET企业模版的概念.NET企业模版的组成.NET企业模版在VS.NET中使用.NET企业模版的收益定义应用程序的初始结构减少开发人员的复杂度提供关于技术和构架上的指导.NET企业模版规则规则概览规则验证规则在VS.NET中的表现规则概览规则文件内容规则与自定义开发环境规则的应用.NET企业模版在VS.NET中对属性窗口的影响对新建对话框的影响对工具栏的影响对菜单的影响自定义.NET企业模版建立新模版通过向导建立新模版把WebService加入新模版发布.NET企业模版.NET企业模版与结构规则版本管理分发自定义模版.NET企业模版常见问题.NET企业模版与结构EnterpriseTemplateproject(ETP)结构?xmlversion=1.0?EFPROJECTGENERALBANNERMicrosoftVisualStudioDistributedApplicationTemplateFile/BANNERVERSION1.00/VERSIONREFERENCESREFERENCEFILEBusinessFacadeProjects\BusinessFacadeProjects.etp/FILE/REFERENCEREFERENCEFILEBusinessRulesProjects\BusinessRulesProjects.etp/FILE/REFERENCEREFERENCEFILEWebServiceProjects\WebServiceProjects.etp/FILE/REFERENCEREFERENCEFILEWebUIProjects\WebUIProjects.etp/FILE/REFERENCEREFERENCE规则版本管理规则文件位置随时更改版本分发自定义模版模版文件位置Web模版下载在局域网中使用模版为自定义模版提供帮助议程用VS.NET进行团队开发UML建模和产品构架开发项目组队,实施和升级要则整个事情不受控制我们总是不断发现问题失败工程的特征它太难以使用了我们得不到足够的信息来做事我们不清楚别的小组的工作对我们有什么影响这个工程延期且超支我们所得到的不是我们想要的它不满足我们的期望,我门不开心我们总是不理解我们要做什么我们不能在这个环境中使用它建立良好的沟通成功的目标在合同期内完成完成功能在发布前解决问题平化的分发过程提高用户使用效率这个工程延期且超支我们所得到的不是我们想要的整个事情不受控制我们总是不断发现问题我们不能在这个环境中使用它它太难以使用了成功项目的目标典型失败项目的特征满意的客户责任方它不满足我们的期望,我门不开心??????“有效的信息不能被及时地共享?MSF团队模式沟通在软件合同约束条件内发布产品使客户满意提高用户使用效率产品平滑发布仅仅在所有问题得到解决的情况下才允许发布软件开发开发人员测试人员发布管理人员用户体验产品经理项目经理其余的项目参与者项目发起人–发起并批准该项目的人客户(商业发起人)–期望从项目中获取商业价值的人最终用户–最终使用这个产品的个人或系统操作者–产品发布后的相关操作人员MSF团队模式的基本原则向着共同的目标努力专注于商业价值灵活,机动MSF团队模式的基本原则(续)提高每个团队成员的能力培养公开平等的交流树立清晰的责任,共同的责任感关键概念与实践经验关键概念小组成员意识客户至上的意识整个产品的意识无缺陷意识热心学习实践经验建立小规模的,包括各方面人才的团队是整个团队在同一个地点工作在设计解决方案时需要整个团队的参与MSF团队角色环开发人员测试人员发布管理人员用户体验产品经理项目经理沟通MSF团队角色环与职责范围商业价值市场客户咨询产品规划项目管理解决方案构架过程保证管理员服务技术顾问软件构架与设计软件开发基础开发测试计划测试工程测试报告基础支持操作后勤商业发布管理辅助功能国际化客户咨询培训与技术支持可用性测试用户界面设计开发人员测试人员发布管理人员用户体验产品经理项目经理MSF团队角色环结构示例角色环功能区域职责任务项目经理项目管理驱动整体解决方案设计管理功能规范维护可追踪记录与其他项目小组保持联系,交互信息解决方案构架项目经理角色职责目标:按项目合同条件发布产品功能区域项目管理解决方案构架过程保证管理员服务开发人员职责目标:根据设计规范开发软件功能区域技术顾问软件构架及设计软件开发软件基础开发测试人员职责目标:当且仅当所有问题被解决后批准发布功能区域测试计划测试工程测试报告发布管理人员职责目标:保证发布过程平滑进行功能区域基础功能技术支持功能操作后勤商业发布管理用户体验职责目标:增强用户使用效率功能区域辅助功能国际化客户咨询技术支持可用性研究及测试用户界面设计产品经理职责目标:使客户满意功能区域商业价值市场客户咨询产品计划扩展的项目团队操作与支持技术专注商务专注最终用户项目发起者客户技术构架客户服务ProjectTeam用户体验开发人员t测试人员发布管理产品经理项目经理提高团队效率的方法在复杂度,风险,技术方面提高效率把大的团队分成多个小的子团队,使得他们在流程,管理,沟通方面的成本更低,更容易组建为每一个子团队配置主管使用核心团队来管理整个项目核心团队由子团队主管及项目经理组成核心团队负责各子团队之间的同步与协调特性团队围绕产品特性或某一能力而建立的子团队项目经理发布管理人员产品经理用户体验开发人员测试人员管理团队桌面功能团队项目经理用户体验开发人员测试人员文件与打印团队项目经理用户管理开发人员测试人员消息功能团队项目经理用户体验开发人员测试人员何时使用特性团队以下情况可使用特性团队解决方案的各个组件互相独立团队成员由于组织或地理位置的原因分散各处由于软件开发的局限(如部分外包)功能团队根据团队角色的功能建立的子团队团队主管可用性研究与测试Training/supportmaterial国际化客户咨询用户体验用户界面设计辅助功能何时使用功能团队以下情况可使用功能团队在工程中,某个角色的任务需要强大的团队努力来共同完成在工程中,某个角色的任务需要各种能力来共同完成大型项目中的团队主管特性团队主管担当该团队项目经理的职责主管直接向该项目的项目经理汇报本团队的总体计划与时间表项目的管理层在整个项目的生命周期中需对角色转换进行关注MSF子团队与领导团队的关系功能团队特性团队领导团队项目经理发布管理人员产品经理用户体验开发人员测试人员桌面特性项目经理用户体验开发人员测试人员文件与打印特性项目经理用户体验开发人员测试人员消息特性项目经理用户体验开发人员测试人员UserExperienceRoleLead在小的团队中合并角色团队中的角色可以被合并,但某些合并会产生风险NNNNNNNNNNNNPPPPPPPPPPUUUUUUUU发布管理P可行U不太可能N不建议产品经理项目经理开发人员测试人员用户体