如何通过结对编程进行高质量的软件开发

2019 年 8 月 17 日

如何通过结对编程进行高质量的软件开发

ArchSummit深圳2019大会上,孟雷讲师做了《如何通过结对编程进行高质量的软件开发》主题演讲,主要内容如下。


演讲简介


移动互联网时代,越来越多的公司选择采用更加灵活更加高效的敏捷开发模式。敏捷开发在带来了高速的产品交付的同时也引入了非常棘手的质量问题,移动互联网产品更是如此,一边要满足日新月异的需求变化,一边又要针对种类繁多的移动平台进行全面高效的测试。于此同时,作为创业公司,缺兵少将,招人困难,缺乏测试领域的专家也是非常常见的现象。如此一来加班加点便成为了很多人的家常便饭,无数开发和测试人员也都在速度和质量中挣扎。


因此,一个既能快速满足需求变化,又能维持产品的高质量,还能持续地进行上线交付的方法便成为每个公司都迫切追求的目标。


常见痛点


  1. 很多情况下的敏捷,只是理论和流程上面的敏捷,真正的软件开发理念以及效率,并未能够从这种貌似敏捷的流程当中受益,反而有时候会适得其反。

  2. 在强调交付速度的过程中,开发非常容易急功近利,为完成手头的工作而在架构方面做很多的妥协和折中,从而为日后的维护升级埋下很多隐患,同时也给测试带来了很多不便。

  3. 软件的模块化,通用化以及代码风格在人员经常流动的情况下难以得到统一,同时大量的开发文档缺失。

  4. 研发过程当中的团队分工角色较多,因此从上游到下游的过程中,会有很多沟通方面的损耗,团队管理消耗更多。


本次演讲将结合触宝的主力产品触宝电话的敏捷开发实践,谈一谈移动互联网公司如何能够利用结对编程的方式进行高质量的软件研发。在采取了本方案之后,半年以内,触宝电话在海量用户的前提下能够高质量地从一月一版本的发布周期逐渐提高到一周一发布的快速迭代。同时,线上 P1 级 bug 数量减少至原来的 5%,代码架构更加合理,模块化程度较高,团队也更加精简高效。培养了一批精通移动互联网前后端,客户端开发的高素质研发团队。


演讲提纲


  1. 软件研发模式的几个主要阶段;

  2. 开发和测试的困境,常见痛点;

  3. 多角色情况下的团队沟通问题,以及团队培养的问题;

  4. 关于结对编程,与传统软件开发流程的主要区别;

  5. 结对编程最佳实施方法,如何利用结对编程来解决代码架构,代码风格,以及测试开发文档方面的问题;

  6. 在结对编程模式下的全新团队结构与团队人才培养;

  7. 适用场景,成功案例,具体数据分析。


听众受益点


  1. 能够深入理解敏捷开发的实质;

  2. 高素质全栈工程师培养心得,团队管理方法和技巧;

  3. 面向全栈的代码开发流程及架构优化方法;

  4. 如何在海量用户的基础上进行高质量的快速迭代。


讲师介绍


孟雷


触宝 研发总监


触宝个性化工具与内容事业部研发总监,曾先后就职于微软中国,EMC 中国,担任软件研发相关工作,专注于敏捷开发及分布式自动化测试的实践与团队管理。曾独立负责微软 SCCM 软件分发体系的测试,主导微软内部云测试和云部署服务 NOVA。在 EMC 任职期间成功推进 Pivotal 内部的敏捷开发转型,从头开始参与了 Pivotal Hadoop 的最初三个版本,并主导研发了适用于 Hadoop 系统测试的分布式测试框架 laphone。对于传统企业级软件如何进行敏捷研发的转型有丰富的经验。


任职触宝期间,推动和建立触宝电话完整的研发测试流程,加速产品迭代,在高质量的前提下,达到一周一发布的快速迭代周期。并培养了一大批精通移动互联网前后端,客户端开发的高素质研发团队人员。












完整演讲 PPT 下载链接


https://archsummit.infoq.cn/2019/shenzhen/schedule


2019 年 8 月 17 日 00:002668

评论

