标签:
随着这几周(其实也就两周……)老师开展的有关“结对编程”的项目工作,加上我和组员孔同学的合作,我对于上几周老师讲的书中的问题有了进一步深层次的理解。
结对编程技术是指两位程序员坐在同一工作台前开发软件。与两位程序员各自独立工作相比,结对编程能编写出质量更高的代码。它是一个非常简单和直观的概念,能达到事半功倍的工作效果。但是,人与人之间的合作不是一件简单的事情——尤其当人们都早已习惯了独自工作的时候。实施结对编程技术将给软件项目的开发工作带来好处,只是这些好处必须经过缜密的思考和计划才能真正体现出来。在结对编程中最重要的是要找到合适自己的伙伴,老师在上课时提醒我们,最好不要找自己同宿舍的小伙伴或者是多年的老朋友甚至是自己的男女朋友,否则会因为分歧导致感情分崩离析。起初我们不懂啊,因为毕竟大学三年也有过不少的合作项目,节课大作业什么的,那个时候我们基本上都是宿舍小伙伴一块儿。我的合作伙伴孔同学虽然不是我的室友,但是我们也是老朋友了。虽然我们在合作的工程中虽然没有发生什么大的分歧,当然,讨论和意见不统一在所难免,我们对于这个结对编程的意义理解的更深刻了。下面是我的几点浅谈~~
首先,关于伙伴的选择。《构建之法》书中写到“结对开发是程序员肩并肩、平等地、互补地进行开发工作……”“结对编程不是程序开发者独到的发明,生活中也有不少这样的例子……”因此我们不要再内心排斥结对项目,认为什么自己一个人习惯了之类的,我们首先要在心里认可同伴的地位,做到平等的开发。我个人觉得什么朋友室友都不重要,我们应该选择与自己水平相差不太远的做伙伴就好,不一定非要强求比自己强有着”抱大腿“的想法。这样我们无论是在分析、测试、编码、集成、写文档等方面都会达到事半功倍的效果。
其次,关于结对小团体中的个人。书中讲到,在结对编程中每一段代码都不是’你的代码‘或者’我的代码‘,而是’我们的代码‘。既然代码的责任不是个人的而是团体的,我们应该避免产生“英雄主义”或是“撇清关系”的状态。我们要相互督促、更加认真的工作。提高自己的个人技术能力,以免被别人小看。现在的我们毕竟还是身处学校这个大环境中,各项任务其实是有老师护航什么的,但是以后在单位中,我们的逞强、不听他人的建议、事不关己高高挂起、推卸责任、个人能力差拖别人后腿…这些都可能导致我们被团队除名,后果很严重。
最后,就是有关成员之间的“反馈”。我们既然是合作开发项目,每个人的水平和看问题的角度都不禁相同,因此我们肯定或多或少的会产生分歧。最开始我们都希望能够通过商谈解决问题,但是有可能大家情绪都比较激动,最后就一发不可收拾了。书中像我们介绍了三个层次的反馈:最外层,行为和后果;中间层,习惯和动机;最内层,本质和固有属性。我们在提出意见时尽量不要伤人,先做好铺垫,强调对方的优点,然后应该不带有任何情绪的提出问题和改进的方法,最后呼应开头鼓励对方把工作做好。以前我们在争论中经常会用到“你赶快写啊怎么这么费劲”“还能不能好好干活了”“那你说咋办吧”“我不会我不管了”这种含有情绪的话,这样我们不但会影响团队的效率还会给自己给同伴带来满满的负能量。
学习《构建之法》之后,加之我们实际进行的结对编程开发,我逐渐领会在程序员的世界里合作的“游戏规则”,相信我们以后都能带这这些好习惯很快的融入公司!!
标签:
原文地址:http://www.cnblogs.com/2016helen/p/5343835.html