极限编程感悟

极限编程

极限编程又称xp方法,是敏捷开发的软件过程模型。

极限编程的4条准则:沟通,简单,反馈和勇气(修复缺陷,集中攻关和放弃原有的代码)

基本原则:快速反馈,假设简单,递增更改,提倡更改,优质工作

开发软件的4项基本工作:编码,测试,倾听和设计

首先使用计划游戏,根据功能的优先级和实际进程来决定游戏的玩法,并只是制定下一阶段的计划,希望程序员主动的接受责任,并对预期实现的时间进行估计。

不断发布小版本(小但是有价值)。使用隐喻,用有关整个系统如何运行的简单、众所周知的故事来指导所有的开发。使用的是简单的设计。

通过测试来增强运行程序的信心,测试包括程序员进行的单元测试和客户方进行的功能测试,程序员们编写的每个测试都必须是独立的、自动化的。

通过重构来简化程序并提高程序的柔性。

采用结对编程,结对编程是xp方法的实践过程。代码归集体所有,防治复杂的代码进入系统,系统中不能包含重复的代码(有且仅有一次),系统拥有尽可能少的类,拥有尽可能少的方法。

持续的集成,每次集成都要完成一项任务。

规定每周工作时间是40个小时。要求有现场客户,要求使用统一的编码标准。

分阶段的交付产品,进行迅速而具体的反馈,清晰的参赛系统的业务要求和为特殊任务配备的专家。

在xp中,团队负责体系结构。Xp不注重体系结构,但有几点机制可以确保它的实现:探究、隐喻、第一次迭代、小版本、重构和团队实践。

Xp方法一天的开发流程是:

  1. 确定问题和解决问题的人。

  2. 配对-快速设计会议。在战略上选择伙伴,战术上考虑选择输入编码的人。并周期性的交换角色。

  3. Test,Q&A。在编码之前验证测试失败,测试可能出错的地方,如果不明确答案是什么就询问客户。

  4. Refactor。找出“代码的味道”(感觉不对的地方)应用重构,验证单元测试,并使其依然通过。采用小幅度改动,每次行动后都要做单元测试。

  5. 集成或丢弃代码。将集成的代码生成系统,运行所有的测试,测试必须全部通过。如果不容易集成到过去的代码中,就丢弃它,明天重试。

结对编程,有利于团队成员间的互相学习。结对编程的伙伴不仅要求人在现场,而且更重要的是对任务做出承诺。伙伴能帮助保证团队的价值观不被忽略。伙伴允许你做必须做的事,这也许意味着丢弃代码,保持学习,并从头开始。

结对编程弥补了键入代码和大脑高质量思考的矛盾。因此而导致了高质量代码的快速产出。国外的结对编程经验表明追求完美的开发人员与多产的开发人员结对的效果最好。

Xp的方法提倡为了胜利而比赛。人们喜欢胜利,喜欢学习,喜欢与别人交流,喜欢成为团队的一部分,喜欢将事情控制在自己的手中,喜欢受到信任。喜欢出色的完成任务。喜欢使自己制作出的软件发挥作用。

Xp方法的好处:

  1. 有利于团队的整体进步。

  2. 不会因为一两个人的离队而使项目停滞不前。

  3. 开发过程带给程序员快乐和趣味。

  4. 开发出来的项目有质量的保证。

经过自己使用xp管理团队管理的一年的实践过程中发现, Xp方法不适用具有一下特点的团队:

  1. 还没有任何编出一个项目的团队。

  2. 团队中多数人并不理解xp的方法。

  3. 团体中的编程人员不愿意交流。或有些编程人员希望自己独立写代码。

  4. 设计未动,开发先行的团队。

  5. 团队中多数人并没有学习必要的软件工程知识。或不重视团队的重要性。

  6. 成员没有掌握足够的技能来评估自己的代码,或做必要的测试。

  7. 成员中没有人能知道自己要实现的功能将会花费多少时间。

  8. 没有充足编程时间的团队。

同时也发现xp方法不适用的项目:

  1. 没有客户方积极参与的项目.
  2. 复杂而庞大的项目.
  3. 有“高科技”攻关的项目.
  4. 项目组不熟悉的项目类型.