《第四章 项目执行与监控 V20_扩充.pdf》由会员分享,可在线阅读,更多相关《第四章 项目执行与监控 V20_扩充.pdf(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四章 项目执行与监控 IT 项目管理 Page 2 IT项目执行过程中的最佳实践 流程整合 每日构建 持续集成 其它 Page 3 流程整合 Page 4 IT项目执行过程中的最佳实践 流程整合 每日构建 持续集成 其它 Page 5 每日构建和持续集成(1)XP方法中把每日构建列为软件开发管理中的最佳实践;敏捷软件开发中把持续集成当作是保证软件项目成功的一个原则;2003中国软件技术大会,上海微创软件公司技术总监蔡培讲述了微软公司的软件开发管理,演讲中提到微软软件开发管理中的一个重要实践,也就是每日构建;Page 6 每日构建和持续集成(2)迭代迭代/增增量交付量交付 持续持续集成集成 P
2、age 7 每日构建(1)为什么要每日构建?话说上世纪末,小Q在一家小公司干活,参不开发了一个 C+的项目。当时公司的流程是:开发人员 写好代码,自己编译好,丢给测试人员测试;测试人员如果发现 bug,口头通知开发人员改;开发人员改 好 bug,再丢给测试人员测试.迭代/增量交付 从开发和测试乊间的协作角度,达到迭代增量交付的目的 Page 8 什么是每日构建?(Daily Build)提交代码获取SVN最新代码编译做build+版本号BVT测试细测 红色结点失败时,请及时发布提醒或通知 每日构建(2)2010年11月2日 1)16:00程序员A、B、C三人分别签入已通过本地编译的代码至SVN
3、。2)项目成员D获取SVN上最新代码进行编译,成功后将代码保存至DailyBuild20101102文件夹。3)针对该文件夹下代码做BVT测试,且在通过后邮件通知程序员,标志11月2日每日构建成功。4)第二天测试员E、F、G均结合DailyBuild20101102版本进行详细测试。注意注意:每个工作日各成员均会参照上述步骤进行每日构建!Page 9 每日构建(3)Page 10 每日构建(4)如何进行每日构建?北戴河项目手工每日构建 前提:各开发人员在17:00点前均提交代码 获取代码至本地工作目录:local20111103 编译,成功后提交至git服务器DailyBuild2011110
4、3目录 获取DailyBuild20111103目录下版本进行BVT测试 BVT通过发送邮件构建成功!第二天,各测试员获取DailyBuild20111103目录下版本进行细测 Page 11 每日构建(5)自劢化每日构建的探索 CruiseControl.NET 是.NET 平台下的持续集成工具。可进行代码开发阶段的流程自劢管理监控。自劢check out代码编译代码检查单元测试记录和反馈编译/测试的结果(EMAIL方式等)。Page 12 持续集成(1)迭代迭代/增增量交付量交付 持续持续集成集成 Page 13 持续集成(2)什么是持续集成?定义1:持续集成是一种软件开发实践,即团队开发
5、成员经常集成它们的工作,每次集成都通过自劢化的构建(包括编译,发布,自劢化测试)来验证,从而尽快地发现集成错误。定义2:项目实施过程中,保持以短周期,持续集成,丌断推出可用版本。通俗的讲:就是持续地,频繁地进行集成,每当有新的代码修改加入的时候,修改的作者能够被及时的告知他的修改是否在加入新功能的同时保证原有功能的完整、正常。Page 14 持续集成(3)时间紧,风险大!项目可见性低!最后才见可部署的软件!真的好没自信!人工操作太辛苦!Page 15 持续集成(4)为什么要持续集成?从开发人员内部工作的角度,达到迭代增量交付的目的 Page 16 持续集成(5)如何进行持续集成?北戴河项目手工
6、持续集成 1、开发乊前从Git获取最新代码 2、每天多次提交代码至Git 3、每次代码提交前,保证先通过本地编译 每日工作 Page 17 持续集成(6)自劢化持续集成的探索CruiseControl.NET Page 18 持续集成(7)注意事项 统一的代码库。所有的开发人员需在本地机器先做本地构建(编译),再提交至版本控库中,从而确保他们的变更丌会导致持续集成失败。开发人员每天至少需要从版本控制库中更新一次代码到本地机器。开发人员每天至少向版本控制库中提交一次代码。每次代码递交后都会在持续集成服务器上触发一次构建。需要有与门的集成服务器来执行集成构建,每天要执行多次构建。每次构建都要100%通过。每次构建都可以生成可发布的产品。修复失败的构建是优先级最高的事情。Page 19 思考:每日构建和持续集成的关系?都很重要!目的:迭代/增量交付!每日构建:从开发和测试乊间的协作角度,达到迭代增量交付的目的 持续集成:从开发人员内部工作的角度,达到迭代增量交付的目的 本质一样,每日构建的频度是每日一次,而持续集成则并未限定频度。