极限编程与敏捷开发

敏捷开发过程的刚发很多,主要有:特征驱动软件开发、自适应软件开发,以及最重要的极限编程。

极限编程(XP)是敏捷方法中最著名的一个。它是由一系列简单却相互依赖的实践组成。这些实践结合在一起形成了一个胜于部分结合的整体。

下面是极限编程的有效实践。

1、完整团队

XP项目的所有参与者(开发人员、客户、测试人员等)一起工作在一个开放的场所中,他们是同一个团队的成员。这个场所的墙壁上随意悬挂着大幅的、显著的图表以及其他一些显示他们进度的东西。

2、计划游戏

计划是持续的、循序渐进的。每2周,开发人员就为下2周估算候选特性的成本,而客户则根据成本和商务价值来选择要实现的特性。

3、客户测试

作为选择每个所期望的特性的一部分,客户可以根据脚本语言来定义出自动验收测试来表明该特性可以工作。

4、简单设计

团队保持设计恰好和当前的系统功能相匹配。它通过了所有的测试,不包含任何重复,表达出了编写者想表达的所有东西,并且包含尽可能少的代码。 

5、结对编程

所有的产品软件都是由两个程序员、并排坐在一起在同一台机器上构建的。 

6、测试驱动开发

编写单元测试是一个验证行为,更是一个设计行为。同样,它更是一种编写文档的行为。编写单元测试避免了相当数量的反馈循环,尤其是功功能能验证方面的反馈循环。程序员以非常短的循环周期工作,他们先增加一个失败的测试,然后使之通过。

7、改进设计

随时利用重构方法改进已经腐化的代码,保持代码尽可能的干净、具有表达力。

8、持续集成

团队总是使系统完整地被集成。一个人拆入(Check in)后,其它所有人责任代码集成。

9、集体代码所有权

任何结对的程序员都可以在任何时候改进任何代码。没有程序员对任何一个特定的模块或技术单独负责,每个人都可以参与任何其它方面的开发。

10、编码标准

系统中所有的代码看起来就好像是被单独一人编写的。

11、隐喻

将整个系统联系在一起的全局视图;它是系统的未来影像,是它使得所有单独模块的位置和外观变得明显直观。如果模块的外观与整个隐喻不符,那么你就知道该模块是错误的。

12、可持续的速度

团队只有持久才有获胜的希望。他们以能够长期维持的速度努力工作,他们保存精力,他们把项目看作是马拉松长跑,而不是全速短跑。 


极限编程是一组简单、具体的实践,这些实践结合在形成了一个敏捷开发过程。极限编程是一种优良的、通用的软件开发方法,项目团队可以拿来直接采用,也可以增加一些实践,或者对其中的一些实践进行修改后再采用。 

敏捷软件开发宣言

n个体和交互 胜过 过程和工具

n 可以工作的软件 胜过 面面俱到的文档

n 客户合作 胜过 合同谈判

n 响应变化 胜过 遵循计划


虽然右项也有价值,但是我们认为左项具有更大的价值。

敏捷宣言遵循的原则: 
  
  n 我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。 
  
  n 即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。 
  
  n 经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。 
  
  n 在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。 
  
  n 围绕被激励起来的个体来构建项目。给他们提供所需的环境和支持,并且信任他们能够完成工作。 
  
  n 在团队内部,最具有效果并富有效率的传递信息的方法,就是面对面的交谈。 
  
  n 工作的软件是首要的进度度量标准。 
  
  n 敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。 
  
  n 不断地关注优秀的技能和好的设计会增强敏捷能力。 
  
  n 简单是最根本的。 
  
  n 最好的构架、需求和设计出于自组织团队。 
  
  n 每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。 
当软件开发需求的变化而变化时,软件设计会出现坏味道,当软件中出现下面任何一种气味时,表明软件正在腐化。 
  
  n 僵化性: 很难对系统进行改动,因为每个改动都会迫使许多对系统其他部分的其它改动。 
  
  n 脆弱性: 对系统的改动会导致系统中和改动的地方在概念上无关的许多地方出现问题。 
  
  n 牢固性: 很难解开系统的纠结,使之成为一些可在其他系统中重用的组件。 
  
  n 粘滞性: 做正确的事情比做错误的事情要困难。 
  
  n 不必要的复杂性: 设计中包含有不具任何直接好处的基础结构。 
  
  n 不必要的重复性: 设计中包含有重复的结构,而该重复的结构本可以使用单一的抽象进行统一。 
  
  n 晦涩性: 很难阅读、理解。没有很好地表现出意图。  



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值