提高效率|提高效率 Or 增加成本,开发人员应如何理解结对编程()
作者:Michael Yang,云智慧架构师
什么是结对编程
结对编程(Pair programming)来自于极限编程 XP(eXtreme Programming),是它的最佳实践之一。顾名思义,结对编程就是两个程序员坐在一起,用一台开发机进行结对开发。
需注意,在国内“老带新”,“师傅带徒弟”的结对方式并非严格意义上的结对编程。由于“老带新”的结对方式资深程序员有更多的话语权,故而失去了结对本身的意义,因此这种结对形式只能算是新人培养的一种形式。
文章图片
结对编程的实践形式
在采用结对编程实践时,不同的团队有不同的方式:
- 分工明确型:
- 一个人负责编写代码,另外一个人审查代码,负责代码的正确性和可读性;
- 一个人负责详细设计,一个人负责代码实现;
- 一个人写功能代码,一个人写测试用例。
- 共同合作型: 两个人共同讨论关于所开发功能的架构设计、编码实现、测试方法等,然后轮流做输入和观察的工作。此模式很好地做到了信息共享,得到互补的效果。
文章图片
结对编程如何提高工作效率 结对编程是通过两个开发人员在同一个项目或者任务上并肩协作,轮流编写代码并检查合作伙伴的输出来提高工作效率,下面将详细讲解结对编程提高工作效率的具体方式。
- 打破知识壁垒,互相学习编程技巧,并降低产品需求设计缺陷;
- 互相配合,增强代码和产品交付质量,有效减少 BUG,从而减少测试人员工作量;
- 互相督促,减少“摸鱼”时间,有效提高工作时间;
- 互为 Backup,在能保证项目顺利进行的同时,可更好地处理人员流动。
- 从项目角度,提高了产品质量
结对编程的形式也保证了产品的一个功能,代码实现结构至少可以被两个人知道,两个人可互相形成 Backup,而不会出现像常规编程一个人请假或者离职,后续项目无法推进的情况。此外,有些团队通过定期更换结对编程人员组合,以此保证团队中的每个成员都能熟悉项目的各个功能模块,从而形成项目集体所有的氛围,以及避免了“一人责任制,自扫门前雪”的现象。
更重要的是,在业务需求开发过程中,难免会出现缺陷。在排查问题过程中,结对编程的开发人员无需自己主观排查判断,而是可以通过与自己协同伙伴商议的形式攻克缺陷,这样的效果在最终也往往会是翻倍输出。
- 从团队角度,更好的促进了团队协作氛围以及知识传递分享
根据“乔哈里视窗(沟通视窗)”的理论,在实际工作和人际交往中,共同的开放区越多,沟通起来也就越便利,越不易产生误会。当我们向别人扩大我们的公开象限时,就会更多的和对方建立良好的关系,结对编程便是很好的一种沟通形式。
沟通视窗四象限:
- 公开象限:自己知道,别人也知道;
- 隐私象限:自己知道,别人不知道;
- 盲点象限:自己不知道,别人知道;
- 潜能象限:自己不知道,别人也不知道。
文章图片
- 从个人角度,提高了个人能力与工作效率
工作效率上,结对编程让大家更专注在工作上,工作外的一些个人活动将不会进行。每个人都有自己要负责的任务,某种程度上,结对编程让两个人内部形成了一个互相监督,共同进步的小团队,为了团队任务的完成,两个人都会专注在自己的任务上,从而大幅提高工作输出的效率。
总结 结对编程其实是在结对磨合中慢慢形成的一种团队共同价值观和文化。这个过程是漫长且潜移默化的,在结对编程中必然经历分歧和统一的过程,而很多团队在分歧中就直接停止了实践,也就无法看到结对带来的好处。因此,在开始结对编程之前,管理人员应全面地考虑你的团队是否真的适合结对编程。
开源福利 云智慧已开源数据可视化编排平台 FlyFish 。通过配置数据模型为用户提供上百种可视化图形组件,零编码即可实现符合自己业务需求的炫酷可视化大屏。 同时,飞鱼也提供了灵活的拓展能力,支持组件开发、自定义函数与全局事件等配置, 面向复杂需求场景能够保证高效开发与交付。
点击下方地址链接,欢迎大家给 FlyFish 点赞送 Star。参与组件开发,更有万元现金等你来拿。
GitHub 地址: https://github.com/CloudWise-...
Gitee 地址:https://gitee.com/CloudWise/f...
万元现金活动: http://bbs.aiops.cloudwise.co...
微信扫描识别下方二维码,备注【飞鱼】加入AIOps社区飞鱼开发者交流群,与 FlyFish 项目 PMC 面对面交流~
文章图片
推荐阅读
- 企业云原生IT成本治理案例解析 - 中华财险云原生上云IT成本治理之路
- 投稿|隔离缩短,航班增加,留学生的回国路更平坦了吗
- Dockerpyresttest的dockerfile调整,增加时区
- 投稿|年中研判:下半年游戏仍有5大低成本流量
- VUE|vue 实现点击“增加“”按钮,添加一个HTML元素
- C#使用Effects给图片增加阴影效果
- 1265_FreeRTOS中向任务就绪链表增加任务的实现分析
- 万字讲解数仓治理及成本管理
- Harborv2.5更新,都增加了哪些功能()
- 视觉检测图像分割干货|Yolov5 网络改进之增加SE、CBAM、CA、ECA等注意力机制