我用这一招让团队的开发效率提升了 100%!

liam
• 阅读 452

我在一家做微信营销的公司干技术 leader,带 40 多个人,公司名就不说了。在这个位置上做了好几年,把团队从小带大,公司虽然不算风口浪尖上的高增长业务,但技术这块儿也从来没出过什么问题,我还是蛮自豪的。

带团队时间久了,就能发现整个 Team 都渐渐疲了。前两年老板还专门买了个系统搞 OKR,现在也不大提了;Scrum 我们也搞了,用起来也就那样;项目管理工具试了好几个,禅道、Worktile、现在用 Coding,反正有一个能用的就行;微服务化改造从去年开始在吭哧吭哧搞,我们自己搞得觉得很厉害,但业务部门那边就觉得没啥差别,搞不懂你们研发部门每天在弄些什么,赶紧做我们提的需求要紧。

时间一久,很多原本不是问题的问题也会浮现出来。业务越做越复杂,一层层往上叠,迭代速度就越来越慢,感觉啥都没干呢一个 Q 唰的就过去了。有核心老员工离职,很多东西只有他熟,他一两天就能做出来的东西,新补上的人一两周也弄不出来。新员工进来也很懵逼,那么多业务那么多接口,学上一年也未必学得清楚。

我也三十多了,就感觉自己懂的招儿都用得差不多了。毕竟自己早就离开一线,多年不写代码了,真的要我去给他们解决那些代码层面的问题,也有些力不从心。现在经济形势不好,业务也不是高速发展期,也没法挖一个大牛带进来一些先进生产力。而且要是真的挖了大牛进来,我自己往哪儿放呢。 测试团队的突破

突破最开始来自测试团队,这是我万万没想到的。

测试组的组长是个 93 年的小姑娘,人很踏实能干,最开始团队还很小的时候她就在,后面研发团队扩大,就让她带测试组了。这么多年下来,公司业务那么多细节可能没人比她更懂。不过她在来我们公司之前只有一份小公司的工作经验,没见过什么大厂的世面。

去年搞微服务化的时候,当时几个组长讨论,就说可能对测试的要求会更高,得把自动化测试搞起来。后面测试组长就开始自己吭哧吭哧啃 Selenium,自己一个人折腾了好久,终于把 Selenium 架起来了。

测试这块我不懂,帮不上什么忙,看她一个人弄也有点心疼。终于把框架搭好了,实际用起来的时候我就有点心凉。

干啥都要写代码,她自己学得还行,别的测试根本帮不上忙。这些国外的工具连中文资料都很少,没有技术支持简直都不算问题了。可是连个自动生成的测试报告都没有,这真的不能忍。

测试团队试了一两个迭代,渐渐地就不提了,我也觉得没必要。毕竟引入一个新工具,大家为的都是提效。弄一个只有高级人才才玩得转的工具进来,真的能者多劳了,劳久了对谁都没好处。

有一天,测试组长发我一个文件。我打开一看,是个测试报告,长这样儿。

测试报告

一看到这个测试报告我眼就亮了。所有接口运行状况一目了然,有问题的接口具体是什么问题都清清楚楚。我就回她消息:“真不错👍最近又在用心研究自动化测试工具了?这个测试报告挺好的,花了很多心思吧。”

她很快就回了:“没有😂昨天才发现的这个工具,还挺好用。好像还能做性能测试,我还在研究。”

我兴趣就起来了。没过多久,她又发了一个报告过来。我一看,好家伙,100 个线程同时跑!

性能测试

我问她:“这个怎么跑的多线程?是那种要租客户端的吗?怎么收费啊?”

她回:“免费的😂”

我就叫上后端组长前端组长,跟测试组长一块儿去会议室讨论了一下她用的这个叫 Apifox 的工具。后端组长说:“哦我知道这个玩意儿,不是跟 Postman 差不多吗,怎么还能做自动化测试?”

