构建高效的软件开发流程和团队(ppt 21)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

JetArt构建高效的软件开发流程和团队进入JetArt目录•1.极限编程(ExtremeProgramming)•2.如何构建高效软件开发流程和团队JetArt•什么是极限编程极限编程ExtremeProgramming业内人简称为XP,不要把XP与WindowsXP联系在一起。它们没有很大的关系。XP=(eXtremeProgramming)中国给它一个很酷的名字“极限编程”。•XP是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、朴素、反馈和勇气;即,任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。JetArt•XP适用于需求经常发生变化的项目•你的客户对系统应该做什么可能没有一个固定的想法;一个系统每隔几个月其功能就要求进行一定的改变。大多数软件项目的需求都处于这样的动态变化之中。•XP适用于高风险的项目•如果客户需要一个新的系统,而且要求在某天前完成,这里的风险就比较高;如果你的开发组没有做过类似的系统,风险就更高了;使用XP可以降低风险和增加成功的可能性。•XP适用于小规模的项目组•一般在2到10人之间。使用XP不需要拥有博士头衔的开发人员,一般的开发人员就可以。但不能在一个大型的项目组中采用XP。我们注意到,对于一个需求动态变化和高风险的项目而言,一小组XP开发人员要比大的开发组更加有效。•XP对可测试性有要求•你必须建立自动的单元测试和功能测试。虽然在某些情况下这个要求不能满足,但事实上你会惊讶地看到通过某种方式仍然可以达到这个要求。•XP对生产力也有要求•所有采取XP的项目组都无一例外地比其它项目组的生产力高。但这从来不是XP的目的。XP的真正目的在于按时交付客户需要的软件。如果这对于你的项目而言很重要,你就可以尝试一下XP。JetArtHowdowedeliverfunctionalitytobusinessclientsquickly?Howdowekeepupwithnear-continuouschange?如何能快速地向商业用户交付功能?如何才能跟上近乎连续的变化?JetArt计划的制定小版本隐喻简单的设计重构测试结对编程代码共享每周只干40小时编码标准JetArt•计划的制定迭代式项目的特点、每三周为一个循环,频繁地更新,按优先级划分任务与技术。•小版本所有的大的项目都可以被分为局部的、小的步骤。实现渐进式发布。•隐喻XP使用隐喻定义一个从开发者到商业客户都可联系的全面一致的主题。•简单的设计1、为已定义的功能进行设计,而不是为潜在地未来可能的功能进行设计.2、创建最佳的可以实现功能的设计。换句话说,不用管未来会是怎样,只创建一个目前为止可以实现的最好的设计。“只有在你真正需要的时候才去做”。JetArt•重构•XP原则应当保持持续设计。当变化既快而且频繁的时候,应投入更多的精力于重构之上。•测试•先测试后编码、单元测试和功能测试•1.单元测试(这是软件开发的“圣杯”。)单元测试是从程序员的角度编写的。它确保类的某个特定方法成功执行一系列特定的任务。每个测试都确保只要给定输入,方法将输出预期的结果。2.功能测试功能测试是从用户的角度编写的。这种测试确保系统执行用户期望它执行的工作。•结对编程•互相检验对方的代码.JetArt•代码共享•项目组中的每个人都可以在任何时候修改其他项目成员的代码,这就是XP中所定义的代码共享。•诸如“我不想让那些笨蛋改我的代码”,“出现问题我应该怪谁?”等等。共享代码从另一个层面提供了对配对编程中协作的支持。•经常集成•经常周期性的构造(build)。•XP提醒我们有可能有严重的集成错误。•每周只干40小时•Jeffries提供了关于加班的思索:“我们说的是加班被定义为我们不想在办公室的时候呆在办公室。而且不应当加班超过一周。如果你超过了,就有什么东西出了问题――由于你过于劳累,有可能比你按时下班干的还差。在我们年轻和满身干劲的时候,这也许没问题。值得注意的是拖沓的一周又一周。JetArt•现场客户:•XP,同其他的快速开发一样,要求客户在现场持续地参与到项目组中。•编码标准:•一个团队应有相应的一个编码标准。例如,如果你进行配对编程并让他人修改共有代码,那么编码标准看起来就是必须的。JetArt如何构建高效软件开发流程和团队JetArt•项目计划•BUG数据库是计划一种参照。•合理的计划(个人组长管理层)•尽力按照这个开发进度来执行•重新计划•1.轻型的(XP原则,周期性(三周)的变更计划)•2.灾难的(20%的工作量会占据80%发生时)如何构建高效的开发环境项目计划JetArt•开发文档•整理思路与架构、磨刀不误砍柴工•FunctionSpec•中需要写明的是本模块完成的任务,解决什么问题,有什么作用,为什么要这些功能,此外我们还会添加进适用范围,有什么不足,注意点是什么,还有哪些地方在以后可以进行改进。•DesignDocument•主要描述实现此模块所涉及到的主要算法、数据结构、类的层次结构及调用关系。如何构建高效的开发环境开发文档JetArt•编写代码•统一的代码风格•提供详细的注释及说明•主要的模块要编写UnitTest如何构建高效的开发环境编写代码JetArt•代码管理•源代码的统一管理。•dailybuild如何构建高效的开发环境代码管理JetArt•BUG管理•通过BUGTrackingSystem管理Bug库。•测试部门发现一个BUG后在BUGTrack中增加一个BUG,同时填入相关信息并assign给相应的开发人员,开发人员收到BUG分析并fix后assign给测试部门去verify,其中要填上分析的结果以及如何解决的详细说明。若测试部门对此BUGverify通过则closeBUG,如果verifyfailed并重新assign给开发人员并等待其fix。•测试部门发现BUG后,开发人员应马上改正。•周期性汇报BUG情况。如何构建高效的开发环境BUG管理JetArt•CodeFreeze•在codefreeze阶段,测试部门在紧张地进行着各种测试,得出各种数据,并决定本版本是否可以release了。如何构建高效的开发环境CodeFreezeJetArt•CodeReview•CodeReview中大家会提出问题和建议,集思广益,多个人共同出主意,有些可能一个人没有想到的问题会被大家发现,互相学习,共同进步。如何构建高效的开发环境CodeReviewJetArt•TechTalk•计算机知识更新速度非常快,经常有一些新的术语、新的名词、新的思想、新的技术所产生,如过离开此行业几个月后重新回来就会对这些新的事物不解,而我们平时为了自己的项目埋头苦干可能忘了周围的世界发生了什么。TechTalk就提供了一个让我们了解新知识和最新发展趋势的机会,让大家把知识共享,共同提高。如何构建高效的开发环境TechTalkJetArt•沟通与交流•沟通无处不在,交流随时发生,但大部分关系是在工作之外建立起来的。如何构建高效的开发环境沟通与交流JetArtEndThanks!如何构建高效的开发环境项目计划

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功