发布
暂无评论
  • 移除“测试”任务栏,加快交付速度

    任务栏里的“测试中”一列通常会导致团队有更多在“进行中”的工作,而实际完成的工作会更少。

  • 测试人员在敏捷过程中的挑战

    Vu Lam是一位资深的敏捷测试专家,他最近撰文分析了测试人员在敏捷过程中的挑战,指出现在许多敏捷实践忽视了测试人员的处境和压力,并提出了自己的一些解决办法。

  • 大厂都在用哪些敏捷方法?(上)

    大厂做项目采用常见的“分而治之”的策略:大项目拆成小项目,大服务拆成小服务,大团队拆成小团队。

    2019 年 3 月 7 日

  • 分布式开发

    ThoughtWorks的交付项目更多的是一种知识流程外包的高端服务。交付项目的成功不仅是交付卓越的软件,还需要在交付卓越的软件的过程中, 深刻理解客户的市场需要和业务模式,并通过自己的努力去影响客户,最终和客户以一个团队的模式一同交付高质量的软件。 而怎样去影响客户的行为,进而鼓励他们去尝试更多最佳实践呢?是否只能通过咨询项目达到这个目的呢?一般来说,咨询是需要长期在客户现场进行持续的影响,才能产生效果。但交付项目如同很多外包项目一样,通常是离岸的。那么隔着十万八千里的距离,再加上几个小时的时差,如何才能真的像一个团队一样紧密合作,并且持续的影响客户尝试更多最佳实践,一步步实现交付卓越软件这一目标呢? 沟通,就是基于知识流程外包的分布式开发中,最大的挑战。

  • 敏捷测试的团队构成

    各自分离的功能小组会让敏捷团队更困难。持续的交流至关重要。团队成员需要互相亲密地工作,不管工作是通过虚拟环境还是在同一个地点完成。敏捷测试专家Lisa和Janet分享了敏捷测试团队的组织经验。

  • 众包测试正在改变游戏规则

    众包是这样一个过程:征求大批社区中的群众去完成一个任务,传统上这种任务由组织从内部选择一拨人来完成,多数是雇员或合同工。众包测试利用众包的有效性和效率,把网络和云经济结合起来,是一种强大的组合。这可以成为游戏规则的变革者吗?

  • 通过 JUnit 学习模板方法模式和策略模式

    完段码然通Jnt行试架行测试时,我只要承etae,果要话下eU和eron函数,并写好tetx(,行际测。ae就可以自主出测试结果。

    2020 年 6 月 24 日

  • 安全增强:拿来即用的 SSL- 轻松融入案例

    2019 年 12 月 4 日

  • 精通敏捷测试

    采用敏捷开发实践可以加速软件交付已经成为共识。但是,如果没有将质量保证实践直接纳入到开发过程,就不可避免地会出现产品质量问题。为了始终可以获得高质量的产品,工作实践和团队角色都需要作出改变,从而做到品质优先,而不是在最后进行测试。

  • 盛付通质量控制中心总监俞炜:新的测试思想与传统的测试模式

    在11月1日QCon上海的“大测大悟”专题下,盛付通质量控制中心总监俞炜将分享他在规划软件测试团队的使命、发展目标、具体实践、人员培养和绩效评估等方面的经验。为了让大家事先了解他计划分享的内容,InfoQ编辑邀请俞炜进行了一系列问答如下。

  • CI/CD 中高效测试基础架构的建设与实践

    2018 年 12 月 26 日

  • 为什么 Netflix 没有运维岗位?

    在运维这个细分领域,Netflix是最佳实践的典范。今天我们一起来看Netflix是如何定义运维以及如何开展运维工作的。

    2017 年 12 月 20 日

  • 开篇词 | 为什么你要关注研发效能?

    软件开发的灵活性决定了研发效能提升的困难性:可关注的点太多,可使用的方法也很多,简单照搬业界研发实践效果往往不好。

    2019 年 8 月 21 日

  • 组织敏捷测试

    在上两篇文章《什么是敏捷软件测试》与《自动化测试-敏捷测试的基石》中,我们阐述了敏捷测试的概念,并简单介绍了敏捷测试中的自动化测试观点。在这篇文章中,我们将围绕“测试组如何在组织中组织敏捷测试”这个话题来展开讨论。

  • 百度技术沙龙第 43 期回顾: 如何把好移动互联网产品的质量关 (含资料下载)

    在10月19日由@百度主办、@InfoQ负责策划组织和实施的第43期百度技术沙龙活动上,百度技术经理胡雷、Vida(微米印)创业公司、CSTQB专家组成员陈晔分享了各自在测试领域的经验,话题涉及“移动测试体系的搭建”和“如何高效的保证移动互联网应用的质量”。本文将对他们各自的分享做下简单的回顾,同时提供相关资料的下载。

  • 高效开发测试打造产品化私有云 | 视频

    本演讲从开发流程、团队构建、效能监控以及运维协作等角度,介绍了ZStack团队如何高效打造一个产品化的私有云。

  • 敏捷开发领跑传统测试

    这篇报道探讨了为什么敏捷开发跑到了传统测试的前面,原因是什么,以及最近有什么新的敏捷测试趋势。

  • 敏捷实践的秘密──ThoughtWorks 文集 II

    本书的主旨跟09年敏捷中国大会一样,紧扣"实效"二字。在敏捷已经得到越来越多的推广实施之后,我们更希望人们能够清楚的认识到目的和手段的区别,关注于如何使用实践、创造实践来不断解决问题,不断改进。希望这本书能够对您有所帮助。

  • 测试专栏特别放送 | 答疑解惑第二期

    今天我要分析的五个问题来自于第6~11篇这6篇文章,其中第9和第10篇文章中的两个问题被我合并为了一个问题,并且我会针对这个问题,再次为你简单梳理一条学习路径。

    2018 年 10 月 19 日

发现更多内容

敏捷开发:影响地图工作坊的反思

华为云开发者社区

敏捷开发 业务线 需求管理 需求 华为云

架构师训练营第八周作业

sunnywhy

极客大学架构师训练营

抢占5G大市场 众盟科技助力企业跑赢短视频营销新赛道

人称T客

域名凭什么能卖出亿元高价?

北柯

创业 互联网 域名解析

AI大有可为:NAIE平台助力垃圾分类

华为云开发者社区

AI 模型训练 垃圾回收机制 数据集 华为云

区块链+国防安全,科技是核心战斗力

CECBC区块链专委会

单向链表合并节点

chenzt

华青融天战略拓展总监王旭详解IT运维的九阳神功

DT极客

【API进阶之路】高考要考口语?我用多模态评测API做了一场10w+刷屏活动

华为云开发者社区

人工智能 学习 评测 API 华为云

实现DevOps的三步工作法

看山

DevOps 凤凰项目

作业二

Kiroro

扎克伯格:从程序员到福布斯全球首富,他经历了什么?

北柯

如何在微服务团队中高效使用 Git 管理代码?

看山

git 微服务 高效

架构师第8周练习

小蚂蚁

云图说 | 快速创建一个kubernetes集群

华为云开发者社区

Kubernetes 虚拟机 集群容错 华为云 容器化

架构师训练营 - 学习总结 第 8 周

铁血杰克

架构训练营第八周感悟

张锐

第八周·命题作业

刘璐

Spring系列:请问各位大佬为何要学spring?

简爱W

面试官问:如何设计一个安全的对外接口?

Java小咖秀

Java 面试 经验

第八周作业

方堃

week8

不在调上

作业

不在调上

CompletableFuture运行流程源码详解

编号94530

Java 并发编程 多线程 CompletableFuture

作业一

Kiroro

总结

chenzt

最新硬件虚拟化检测技术,让攻击者逃不出“楚门的世界”

百度安全

云计算 安全 虚拟化

第八周·总结·数据结构预算法

刘璐

架构师训练营第8周

大丁💸💵💴💶🚀🐟

产品、方案、生态三力齐发 英特尔驱动智能边缘价值迸发

飞天鱼2017

英特尔®边缘软件中心重磅发布 一站式资源供给为应用开发创新赋能

飞天鱼2017

如何通过结对编程进行高质量的软件开发-InfoQ