测试组长说,她就是把我们做的接口文档导进去 Apifox 了,也就花了二十分钟配置,自动化接口测试就跑起来了。

后端组长问:“那这玩意儿能不能做接口监控呢?定时跑一下?”测试组长说:“好像也可以。这边帮助文档里写可以做持续集成。”

后端组长跟测试组长一块儿又花了二十分钟研究,然后就把我们的 Jenkins 和 Apifox 上写好的自动化测试用例打通了,自动化测试每小时跑一次,自动就会生成一个测试报告。

我就很感慨。去年搞微服务的时候也学了不少大公司的微服务架构,看他们搞高大上的微服务治理,每个服务的业务量和响应速度监控,真是让人眼馋。没想到我们一家小公司,接口监控、性能测试,一个小时就搞出来了?

这个 Apifox,有点东西。 这真的是联调吗

我对自己的评价,还是一个有追求的技术人。前几年我就要求开发团队必须把接口文档写好,毕竟公司业务很复杂,开发的人不写清楚,后面的新人更加搞不清楚。

我们的工作流,产品需求出来之后,前后端会先开个会,讨论清楚有哪些接口和输入输出,然后同步进开发。后端写接口的时候,Swagger 自动就把接口文档生成了,就还挺方便的。

自动化测试这个事情之后,后端组长就对这个 Apifox 很有好感。他研究了一下发现 Apifox 可以定时导入 Swagger,不但测试可以直接用来测接口,后端也可以把 Apifox 当 Postman 用,省得自己拼参数写请求了,直接填参数值就能自测,就让后端开发都用起来了。

我们三周一个迭代,一般都会留一周做测试,第二周的周三就得进联调,周五下班提测。前几年还可以,可最近一年问题越来越多。联调往往三四天还弄不完,迟迟没办法提测,就只能往后拖,周末加班还不一定搞完。进到测试环节,还会不断有低级 bug 出来,修 bug 时间也越来越长,每个迭代都要延期。

问题大家也都清楚。无非就是我前面说的几个情况,架构越来越复杂,牵一发动全身,很多新人又不了解业务,做事慢不说,还总是会踩坑。很多问题自己写代码的时候发现不了,等到联调的时候就全暴露出来了。后端组长也跟开发们反复强调要自测,可业务压力又大,写代码都写不完,哪有工夫自测得那么仔细呢。

我记得很清楚,那天是个周五,早上晨会的时候,我心想不知道今天能不能提测啊,这个需求老板盯得挺紧,可别延期了。结果测试组那边说,昨天就已经提测了!已经测了一下午了!

什么情况!?联调可以这么快的吗?

到周一开周会的时候,测试组长说,测得比较顺利,估计明天能测完。

我就憋不住了,问前端和后端组长,是这个迭代的需求特别简单吗?

后端组长说,也不是需求简单,就……这次的接口质量特别好,一调就过了,我们也很纳闷。

前端组长也说,以往前端写的请求接口跟后端经常对不上,就要花很多时间调,这次也不知道怎么回事,基本上都是一两遍就过了。

后端骨干说,我觉得……可能是因为我们用了那个 Apifox……

我:???

不就一个调接口的工具吗,还能让人写的代码质量提升了?作为一个十几年的技术人,我觉得这根本没啥关联啊。

我就让他们给我演示一下到底这个 Apifox 是怎么用的。我们讨论了整整两个小时,我总算是搞明白了。

这里面有几个关键点。

第一,后端虽然定义好了接口的输入输出,也有文档,但是写出来的代码未必符合文档里的定义。这里少个字段,那里把 integer 输出成了 string,都是很经常发生的情况。很多问题让后端自测,他们自己根本看不出来。

而后端用了这个 Apifox 之后,有一个特别好用的功能叫数据结构校验,自动就可以判断接口出参跟文档定义是不是一致。很多问题,后端一发送请求就自己发现了,根本不会到联调的时候才暴露出来。

