menu

秋梦无痕

一场秋雨无梦痕,春夜清风冻煞人。冬来冷水寒似铁,夏至京北蟑满城。

Avatar

极限编程的“权利法案”(zt from:tsbbs)

极限编程的“权利法案”

作者: ZDNet China
Friday, February 6 2004 1:59 PM

从前,当我和别人谈及极限编程(Extreme Programming)的时候,由于它还是全新的(概念),所以我通常不得不从最基本的零散知识开始。这样的日子已经一去不复返了。现在当我演讲的时候询问听众是否已经听说过XP,很多人都会举手。从我的角度讲,这是很好的,因为我希望有更多的人能够知道XP是如何帮助他们以更高的效率来开发软件的。但是越来越多的曝光率常常也会带来它的邪恶胞兄——误解。

软件开发不是非黑即白
无论它可能会有什么其他性质,软件开发极少是一片非黑即白的土地。它是一块极具变数的土地,充斥着大量有不同需求的人,所以当两个人看待同一片风景的时候,一个人看到的是美丽和雅致,而另一个看到的却是一片头脑的沙漠。XP似乎就得到了这种评价,从名字上就可以看得出来。毕竟,为什么要叫它“极限编程”呢?如果再有一个人问我,XP是不是和橡皮筋或者划下垂直斜坡有关的东西,我可能会笑趴下。

我听到过很多种对它的解释:一个是,重点应该真正地放在“编程”上,因为XP的一个中心观点是编程活动主要责任在于商业价值的交付。另一个是, “极限”指的是一个团队按照个人惯例的频率。例如,任何团队都可以在某些时候给程序配对,但是XP团队会在所有的时候都给程序配对。

Kent Beck,极限编程之父和灵巧联盟(Agile Alliance)的创立者之一,说过:团队是用来传达编程所能够完成的强度的。“极限编程是一种感知和精力集中的活动——所有的刻度盘都被拨到了10 ——关注你需要关注的一切,而不会在无关紧要的事情上花费精力,”Beck如是说。尽管Beck说这不是他原来的意图,但是我的经验却是,名称的优势之一是它能够调动起情绪性的反应。Jim Highsmith,适应性软件开发(Adaptive Software Development)方法的创立者兼灵巧联盟的活跃作者和评论员,在《灵巧软件开发生态系统(Agile Software Development Ecosystems)》一书里表达了这样一种情绪:“我不认为会有很多人对一本关于‘《稳健编程(Moderate Programming)》’的书感兴趣。新的市场、新的技术、新的理念都不来自于这种稳健,而是来自于极限不同的观点,以及敢于挑战现状的勇气。”

极限编程:解决方案还是骗局?
有的人会把XP当作是适用于所有软件开发问题的解决方案,而有些人则会把它看作是个骗局,不适用于任何软件开发的情形。当然,事实是介于两者之间的,但是如果你去和XP的狂热拥护者或者强烈反对者进行一番讨论的话,你就很有可能曲解XP的真正含义。

在这里,我没有地方来讲述我所碰到过的对XP的所有误解,但是误解几乎都和XP根本的价值相矛盾。如果你了解这些价值,那么就很容易找到误解的所在。XP在很多方面都体现出了其价值,包括对不同参与者的权利的阐述。任何XP项目都应该包括这些权利。要注意,具体的时限可能会因项目的不同而改变。

客户的权利
* 客户有权利大规模地计划成本和选择。
* 客户有权利安排每周的开发优先顺序。
* 客户有权利在第一周结束的时候以工作系统的形式查看进度,并了解之后每周会做些什么。
* 客户有权利更新计划安排、不论是好的还是坏的,只要有信息都要更新。
* 客户有权利改变他/她的主意而不需要付出太多的费用。

程序员的权力
* 程序员有权利对工作进行评估,其评估的结果应该受到团队其他成员的尊重。
* 程序员有权利如实地报告进度。
* 程序员有权利在所有的时候都进行高质量的工作。
* 程序员有权利知道下一步要做的、以及最重要的是什么。
* 程序员有权利询问面向商业的问题,如果这些问题出现的话。

管理人员的权利
* 管理人员有权利对成本和结果进行全面的评估,确认实际情况将(和预计的)有所不同。
* 管理人员有权利在项目之间调动人员,而不需要支付过高的费用。
* 管理人员有权利每月更新进度,帮助客户确定总体的优先顺序。
* 管理人员有权利根据最新的投资情况取消项目,并保留工作系统。

任何拒绝这些权利的项目都不是一个真正的XP项目,而无论给它贴上的标签是不是XP。

评论已关闭