极限编程感悟
极限编程又称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. 项目组不熟悉的项目类型.