数据结构校验

第二,Apifox 还有一个“动态值”的功能,可以随机生成一系列不同的参数值,数据结构定义起来也很方便。后端就用这个功能,把一个接口自动跑上 10000 遍,连边界值都测出来了,啥问题都自己发现了。

动态值

第三,后端把 Apifox 也推荐给了前端,前端拿这个当 Postman 用的时候,意外发现还能做 Mock 数据。最离谱的是,Mock 规则根本不用写,根据字段名称就能智能 Mock 出很合理的数据,比之前用的 Mock.js 方便多了。

前端直接就拿 Apifox Mock 出来的数据放到界面里用,不但省了自己做数据的时间,最重要是跟接口文档是完全一致的,就算后端中途改了接口定义,虽然接口还没做出来,但 Mock 数据已经自动就变了,前端立刻就发现了,就赶紧去问后端怎么回事。

智能 Mock 数据

咱们做软件的都知道,问题越早发现,修复的成本就越低。前端和后端都能在最早的环节就发现问题,效率可不就上来了吗!

为什么联调每次都那么耗时间?最主要的原因就是因为前端要的数据跟后端给的数据对不上。而用了这个 Apifox 之后,前端跟后端的数据自然而然就对上了!还能自动检查数据格式!

半天就联调通过了,这还是联调吗!?

我就……又很感慨。很多事情是我们习以为常的,觉得联调肯定是痛苦的,就从来没想过为什么这个环节会存在问题,如何去解决这里面的问题。

这个 Apifox,真是牛逼。

我又让几个技术骨干都试一下功能,确认一下符合我们的研发流程。到第二周部门周会的时候,我就跟大家说,全部门都把 Apifox 用起来。 如何搞定合作方

又过了些日子,有一天后端组长嘿嘿笑着来找我,说发现了一个牛逼的东西。

我们的业务性质,经常需要跟银行、运营商之类的合作,就会用到他们提供的 API。银行的研发人员,技术未必好,做出来的文档也不咋地,更不会提供测试环境。每次要用真实数据的时候,我们都是战战兢兢地,就怕出了问题,那损失就大了。

后端组长说,先前说的那个 Apifox 的 Mock 功能,我最近又研究了一下,发现除了能 Mock 前端用的数据,还有另外一种用法。

我们手里不是有银行提供的 API 文档嘛,我们就把这套 API 维护到 Apifox 里面去,做成一个项目。他们有一个“云端 Mock”的功能,可以直接访问服务端接口获取 Mock 数据。我们可以把这个数据当作银行服务器的测试环境来用,每个后端都能访问,也没有次数限制,随便怎么测都行!

我点点头就让他赶紧去搞了。这个 Apifox,能玩出什么花来我都不奇怪了。

过了两天后端组长又嘿嘿笑着来了,说 Apifox 能生成 API 文档,想把我们官网上对外的接口文档换成 Apifox 生成的文档。

我们业务会对接不少公司客户,他们要把自己的业务系统跟我们的营销工具做对接,所以我们专门有一个组是对接客户的,主要就是教他们怎么调我们的接口。

这些客户的开发人员,水平更加一言难尽。毕竟大都是小公司,很多连专职的开发都没有,都是外包的。很多客户嚷嚷着我们接口有问题,远程一看,接口参数根本就没拼对。

我想着 Apifox 那个接口文档我见过,做得还可以,好处是能实时更新,不用专门维护,就同意后端组长把官网上的文档换掉了。

文档换掉之后,过了两周,周会的时候我就发现,客户支持组那边,事情好像少了很多。

我问客户支持组长,最近是新客户变少了吗?感觉你这边以往加班不少,最近都不需要加班了。

客户支持组长说,最近新客户还有变多呢。可客户的问题就变少了很多。我感觉应该是新版的 API 文档的缘故。

怎么回事?换个文档页面,还能让人智商提升了?作为一个十几年的技术人,我觉得这不科学啊!

