技术开发 频道

项目总结之结对编程

【IT168 技术文章】

  在项目中,我们实行了结对编程,获得了一定的成功:

  1、职业态度有很好的改进。由于缺少了单人独处的环境,两个人的合作更专注于工作,职业态度是编程人员的首要精神,对代码的质量起关键作用。员工聊QQ的、看新闻的、不务专业的、工作义务式的现象没有了。取而代之的是工作变的积极,学习也热情了,并且充满成就感。如果有很好的企业文化来配合,例如进行一些合作性的运动,足球,篮球等,更能促进职业态度改进,达到以团体带动个体的效果。

  2、1+1>2。结对编程,在每一时刻都是一个程序员在编程,说效率如何高,也只是1+1>1,但是否大于2呢?答案是肯定的。首先,一个人的编程,平均很难实现1>80%×1的工作效力。但是在和同伴一起工作时,必须保持思维一直高度集中,所以平均都可以达到1>80%×1的个人效力,同时有了一遍代码评审,使得出错几率就降低,减少了bug的产生。也由于两个人的思想汇集,能创造了很多新编程算法或结构重用等。所以着眼于整个项目来看,这个实践确实大大提高了效率。

  3、软件质量有明显的改进。

  1)代码的坏味道减少。首先是对编码的规范的遵守。结对编程改掉了一些人的编码的坏习惯(例如:不注释),也同时融合了每个人的编程优点。其次,代码的层次,和语法变得优美了。一些不耐烦的代码没有了,一些重复出现的代码没有了,改重用的代码重用了,改重构的代码重构了。

  2)程序执行效力提高了。结对编程是两个人的脑力劳动,可以相互学习,相互研究,所以我们在一起,常常会去试验新的编码方式,以寻找最好的方法。而且有什么想法通过交流后两个人都觉得可行,就可以写出测试用例,再来写出实现;所以不论在解决问题的时间和方法上,都比以前做得更快更好。

  3)减少了bug的产生。Bug的产生首先在于理解上,两人编程,需要两人去理解,同时两个人要经过讨论,形成一致思想,才可以编程,使得在理解错误的风险上减少。其次两人编程就等于已经有了一遍代码评审,出错几率降低了很多。所以结对编程能有效的减少了bug的产生。
 
  当然,在结对编程的过程中,也遇到了一些困难

  1、 如何将结对编程有效的融合到开发流程中

  我们团队加上项目经理和美工,一共6人,可以有2组配对(不包括经理,美工)。开发流程如下:

      

  那么如何进行结对开发呢,在那些流程中结队开发呢?

  1)我们进行以模块为单位,即是一组人负责一个模块的设计,和编码

  2)尽量将性格融合的,技术互补的配对。并且在不同阶段,有针对性的组合,可以起到很好的作用。比如,一个严谨,谨慎的人,配上一个喜欢创新的人。

  3)两人中,地位是平等的,只有经验多寡之分,没有地位高低之分

  4)工作时,两人必须使用一台电脑,一天中必须要有大于4小时的合作时间,即是要最少共同工作半天。

  5)将项目中的难点,分配给搭配默契并且经验丰富的组去负责。

  6)分析设计时,由两人讨论通过并签名。(在项目讨论会上必须由两人讲解)

  7)编码前,两人必须有达成共同的思想

  8)编码时先写测试,再写实现

  9)任务出错或不能完成,应由双方共同负责,不能相互指责

  10)两人意见不同时,可由上司帮助解决,最好不要各执己见

  11)每次测试时,从新组合配对人员,但不能由设计编码的人负责测试自己编写的模块但可以写测试文档。

  12)上司多点鼓励,结对人员相互鼓励,可以产生共同的荣誉感,责任感。

0
相关文章