rogramming,简称叫XP,最开始我接触到XP的说法时,还觉得是Windows XP的XP呢!
我第一次学习极限编程的最佳实践时,让我震撼不已,后来再工作中不断体会,有了自己的见解。我将这些最佳实践分为几类:需求、设计、测试、编码、项目管理。
需求方面的最佳实践:
1.客户故事:强调以客户的语言来表达需求。
需求分析有很多科学系统的方法,采用这些系统方法有时候往往不如使用最原始的土方法,就是用客户的陈述来表达需求!
极限编程认为,客户不能清晰认识自己想要什么是很正常的事情,项目组也没有必要成为业务专家,所以通过这两个最佳实践让客户来引导项目。项目的开发工作讲究短平快,系统会分为多个小版本发布,客户经过多个版本发布会逐步清楚认识到自己想要什么。
这个最佳实践鉴于我国的情况,其实是很难执行的。我们的项目一般合同价钱是签死的,项目时间也是死的,基本都没有机会让我们来回折腾,如果我们不能在项目初期精准地分析出客户真正的需求,项目失败的机会是非常高的。
我在实际工作中往往会通过用户故事来获取原始需求,然后对这些用户故事进行提炼,提炼后的需求再跟客户确认。我认为项目组还是很有必要成为业务专家,项目组中还是很需要有需求分析方面的高手,项目经不起折腾啊!
2.客户全程参与:强调从项目一开始到最后,客户应该与项目紧密联系,发挥更大的作用。
这个实践在实际工作中应该很好地贯彻,不要仅在需求阶段才让客户介入,客户最好就能常驻在项目小组内。下面有一些让客户多参与的建议做法:
1)需求阶段要与各用户反复确认需求。
2)系统做出界面时马上让客户看看。
3)项目计划要让客户知道。
4)每周向客户发送项目进展报告。
5)让客户参与测试软件。
设计方面的最佳实践只有一条:
1.简单设计:不用长远考虑,只要设计能保证当前功能可以实现就行。
软件开发的可谓千变万化,能将功能做出来的最简单设计就是最好的设计,你不需要考虑以后发生变化还能重用这些设计和代码,明天的事情鬼知道,搞定今天的事情就可以了!
这个实践有点剑走偏锋,有人还会因为这个实践不仔细思考软件设计就编码了,我们有很多项目因为设计得太烂而吃了不少苦头。实战简单设计时,我有这样的一些建议:
1)对于没有类似经验的项目,设计应该尽量简单,但简单的设计是需要严谨的思考得到的,你不要认为简单想一个设计出来就是简单设计。
2)思考项目设计时,应考虑有什么东西可以重用,同时适当考虑本项目有什么东西可供以后的项目重用。
特别声明:
如需转载此文,请给出指向本网站的连接,如下:
作者:张传波
摘自:http://www.umlonline.cn
如不能按此要求,请不要转载此文。