最近博客上关于XP的讨论也有不少文章,也很火热,我觉得:与其象有的人说的,XP是否适应国情,倒不如书XP是否适应具体的项目,具体的开发小组,具体的环境。我想起了在大学毕业设计时,我做为组长负责搞的毕业设计,那个时间,时间很短,两个多月,老师
要让咱们7人用JAVA教东西,组内人员水平参差不齐,基本只是学过点基本JAVA,以前没搞过JSP等玩意,有的很高手,有的以前老顾者玩
,快到毕业设计才开始着急学东西;而且成员大多数不是住宿的,最后,找了个破办公室,搞了两台机器,让住学校的同学用机器编程,其他人在家里搞好了部分东西,就回去和两位同学“结对编程”(这当然不是严格的),但有时我的确也安排大家,一周内有1-3天是在学校,
从早到晚进行轮流编程的,一人调试程序,另一人(配一位水平好点的)来想。当然大家可不知道啥是XP,也没听过这名词,
反正我们一遇到有特别困难的地方,都是这样的方式配对解决的,后来发现BUG居然也少了,效率有所提高。
而且那个时候,由于大家对JAVA的认识基本在一个层次上,因为我们经常是热烈讨论的,而且由于大家都是师范毕业的,所以安排大家轮流到讲台上去讲解自己学习到的心得,每个人在培训期间都要讲解,而且要求大家及时把自己学到的新东西和知识告诉给其他人知道,效果也不错。呵呵,现在想来,估计这就是最最"朴素“的XP编程了(当然,缺乏象测试驱动等重要东西咯),估计不少现在即将毕业的同学,如果要搞毕业设计,也可以学习下XP的方法,用真正的XP方法,这样会很爽的哦,呵呵
下面对XP来些精简的小结:
XP总结为”沟通,简单,反馈,勇气”四大价值观,包括12类实践,:计划游戏,小规模发布,隐喻,简单设计,测试驱动,重构,结对编程,集体代码所有制,持续集成,每周工作40小时,与客户现场沟通捕获需求,编码标准化。
而XP的好处也是很多的拉,这里也不多讲。我主要想讲的是,XP要想成功,而不会让人觉得是“高端人才”的文化,主要要得到开发人员,管理员,以及客户三方人员的理解和支持。其中特别是结对编程,每周工作40小时,最会被老板觉得不爽,所以,XP要成功,很重要的一点,要得到老板的认同。
其次,XP在应用范围方面,和RUP相比,有一定适用范围的。XP的创始人KENT BECK说道:“XP是适合中小型团队在需求不明确
或者迅速变化的情况下进行软件开发的轻量方法学”,因此,无可避免地,XP强调的是更注重快速,效率,所以在比如文档方面,软件集成规范管理,全面的软件质量管理,变更管理方面管理会比较困难,而且如果项目中有涉及外包部分的话,就更不要用XP了;而且如果缺乏客户的支持的话,XP也变成一片空谈了,项目扩大到一定程序后,XP有可能出现困难。
那么,最好的办法就是将传统的开发过程与XP结合起来最保险了。在结合的方法上,可以将项目的某些部分单独使用XP方法来开发,或者是在传统的RUP方法中,加强现场客户的沟通部分,做简单设计,做好每日构建,测试先行,平时在项目组中提倡讨论,民主,自由的气氛,调动成员的积极性,让成员分享自己的成功心得和方法体会,这可能比较适合大部分企业使用