相关文章推荐
微醺的红茶  ·  java ...·  4 月前    · 
爱笑的马铃薯  ·  【转载】 ...·  11 月前    · 
强健的太阳  ·  尤里乌斯·凯撒·齐贝林_百度百科·  11 月前    · 
被表白的围巾  ·  什么枕头?林志颖都爱不释手,我也要睡!_手机新浪网·  1 年前    · 
另类的开水瓶  ·  【文章】采用比亚迪驱动电机,野马斯派卡EV再 ...·  1 年前    · 
小百科  ›  结对编程两年,我汲取了这些-腾讯云开发者社区-腾讯云
极限编程 程序员 结对编程
内向的冲锋衣
1 年前
作者头像
你呀不牛
0 篇文章

结对编程两年,我学到了这些

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 我要变牛 > 结对编程两年,我学到了这些

结对编程两年,我学到了这些

作者头像
你呀不牛
发布 于 2021-05-28 11:13:22
717 0
发布 于 2021-05-28 11:13:22
举报

自从研究生毕业一直在一个施行敏捷开发的团队工作,两年多来一个比较好的开发模式就是结对编程,但是最近一段时间由于项目进度和团队人员变更问题导致没有把这个敏捷实践贯彻下来,希望下半年能把以前总结出来较好的方式继续下去,并以此文简单总结下结对编程的优势。

目前已经有很多互联网公司采用结对的方式编码,网上也有很多资料介绍结对编程的方式,坦白说来,两个人的头脑结合在一起反应更快,也能有更好的成果,比如更高质量的代码,更少的bug。此外,团队精神通过合作得到加强,程序员也改善了时间管理。

1、结对编程实践

结对编程在项目开始时会增加开发成本。结对编程可以显著降低后续成本,因为它减少很多bug的产生。特别是对于复杂的代码,四个人的眼睛明显好于两个人,高质量代码可以更快地投入到运营,以及减少测试反馈周期。如果程序员已经学习过类似的新技术,也可以给其他程序员分享知识,并将建设性的建议纳入常见的任务中。

1.1 同时开发

优秀的开发人员会在开发过程中不断交流关于代码设计和新想法,共同致力于下一步的开发。结对编程开发人员使用两个键盘,两个鼠标,共用一个屏幕和一台电脑。开发者控制并编写代码,扮演飞行员的角色,另一位担任导航员的角色,专注于确保代码是正确的,并考虑改进应用程序的设计,遵循最佳实践。

其实也没有固定的角色分配,以半小时的节奏,角色互相交换。让两位程序员都保持动力和细心。同样,Partner也会随时变化。这将确保大家更饱满的动力。

1.2 根据任务将开发者分组

根据任务决定团队分组是有意义的。谈到知识和技能转化,初级和高级程序员应该共同努力,以获得最佳的学习体验。但是,如果要求代码质量,避免错误或者开发困难的任务,应该是两位高级程序员一起工作,这保证了高效率和低错误率。

如果不是把知识传递到初级阶段程序员,结对者可能无所是从,只能被动接受,从而抑制行动力。

合伙伙伴也要经常动动,主动提出疑问,互相适应。

1.3 小组会议鼓励团队精神和创造力

每天约三到五分钟的短会,所有的开发同事聚集在一起,交流想法,这样可以更好地激励团队。

一起来讨论当前项目的细节。有时候甚至整个团队的整行代码都会被分组讨论,每个员工都有机会进行互相个人接触,这对于团队合作有积极的促进。

1.4 与产品经理(BA)密切联系

在软件开发的早期阶段产品经理也需要参与其中,这让程序员对需求有更好的理解。比如,如果要开发数据分析应用以更好地了解客户的行为,那么程序员被证明可以直接开发更智能的应用程序。开发者的优点是可以不断地给出反馈意见,并就应用的工作方式提出新的想法。

1.5 测试,测试再测试

针对结对编程中的bug,开发者应该通过测试驱动开发(TDD)确保所开发的软件确实符合要求。这个过程是基于一个非常短的开发周期不断重复:开发人员首先模拟测试错误的代码,然后再开发一个足以通过测试的代码。最后,修改代码以符合标准。

2、结对编程时应避免使用的注意事项

结对开发绝不是开发中的万能钥匙,如果运用不得当反而适得其反,团队成员对结对编程要有共同的价值观。

2.1 在编程工作中分心

如果两个程序员一起工作,每个人都必须自律并遵守团队纪律。从邮件,社交网络或电商购物等处分心,不仅阻碍程序员自己的进步,而且阻碍其合作伙伴的进步。因此,休息和工作应该严格区分,并有明确的时间段。

2.2 担心可能的错误

结对编程结合了两个人的知识来解决问题。如果开发者有一个人首先提出问题的解决方案,合作伙伴就很难开创新的局面。

所以,软件必须定期测试,对新开发的代码微调,直到一切正常。合作伙伴对其它解决方案持开放态度并且不拒绝替代想法,是必要的,也是格局之所在。