我会后拉着客户支持组长聊了一个小时,算是搞明白了到底发生了什么。

以往,之所以客户问题多,很大原因是我们的接口比较复杂,参数很多,客户需要照着抄一遍到 Postman 里调好,再到自己代码里拼接,就很容易出问题。

而 Apifox 生成的接口文档,有一个“在线运行”的功能,点开就是一个发送接口的界面,长得跟 Postman 差不多。客户根本不用自己去拼接参数,直接在页面上就把接口给调通了。

而且,这个在线运行还能设不同的环境,后端组长直接搞了一个测试环境开放出去,客户随便调都不会出问题。

在线运行

最离谱的是,这个接口文档还能生成代码?接口调好了,直接就能一键生成请求代码和数据结构代码,客户复制一下就能直接用了。这个生成代码还支持二十多种语言,啥框架都能用。

我算是明白了,容易出问题的环节都被工具解决了,客户可不就没问题了嘛。

这个 Apifox……前途无量啊。 提升了多少效率

我算了一下。

后端,写接口文档的时间能省 80%,自测和改 bug 的时间能省 50%,质量能提升30%。用到第三方接口的话,调接口的时间能省 60%。

前端,Mock 数据花的时间能省 100%,调接口的时间能省 40%。

联调时间能省 80%。

接口测试时间能省 60%,回归测试时间能省90%。还能实现接口自动化监控和性能测试。

客户服务对接的时间能省 70%。

还是那么多人,整个迭代还是三周,但是效率高了,能做的需求比以往更多,质量也更好了,大家也不用苦逼逼地晚上周末加班了。加在一起,Apifox 对我们团队,真的能提升 100% 的效率。

尤其难得的是,我们好像也没经历什么转型的阵痛,内部团队的阻力,似乎一切顺理成章地就下来了。明明引入了一个新工具,开发效率也大幅提升了,可是工作流程还是先前的流程,都不需要做什么专门的调整。

我以前跟一位前辈聊,他说了一句让我印象深刻的话:“产品是最佳实践的载体。”以前我不懂,现在我好像懂一些了。

上个月开上半年总结会,老板狠狠夸了一顿研发团队,说最近的开发效率超出预期,系统稳定性也一直很不错。业务部门的老大也说,之前提了很久的一些需求,近期哗哗地都实现了,一线业务同事们都很满意。

还是挺爽的。

而且,公司一分钱都没花呀。

Apifox 还是个中国团队做的,真心希望他们越做越好,把整个中国的研发团队的效率都提升一大截。

中国该有个厉害的研发工具出来了。

官网地址:

点赞
收藏
评论区
推荐文章
liam liam
2年前
新来个技术总监,给团队引入了这款开发神器,同事直呼哇塞!
我在一家做微信营销的公司干技术leader,带40多个人,公司名就不说了。在这个位置上做了好几年,把团队从小带大,公司虽然不算风口浪尖上的高增长业务,但技术这块儿也从来没出过什么问题,我还是蛮自豪的。带团队时间久了,就能发现整个Team都
liam liam
2年前
有了这个云端Mock功能,你的简历起码提升30分!
前言我发现一个现象很久了:很多人都喜欢私下自己做一些项目。也就是一些个人的项目,其实我觉得这样挺好处挺多的:1、可以在空闲时间提升自己的技术2、这些个人项目可以写在简历上,为自己加分大家都有这样的疑问问:三哥啊,我觉得自己私下里写的项目真的鸡肋啊,食之无味,弃之可惜我:为啥这么说呢?问:写到简历上,怕面试官觉得low,不写到简历上,又觉得也还行,
kenx kenx
3年前
项目版本管理Git使用详细教程
前言记得刚开始做项目开发的时候都是一个人完成一个项目,单打独斗的开发,也不知道什么是团队开发,没有这个概念,随着工作后来知道公司里项目都是团队开发,这个时候这么多人怎么开发一个项目呢,难道用u盘拷贝嘛,后来知道有这个一个项目版本管理工具前期SVN比较流行后面,开始使用Git这样团队·在做项目开发基于git版本管理就会很轻松快速上手初始化本地仓库项目中
Stella981 Stella981
3年前
Hi,给他介绍一款markdown的帮助文档生成器
     当今大多数的团队都实现了前、后端分支。前端与后端的沟通都是通过接口来实现的(一般情况下都是webapi接口)。这种情况你肯定需要一个接口查询的帮助文档,这个当然用swagger都可以实现。但做为前端开发的我们是否也应该考虑把自己写的组件以帮助文档的方式公开都团队其他人员使用。就像iview,easyui等UI组件都有自己的帮助文档。今天我们都介绍
