|
发表于 2004-12-18 00:26:00
|
显示全部楼层
Re:什么是极限编程
XP,极限编程,,,流行了一段时间。从此文大体对XP有个初步印象,总体觉得XP要解决的问题是项目开发最大的问题。
不过,文中所提到的XP理念真的就是这样子的吗?
我对简单设计到重整的优化设计有些看法,至少实施XP项目的人员要求非常高才能基本达到XP的目的。
1、两人开发同一段代码。好主意,这是我开发的梦想,遗憾至今没有一家公司可以提供。
2、“优化设计”,简单而美丽的一组词,隐藏着前面“简单设计”留下的陷阱,这需要编程和系统设计经验非常丰富的开发员才能做到,否则,优化设计就是一句空话。
3、极限需求,把客户的需求最小化然后制定计划并订制功能测试标准。我在想,如果其后的“简单设计”就是那么简单地把每个最小需求模块实现,是否有点只见树木不见森林,需求上的一个失误,以后如何弥补?会无知地被扩大到最后。
4、请问:客户完全知道自己的软件将来是什么样吗?
XP开发理念,更适合软件公司在一开始就把客户的“目标需求”(即便这是客户还不知道计算机能干什么的情况下制定的需求)锁定在合同和计划中,如有改变,a、拿钱来改;b、恕不奉陪。
希望刚刚入门开发不到2-3年的朋友,目前不宜学习XP,否则只有两个结果:a、流水线上拧螺丝的工人;b、永远都在螺旋式的开发中不知尽头(别忘了,客户对自己的需求也是在螺旋式增长)。
看了该文后,这里也给朋友一个建议:
各位朋友,项目开发最重要的还是在需求分析上,真正的极限需求,应该是在了解客户所提需求后扩大需求和抽象需求,列尽你能想到的与客户需求有关的尽可能多的需求,然后将关联的需求抽象为某种需求,目的:从纯数学角度来看客户需求,从而获得在尽可能大的范围内需求获得解决。
其次重要的是真正的“极限设计”,这不是一个简单的设计。应该由经验丰富的开发员实施。这个过程将一直伴随着对前面需求进行裁剪。裁剪并非真正意义上的取舍,应该是在设计出来的系统中能够支持尽可能多的需求,取得是客户目前的需求,舍得是扩大的需求。但,舍非不能实现,系统体系结构是支持的,只是目前编程不实现而已。系统的体系结构设定后,下来的就是分解系统,这点就如XP中的许多简单的模块一样,系统被分解为许多且有高重用高扩展的模块。这时,真正的项目进度计划才能如实制定。
然后,交给给位程序员分布实现。实现分三步:第一步,系统内核,重用极高的部分;第二步,基本功能实现,抽象出来的最基本的功能;第三步,客户完全需求实现,基于基本功能来实现。
最后,测试,按照客户提出的有限需求进行逐个功能测试。如果客户需求有改动,不必紧张,你的内核和基本功能足以应付这类情况。
如此下来的项目,不仅仅是完成,客户也会很满意,同时,项目具有扩展性,即便客户人事变动、政策变化等,系统不需要如XP般重头来一遍(即螺旋式的一圈或更多圈),只需要在基本功能的组合上或者内核的增强上就能实现变化。。
极限!!!编程!!!
按该文所说,你最后真的变为极限程序员,因为你一直在为一个项目不停地编程,直到你辞职。。。。。
|
|