zoukankan      html  css  js  c++  java
  • 结对学习 和队友的配合

    20175310 20175317

    如何与队友合作

    通过阅读邹欣老师的两篇博客现代软件工程讲义 3 结对编程和两人合作软件工程讲义 3 两人合作(2) 要会做汉堡包,我和我的队友对于结对编程有了更深的理解。

    首先,什么是结对编程?

    结对编程就是一对程序员肩并肩地、平等地、互补地进行开发工作。结对不仅应用在编程上,在现实生活中,也存在着类似的搭档关系:越野赛车(驾驶,领航员)、驾驶飞机(驾驶,副驾驶)、战斗机的编组(长机,僚机)等等。而这些任务都有共同点:在高速度中完成任务,任务有较高的技术要求,任务失败的代价很高。因此,在编程过程中结对是完成高难度项目的必要条件。

    其次,为什么要结对编程?

    在邹欣老师博客中有一块“同学们杂曰”的内容:
    1)编程从来就是一个人的活动。学校里这么教的,我们一直以来也是这么做的。两个人本来可以去做两个模块,现在一个模块两个人写是不是一种浪费(这可是两份工资哦)?

    2)我习惯一个人写程序,不喜欢被人盯着工作,这样我不自在,无法工作。

    3)身旁的这个家伙老是问问题,他/她不会看书么?我都无法专心工作了。

    4)会不会出现,“我只领航,不用敲键盘,多爽……”的情况?

    5)有些公司规定所有的任务都要结对编程, 结果大家都走形式, 滥竽充数的人也在结对编程的过程中得过且过

    这些也就是大家对于为什么要结对编程的一些疑惑,我和我的队友对于这些问题有一些自己的感想和大家分享:

    针对这些问题,我们认为之前的编程都是一个人进行有很大一部分原因是因为项目较小,一个人就可以完成。但是越往后进行大型项目就会越多,靠自己单枪匹马是无法完成的,就好比前端和后端,如果一个人进行编写会耗费大量时间,而且效率低下,但如果两个人进行不但会提高效率,加快项目完成的速度,在进行的过程中双方还能取长补短,学到很多新的知识。

    两个人一起学习,一起写代码会起到相互督促的作用,一个人学习工作时经常会松懈,时不时打打游戏、逛逛淘宝,但是两个人一起学习就不会有这种情况,因为这是两个人的项目,如果自己松懈了就是给队友拖了后腿,这就会鞭策着自己专心学习,专心工作。

    同伴问问题时,首先应当换位思考,我们在学习的过程中谁也不可能做到自己能理解所有的新知识,解决所有的新问题,有问题是正常的,所以我们要做到理解对方。其次,在解答问题时,这个问题如果是自己会的,解答完后会加深我们的印象,如果自己也不会,那就相当于帮助我们发现了自己的学习漏洞。因此帮助对方解答问题,于人于己都是一件好事。

    “我只领航,不用敲键盘”的想法,只会出现在懒人的脑海中,这样的合作是不会取得成功的,这不仅会增加同伴的负担,还会耽误自己的学习。正确的合作是两人合理的分工,一起敲代码,高质量地快速完成工作。
    滥竽充数的人在结对的过程中可能会过的很“舒服”,但是知识是自己的,不参与编程或者在其中偷懒的人最终会因为他们偷的懒受到惩罚。而且同样懒得行为必定会影响小组的进程,使得合作的过程充满不愉快。

    此外,邹欣老师也提到过:每人在各自独立设计、实现软件的过程中不免要犯这样那样的错误。在结对编程中,因为有随时的复审和交流,程序各方面的质量取决于一对程序员中各方面水平较高的那一位。这样,程序中的错误就会少得多,程序的初始质量会高很多,这样会省下很多以后修改、测试的时间。

    最后也是最重要的问题:如何结对编程?

    我觉得要做到以下几点:
    (1)分工明确,各司其职:驾驶员负责设计思路、编写程序等工作,领航员负责审阅代码、调试程序、测试程序功能等工作。

    (2)经常交换身份:对于不同的项目来说,驾驶员和领航员的工作任务和难易程度都是不同的,如果不及时交换工作,可能会导致一方工作压力和心理压力过大。此外,及时的交换身份会让双方深入地理解程序,也能更好地修改完善程序。例如,驾驶员编写的程序没有达到预期的效果,而领航员并没有清楚地表达程序存在的问题,同时领航员在没有仔细阅读代码的情况下,他也不会清楚具体的问题出在哪,因此经常交换驾驶员和领航员的工作十分有必要。

    (3)主动参与,相互包容:两个人一起工作,难免会出现一方懈怠的情况,这时候应该及时调整状态,这是两个人的工作,是集体的荣誉,而不是一个人的成果。

    (4)取长补短,共同进步:每个人都有自己擅长的方面,当然也会有自己的短板。不能因为队友在某方面做的不好就加以责备。相反,我们需要的是相互学习,相互包容,向队友学习长处,来弥补自己的知识盲点,渐渐地,大家的短板也就都没有了。

    以上就是我和我的队友奚晨妍对于结对学习的观点。

  • 相关阅读:
    js与jquery实时监听输入框值的oninput与onpropertychange方法
    jQuery实现的浮动层div浏览器居中显示效果
    jquery代码规范让代码越来越好看
    asp.net截屏功能实现截取web页面
    拦截asp.net输出流并进行处理的方法
    asp.net调用系统设置字体文本框的方法
    asp.net网站防恶意刷新的Cookies与Session解决方法
    Attribute在.net编程中的应用(一)
    java学习——构造类之3!+5!=126
    java学习——构造类
  • 原文地址:https://www.cnblogs.com/20175317zrw/p/10588306.html
Copyright © 2011-2022 走看看