【IT168 技术文章】
1 为什么是XP
让我们来考虑一个传统的途径:用户组和开发组协商让一个分析员设计一个项目。在几周和几个月中,分析员和用户每天会面几个小时。分析员生产出一套文档,可能还包括象一个可视描述和用例之类。用户和项目经理(也可能是编程团队)回顾这些文档并且协商出一个发行版。程序员使用规范在几个月之后成长出一个系统,或多或少的实现了原来的想法。在结束的时候这通常是一个闭呼叫系统,当人们发现他们所遗漏的并意识到自从文档被写好以来什么都已经改变了。最后,用户加入进来作一个用户接受测试然后系统被发布。
通常整个过程所花费的时间比任何人所期望的都长,会遗漏一些特征,并且质量并不是用户想要的。更有甚着,文档也不再随日期更新。
问题总结:
不能完全理解用户需求(用户自己也经常不清楚自己需要什么)
用户的要求不断变化
技术更新速度很快
开发人员缺乏成功经验
开发小组不稳定
没有完整的测试设计
2 XP简介
XP全名Extreme Programming ,一种轻量级,灵活的方法。
XP 规定了一组核心价值和方法,可以让软件开发人员发挥他们的专长:编写代码。XP 消除了大多数重量型过程的不必要产物,通过减慢开发速度、耗费开发人员的精力(例如干特图、状态报告,以及多卷需求文档)从目标偏离。
在XP中,在用户vs程序员的角色中有一个基本的分隔。用户拥有*what you get*,而程序员拥有*what it costs*。这显示了谁能作出什么决定。 即用户做企业决策,程序员做技术决策。
2.1 用户决定:
范围:什么系统是必须作的。
优先级:对于企业价值什么是最重要的。
发行的组合:什么是必须在发行版中的,一定是有用的?
发行的日期:什么时候需要发行?
2.2 程序员决定:
评估添加一个特征的时间 ,以及每个特征的风险
使用各种技术选项所花费的成本 :程序员解释程序选择的结果,但是用户作决定
过程:小组怎么样工作,团队怎么组织
细节时间表:在一个迭代中特征先开发风险最大的那一个特征可以减轻风险
2.3 XP 的核心价值为:
交流。 项目的问题往往可以追溯到某人在某个时刻没有和其他人一起商量某些重要问题上。使用 XP,不交流是不可能的事。
简单。 XP 建议您总是尽可能围绕过程和编写代码做最简单的事情。按照 Beck 的说法,“XP 就是打赌。它打赌今天最好做些简单的事...而不是做更复杂但可能永远也不会用到的事。”
反馈。 更早和经常来自客户、团队和实际最终用户的具体反馈意见为您提供更多的机会来调整您的力量。反馈可以让您把握住正确的方向,少走弯路。
勇气。 勇气存在于其它三个价值的环境中。它们相互支持。需要勇气来相信一路上具体反馈比预先知道每样事物来得更好。需要勇气来在可能暴露您的无知时与团队中其他人交流。需要勇气来使系统尽可能简单,将明天的决定推到明天做。而如果没有简单的系统、没有不断的交流来扩展知识、没有掌握方向所依赖的反馈,勇气也就失去了依靠。