敏捷开发、极限编程
什么是敏捷开发?一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。简言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
敏捷开发是由一些业界专家针对一些企业现状提出了一些让软件开发团队具有快速工作、响应变化能力的价值观和原则,并于2001初成立了敏捷联盟。他们正在通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。通过这项工作,他们认为:
个体和交互 胜过 过程和工具
可以工作的软件 胜过 面面俱到的文档
客户合作 胜过 合同谈判
响应变化 胜过 遵循计划
并提出了以下遵循的原则:
我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。
即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。
经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。
在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。
围绕被激励起来的个体来构建项目。给他们提供所需的环境和支持,并且信任他们能够完成工作。
在团队内部,最具有效果并富有效率的传递信息的方法,就是面对面的交谈。
工作的软件是首要的进度度量标准。
敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。
不断地关注优秀的技能和好的设计会增强敏捷能力。
简单是最根本的。
最好的构架、需求和设计出于自组织团队。
每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。
参看《敏捷开发横空出世》
极限编程(XP)是一种轻量级的软件开发方法论,XP从实践中来,是对实践的总结,也是经过实践检验的,其主要特征是要适应环境变化和需求变化,充分发挥开发人员的主动精神。XP承诺降低软件项目风险,改善业务变化的反应能力,提高开发期间的生产力,为软件开发过程增加乐趣,相信这些足以吸引每个人的眼球。
在XP的项目开发中,首先引入了四个变量:成本、时间、质量和范围,通过研究变量之间的相互作用,将项目开发分析的更加透彻,成功讲述一个项目成功的原则。
为了能成功地实施XP,XP制定四个准则:沟通、简单、反馈和勇气
和十二条原则:计划游戏、小版本、隐喻、简单设计、测试、重构、结队编程、代码集体所有、持续集成、每周工作40小时、现场客户、编码标准
以及对开发人员的工作要求:编码、测试、倾听和设计。
XP是一个非常庞大的知识库,每一项都是一门值得深究的学问。提出这些要求和原则后,XP有提出了一系列的解决方案,也就是策略,其中包含:管理策略、设施策略、计划策略、开发策略、设计策略和测试策略。在真正去实现XP时,XP又提供了将策略成功应用的实践。可以说XP为你的软件开发的指导老师。
XP是从实践中来的,应此有好多人围绕XP发表了一些自己的实践经验,其中主要包括:测试驱动开发、结队编程、重构和极限编程工具。
参看《敏捷开发的七种武器》
对敏捷设计的认识: http://jigee.cnblogs.com/archive/2006/06/25/435113.html
极限编程与敏捷开发: http://tech.acnow.net/Html/Program/soft_project/SoftProcess/2005-8/7/23175325.shtml
敏捷软件开发(上篇) http://sd.csdn.net/n/20060809/93506.html
敏捷软件开发(中篇) http://sd.csdn.net/n/20060809/93507.html
敏捷软件开发(下篇) http://sd.csdn.net/n/20060809/93508.html
CSDN更多敏捷开发内容 http://tag.csdn.net/tag/%e6%95%8f%e6%8d%b7%e5%bc%80%e5%8f%91
在开发软件时,常常需要立即对各种变化做出反应,各种变化。我们绝对不可能做一个完美的分析和设计,然后在实现的时候再也不重新分析和设计。打个比方,就像是开车,我们把方向盘打到一个固定的角度以后就期望车子朝着一个目标毫无偏差地开过去,那是不可能的,正确的方法是时刻感觉着,不停调整方向盘,每下只是一点点就可以了。唯有变化本身才是不变的。XP的一个原则就是,既然变化是不可能避免的,就应该设法敏捷根据变化进行调整,而且无论怎样去适应变化,也不要期望能够终结变化。
我觉得软件开发中的变化,就好像是家务劳动中的灰尘一样,无论你怎么应付,打扫,维护,灰尘总是会大量出现,这是根本无法避免的。在家务劳动中,灰尘是永远存在的,不要指望一次打算就终结灰尘,过不了多久,它们又到处都是。自从我搬入新居以后,我一直是周末才打扫一次房间,每次打扫都是一场浩大的劳动,大量的灰,一次次的洗拖布,一池池的污水,每次至少是一个多小时的工作量。但是每次临近下次打扫的时候,回家的感觉总有些不自在,因为灰太多,觉得生活质量受到了严重影响。
前一阵子我父母来北京住在我这里,他们给了我很大启发,就是以XP的方式来打点家务。很简单,每天打扫,也就十几分钟,就像我平时开发软件时重构代码一样cheap。地板虽然看起来不是很脏,但也就这么扫一扫,拖一拖,总是能清理出一些东西来,所以房子总是很干净。现在他们回去了,我也继承了这个好习惯,一天扫一天拖,交替着每天吃完晚饭以后活动活动。于是,房子一直很干净,干完活之后我可以直接躺在地板上做做仰卧起坐,再拿着我那对86斤的哑铃做做飞鸟什么的,这感觉真是挺不错的,这才叫生活啊。
查看完整的敏捷开发、极限编程内容,或者用Google搜索相关的更多内容
没有评论:
发表评论