Easter79 Easter79
3年前
Taro
引言花叔带的团队一直想做一个事情,就是“做个框架或者方案,可以同时给H5/app/小程序等平台复用,开发者只需维护一套源码”,这是个跨平台的美好愿景,但团队事情多,一直没弄出来,结果前两天发现京东那边的老朋友搞了一套....所以...我能不撰文推荐一下么!!以下是转载内容,已获授权。
Stella981 Stella981
3年前
LVS中Windows作为真实主机(RealServer)时的设置方法
最近,公司新推了一个电商项目,IISASP。而上面大大规划了要用LVS负载均衡集群,在这个技术陈旧的企业,LVS项目还是去年才真正推行。由于最开始是由我测试的,所以这次的部署又落到了我头上了。之前一直是在RHEL上做的LVSKeepalived,现在换成Windows主机,虽然在集群架构上的理解没啥问题,但是这Win主机做Real
Easter79 Easter79
3年前
TiKV Committer 聂殿辉:开源不仅仅是开放源代码,更是一种态度和沟通方式
聂殿辉,TiKVCommitter,曾经是一个连续创业者,目前在掌门科技游戏部门带一个研发团队。他还喜欢买手办,拼高达模型。他很少发朋友圈,几乎不用手机,自嘲是老年人生活模式,但对于参与社区还是保持着一片热情。有梦想,爱折腾我大学毕业一两年之后怀着一腔热血开始参与创业,当时是公司第三位员工。最开始我们做的一个项目想对标国
Wesley13 Wesley13
3年前
OKR新手入门指南 (第四部分)
典型的OKR系统周期常见的OKR系统周期为:1)在年初,公司定义了一组高级战略OKR,最好是在团队的帮助下。重要的是要理解,没有团队的投入,高层管理人员就不应孤立地制定战略性OKR。KeithR.McFarland在他的文章标题:您应该像构建软件一样构建战略吗?(https://www.oschina.net/ac
Wesley13 Wesley13
3年前
2021首次分享面试阿里P6心得:1000字超全面试题答案解析
前言人人都有大厂梦,对于程序员来说,BAT为首的一线互联网公司肯定是自己的心仪对象,毕竟能到这些大厂工作,不仅薪资高待遇好,而且能力技术都能够得到提升,最关键的是还能够给自己镀上一层金,让人瞻仰。同样的,我自己的个人目标也是阿里,但之前一直在一家小公司,一呆就是好几年,现在通过不断学习和实践,提升了自己很多,也有了信心来阿里挑战。下面,就是我这
万字长文详解如何使用Swift提高代码质量 | 京东云技术团队
京喜APP最早在2019年引入了Swift,使用Swift完成了第一个订单模块的开发。之后一年多我们持续在团队/公司内部推广和普及Swift,目前Swift已经支撑了70%以上的业务。通过使用Swift提高了团队内同学的开发效率,同时也带来了质量的提升,目前来自Swift的Crash的占比不到1%。在这过程中不断的学习/实践,团队内的CodeReview,也对如何使用Swift来提高代码质量有更深的理解。