极限编程·印象

原创 2006年06月10日 17:16:00

极限编程·印象

——打破传统的传奇抑或命运

 

 

1.日出:新生

 

“你画你看到的、感觉的、需要的东西”

——库贝尔

 

19世纪中期,以库贝尔为代表的巴比松画派提出了面对自然写生的主张,打破了当时盛行的古典传统画风,才使法国风景画从新古典主义的束縳下解放出来,获得了新的艺术生命,从而揭开了19世纪法国声势巨大的现实主义美术运动的序幕。而莫奈和他创造的印象派则继承了巴比松派所倡导的写实主义传统,忠实地刻画在变动不居的光照条件下的景物的真实——变化的真实。莫奈以《日出·印象》改变了他以往的写实风格,正如日出的寓意一般,一个划时代的流派诞生了,它给后来的现代美术以极大的影响。

如果软件工程是门艺术的话,那么极限编程也算是软件世界的印象派了。既然谈到艺术,那么下面我们还是从艺术上谈起吧。

 

2.印象:直觉的投影

 

“你要牛到底,抓住第一个印象不放,因为它才是正确的。

——尤金·布丹遇见年仅十八岁的莫奈时对他说

 

“试著忘却你眼前的一切,不论它是一树、一屋或一畦田;只要想像这儿是一个小方块的蓝,这儿是长方形的粉紅,这儿是长条纹的黄色,並照你认为的去画便是。”

——莫奈

 

印象派是写实主义画派发展到了极端产生的,故属于写实主义,但它强调对客观事物的感觉和印象,反对因循守旧,主张艺术的革新。

“你画你看到的、感觉的、需要的东西”,没有看到什么,也就不去画什么,因而在他们的画中没有天使谪凡、耶稣受难、玛利亚的哀伤、巴比仑的陷落。灵感也不是来自拉斐尔或伯拉克西特列斯。

灵感来源于你的直觉所在,没有过多的预先构图与设计,只是很从容地拿起画布、颜料和画笔,用大胆地用零乱的笔触看似漫不经心地涂出两三种调子。

 

没有什么比XP(极限编程方法论,下文全部简称XP)更强调直觉做事了。大量地凭借印象,即对事物的认知来进行项目。

如同印象派一样,抓住第一个印象不放——对于重要或好的东西,将始终先进行;通过迭代的方法,首先实现最高优先级的特性(印象最深的先行)。

画你看到的、感觉的、需要的东西——只考虑看到的东西,即简单准则,XP在今天做得简单一些,如果需要复杂明天再加总胜过永远不再需要它(没有看到什么,也就不去画什么,以后看到了再说)

试著忘却你眼前的一切,照你认为的去画便是——勇气准则,勇敢地修复错误,勇敢地放弃原有的代码。不如意就改,总之,照你认为的去画(重构)便是。

大胆地用零乱的笔触看似漫不经心地涂出两三种调子——XP为轻量开发方法。在很多情况下,按传统观念建立的大量的文档,一方面需要消耗大量开发资源,同时却已经失去帮助“预见、管理、决策和控制的依据”的作用。(运用色彩,“使人如同面对一扇打开的窗户,极度真实,但不关心绘画的内容。”)

 

3.白杨树·教堂·干草堆:变幻的光影

 

物体的色彩是由光的照射而产生的,物体的固有色是不存在的

 

1883年莫奈在巴黎定居之后,莫奈有了一间属于自己的较大的画室,但这个画室只用来陈列作品,他绝不在画室内画一笔。莫奈在室外作画时,由于光线变换迅速,他无法在短短的时间内完成作品,因此,他不得不在一次写生时不断更换画布,这样就产生了一种景物的系列作品,如著名的《干草堆》系列、《教堂》系列、《睡莲》系列等。同一主题在不同光线和空气下变幻无穷的外观。因而油彩记录下来的,不是所见物体的本身,而是光照的过程。莫奈把对光色效果的追求推到了极限,因此致使有些人把他比作机械眼,能够以惊人的精确度记录下某一时刻的瞬间印象。

 

拥抱变化是XP的基础和根基,它是被设计用来处理不明确或者迅速变化的需求的软件开发方法,故天生有其适应变化的特性,通过沟通和反馈准则来对需求进行分析,使用小版本迭代式开发一步步微调其功能以适应需求变化。快速的迭代与重构如同不断更换的画布一样,产生出对同一项目的一系列作品,生成无数版本的该作品,印象无法瞬间打造完美的作品,但反映了那一刻的真实得不能再真实的世界。测试和持续整合,可是视为一次写生的那些作品放在一起,抛弃不成功的画布,修改不如意的那副画,最后整理成一部系列作品的过程。

这一近似刀劈斧砍的改革令人们耳目一新,它需要敢于重新作画的勇气,与捕捉瞬间的智慧。

 

4梵高与高更:当“疯子”遇到“野蛮人”

 

Two heads are better than one

——西方谚语

 

高更于18881023日到达梵高居住地——阿尔勒。两个画家采用同一主题创作:基努夫人(阿尔勒的女人)、如兰太太、杜尔诺归勒一家、洗衣妇、阿利斯康一家的肖像。当时高更经常绘制梵高已经画过的主题。尽管高更声称只有他对梵高产生了影响,而实际上两个人都从对方那里学到很多东西。

 

事实证明,梵高与高更尽管在艺术上存在分歧,却相互影响了对方,在他们的作品中都能够看到彼此风格的影子。XP也充分意识到两人合作的重要性,提出结对编程这个概念,这也大概是极限编程中最具有革命性的实践,它可以促进更好地交流与思想的交叉。此外,当一个程序员编码时,另一个程序员能够思考更大的场景。这样非但不会降低开发团队的效率,反而大大减少缺陷率。

 

