读极限编程有感(XP的四大价值)

极限编程(Extreme Programming),是一种轻量级的软件开发方法,他以代码为核心任务,主张以简洁,高效,持续以及合作的方式来进行软件开发。因为上述的特点,这种编程方式比较适用于较小的开发团队。 对于超过百人的开发团队,我想这种编程方式未必很适合。

XP编程有四大价值,分别是:

  • 沟通
  • 简单
  • 反馈
  • 勇气

上述四大价值,个人觉得说的非常好。我觉得这四大价值不光光是体现在极限编程中,个人觉得只要是软件开发的项目都很有参考的价值。 下面我想结合实践,谈谈自己对上述四大价值的认识,而不仅仅局限于XP编程.

沟通: 人为什么比别的动物聪明?发明了语言,让大家更好地交流至关重要!

沟通对于软件项目的成败太重要了.尽管XP构建的是人与人通过最简单,最直接的方式来得到对人物的正确理解.但我还是想跳出极限编程的圈子来谈谈"沟通"."沟通"包括两大方面:与客户的沟通和项目开发团队内部的沟通.

a.与客户的沟通: 当拿下一个项目后,我们就需要根客户做需求分析. 系统要做什么? 有哪些功能? 各个功能下面包含那些子功能? 希望做成什么样子? ...... 这些大大小小,包罗万象的问题我们都需要一一跟客户了解清楚.要不以后该做的没做或做起来的功能不能满足客户的要求,总是有些麻烦吧. 假如碰到的客户这方面也有一定的了解,那好.假如系统有的功能连用户自己也描述不清,那可就需要想办法让客户明白,比如可以先做个原型,让客户看看是不是这样? 需求分析搞定后,客户签字后是不是就可以少沟通了? 不是的. 因为需求往往会改变嘛! 碰到这种情况,我们务必要沟通沟通再沟通了.

b.项目开发团队内部的沟通: 开发团队人员包括项目经理,程序员,测试员,数据库管理员等等.那么如何让开发团队高效工作呢?建议还是先沟通.作为开发人员,我们要及时向项目经理汇报工作的进展情况,让团队同组开发人员知道你的开发情况,遇到问题要及时沟通想办法解决.

简单: 简单的,才是更好的.

a.从系统规划来说,目前做目前人力物力能及的.只先做目前有能及的,目前尚在考虑中的,没想好应做还是不做得功能可以放到以后的二期,三期.等以后这些都考虑周全了,估计一期也做得差不多了,至少已经做了一部分了.这样总比所有的放到一起,现在才开始着手强吧. b.从设计上来说,我们应采取简单的设计.目前系统需要什么功能就先设计什么功能,暂时不要去设计未来的功能.毕竟未来不可预测,现在要是对未来设计太多也未必能很好地符合未来的功能需求. c.从自己编码来说,我们需要精简代码,消除重复的代码.比如将一些公用的东西写成可供复用的方法或模块.

反馈: 广听八方意见,忠言逆耳利于行.

因Xp编程的特点,开发人员能不断地得到反馈信息,根据这些反馈过来的信息进行研讨,然后进行下一次迭代.我们的开发团队也要这样做,不断地听取反馈信息.不管这些信息来自客户还是自己的内部人员.对于反馈的信息,我们也要尽快解决并总结为什么会出现这些问题.

勇气: 鼓足勇气,去面对问题,解决问题那才是正道!

Jeffries说,勇气是一种最终的价值。如果你在一种基于"沟通","简洁","反馈"的模式下工作,你将获得勇气,永往直前.以这种方式去解决问题,这也许正是xp编程的最终目标吧.作为开发人员,我们需要有勇气去面对出现的大大小小的"Bug"和错误.在人生处事态度上,我们大家也需要十分勇气吧!!

Contributors: FHL