工作的建设性须始终处于关注的中心,在保护自己的观点和在错误的时间保持沉默,广泛讨论的结果可能适得其反。

2.4 规律休息

结对编程既耗费精力和精力,开发人员每天工作八小时,工作非常集中,他们的行为直接影响到合作伙伴。因此应该定期休息一下,放松眼睛,也放松大脑。最好连续工作一两个小时后停下手头工作活动下,留着最有精力的时间段解决最困难的工作。

2.5 无声的工作

结对编程其中一个好处就是在团队之间共享知识。在开发过程中不断沟通谈话,一起互相学习和反馈,提供建议与解决方案。驾驶员和导航员相互适应,了解对方的思路。如果存在歧义或差异,则应该进行适当的调查,并一起讨论纠正偏离的方法。

2.6 开放心态

结对开发中经常会遇到两个人观点不一致的情况,尤其是两个高级程序员结对时,这时每个人都表达完自己的看法后要放下争执的念头选择最优的方案,如果谁都说服不了彼此,此时就需要引入权威的第三方决策者或者召集其他开发一起讨论,此时若大多数人反对自己的观点,请记住,大家反对是这个解决方法绝对不是反对你这个人。

3、 小结

目前,越来越多的公司寻求最佳的敏捷软件开发机会,结对编程这一方法正在迅速扩散。同时还有其它的工作模式也同样有帮助。需要我们对编程有很好的经验,开发者更加高效,专注,积极主动,软件的质量更高,产品也更加创新。当然,所有的方法论都是指导工作而不是放之四海皆准的银弹,实际开发中不能拘泥于形式,结对开发绝不是所有工作把两个人绑在一起来完成。

本文参与 腾讯云自媒体分享计划 ,分享自微信公众号。
原始发表:2019-06-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除
腾讯云测试服务
编程算法

本文分享自 你呀不牛 微信公众号, 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

腾讯云测试服务
编程算法
评论
登录 后参与评论
0 条评论
热度
最新
登录 后参与评论
关于作者
你呀不牛
0
文章
0
累计阅读量
0
获赞
前往专栏
目录
  • 1、结对编程实践
    • 1.1 同时开发
      • 1.2 根据任务将开发者分组
        • 1.3 小组会议鼓励团队精神和创造力
          • 1.4 与产品经理(BA)密切联系
            • 1.5 测试,测试再测试
            • 2、结对编程时应避免使用的注意事项
              • 2.1 在编程工作中分心
                • 2.2 担心可能的错误
                  • 2.4 规律休息
                    • 2.5 无声的工作
                      • 2.6 开放心态
                      • 3、 小结
领券
  • 社区

    • 专栏文章
    • 阅读清单
    • 互动问答
    • 技术沙龙
    • 技术视频
    • 团队主页
    • 腾讯云TI平台
  • 活动

    • 自媒体分享计划
    • 邀请作者入驻
    • 自荐上首页
    • 技术竞赛
  • 资源

    • 技术周刊
    • 社区标签
    • 开发者手册
    • 开发者实验室
  • 关于

    • 社区规范
    • 免责声明
    • 联系我们
    • 友情链接

腾讯云开发者

扫码关注腾讯云开发者

扫码关注腾讯云开发者

领取腾讯云代金券

热门产品

  • 域名注册
  • 云服务器
  • 区块链服务
  • 消息队列
  • 网络加速
  • 云数据库
  • 域名解析
  • 云存储
  • 视频直播

热门推荐

  • 人脸识别
  • 腾讯会议
  • 企业云
  • CDN加速
  • 视频通话
  • 图像分析
  • MySQL 数据库
  • SSL 证书
  • 语音识别

更多推荐

  • 数据安全
  • 负载均衡
  • 短信
  • 文字识别
  • 云点播
  • 商标注册
  • 小程序开发
  • 网站监控
  • 数据迁移

Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有

深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569

腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287

问题归档 专栏文章 快讯文章归档 关键词归档 开发者手册归档 开发者手册 Section 归档

Copyright © 2013 - 2023 Tencent Cloud.

All Rights Reserved. 腾讯云 版权所有

登录 后参与评论
 
推荐文章
微醺的红茶  ·  java 进程怎么关闭_mob649e8166c3a5的技术博客_51CTO博客
4 月前
爱笑的马铃薯  ·  【转载】 深究强化学习在谷歌芯片布局上的应用 - Angry_Panda - 博客园
11 月前
强健的太阳  ·  尤里乌斯·凯撒·齐贝林_百度百科
11 月前
被表白的围巾  ·  什么枕头?林志颖都爱不释手,我也要睡!_手机新浪网
1 年前
另类的开水瓶  ·  【文章】采用比亚迪驱动电机,野马斯派卡EV再度现身新车申报目录_车家号_汽车之家
1 年前
Link管理   ·   Sov5搜索   ·   小百科
小百科 - 百科知识指南