5.分色画法·点描派

 

秀拉的分色画法是新印象派的代表,秀拉将顏料管裡的顏色直接不经调色,点在画布上,他认为不混色顏色会更明亮,利用人的眼睛自己会混色的原理来创作,也被人称作"点描派"

 

这次我要讲的是重构,重构确保了程序员加入新的功能后代码仍保持简单,这是很有必要的。例如把大函数分解,把大类分解成小类,这样的单纯类虽然不能“足以表达颜色”,但是利用依赖和泛化等关系进行互相调用、使用,就像眼睛自己会“混色”一样。但你不能破坏整体的视觉,从远处来看,它应该还是一幅色彩缤纷的画,而不是一堆色点。

 

6.德彪西·月光

 

德彪西,音乐界的印象主义代表。有《夜曲》、《月光》和《大海》等多部作品。

 

比起音乐来,也许美术更能使欣赏者很容易地理解画家所要表达的内容,而音乐却要含蓄一些,然而德彪西的印象主义音乐重形式轻内容的性质使听众去感受他所要表达的那种感情并在头脑里自然而然地形成画面,而不是要诠释内容,再让人由内容对应名词来联想情景。

 

让程序员和客户都能理解同一样东西是不容易的,故隐喻在XP中是至关重要的。隐喻是普通语言和术语的集合,用来遇见项目中的功能。这些属于能够与现实世界的对象等同,例如帐户或者物体。目的就是要使用户和程序员对系统有着同样的想象,就想德彪西与他的印象主义音乐一样。

 

    

7 传奇抑或命运

 

就像人类历史上许多有重大价值和意义的事物的命运一样,印象主义绘画在诞生之时以及后来相当一段时间内,并没有领受到社会为她准备的鲜花和美酒。然而,在画家们潦倒了近半个世纪之后,印象派突然之间成为了艺术史上“所有艺术运动中最受欢迎的运动”。 只是那一年,莫奈已六十岁,塞尚六十一岁,雷诺阿五十九岁,毕萨罗六十九岁,西斯莱与摩里索已看不得这一幕,俱在前一两年逝世。但是有创新精神的艺术家的噩梦并没有结束,同时代的凡高与高更,稍后的莫迪格里阿尼,下场比他们更惨。高更死在孤岛的草屋,其余两人自杀身亡。谁也不敢说今后天才不会在我们身边潦倒终生。

XP的发展可以说是软件工程的革命了,然而人们对它的认知程度如同印象派起初的一样。有的人会把XP当作是适用于所有软件开发问题的解决方案,而有些人则会把它看作是个骗局,不适用于任何软件开发的情形。而它的价值是否能体现,是否被人们认可呢,会不会再过半个世纪呢?也许不会了,历史的车轮滚滚向前,它只留下闪光的那一页,淘汰不合适的。极限编程理论——鲜花和美酒的命运正等待者它,等待着一个传奇的时代的到来。



保罗·高更(1848—1903)自称为幼稚而粗鲁的野蛮人,他是厌世逃避者。极其不满资本主义社会,总想逃避到一个世外桃源。

②选自新民晚报《印象派的故事高更和梵高在阿尔勒》。

敏捷开发之道(三)极限编程XP续

上次的博文敏捷开发之道(二)极限编程XP中,我们了解了XP的实践中的其中四个,今天我们来一起学习一下剩余的实践。...

敏捷方法之极限编程(XP)和 Scrum区别

敏捷方法之极限编程(XP)和 Scrum区别

敏捷方法之极限编程(XP)和 Scrum区别

文章转载自:http://blog.csdn.net/ostrichmyself/article/details/5375223 敏捷(Agile)作为一种开发流程, 目前为各大公司...

敏捷开发纵横谈(2)——极限编程

极限编程,英文:Extreme Programming,简称:XP编程。这是在SCRUM之前流行的敏捷方法,这是一种轻量、快速、强调适应变化、适合中小型项目的项目管理方法。...

将极限编程进行到底:整合XPlanner和IntelliJ IDEA

将极限编程进行到底:整合XPlanner和IntelliJ IDEA,转载自[捷特慈朋JetMaven - Mentor for Software Development] 将极限编程进行到底:整合...

敏捷开发系列之旅 第二站(走近XP极限编程)

上篇文章,我们探讨了什么是敏捷开发,以及敏捷开发的方法学。在这篇文章中,我们将继续讨论敏捷开发中的问题——XP极限编程。 在讨论之前,先让我们来了解一下XP极限编程产生的背景,软件业所具有的共同的...

极限编程的集成测试工具-Dunit

 简介 极限编程(Xtreme Program)的测试理念是,在开发程序的之前或者同时就要编写出相应的测试程序,而不是象通常那样等到测试阶段再来编写测试程序。 当程序完成时,它的测试程序也应该...

极限编程与敏捷开发(转载)

在按照我的理解方式审查了软件开发的生命周期后,我得出一个结论:实际上满足工程设计标准的惟一软件文档,就是源代码清单。-- Jack Reeves 简介  2001年,为了解决许多公司的软件团队陷入不断...
  • maikol
  • maikol
  • 2011年06月06日 23:43
  • 532

极限编程-拥抱变化阅读感想(一)

写这篇文章,主要是学习一下书中的项目管理理论,同时还可以祭奠下我们糟心的项目。如果你对软件开发的现状不满意,可以评估下XP是否适用你的项目,决定权就掌握在你们手上。...

IEEE极限编程之The pipeline-动态规划思想

题目: 代码: #include #include #include #define NUM 100 using namespace std; class solution{ publi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:极限编程·印象
举报原因:
原因补充:

(最多只允许输入30个字)