绩效从C到S,分享渣渣程序员逆袭秘诀!

liam
• 阅读 274

绩效面谈结束,从会议室出来,有一种不真实的感觉——这个季度我竟然拿了S?!

要知道,上个季度和上上个季度,我的绩效是C。 C在我司意味着什么你们知道吗? 拿3次C就意味着严重不胜任,公司就会让我收拾收拾包袱滚蛋。

而我,那时候,离第三个C,就只差一个季度了。

回过头来看,还是很感慨的,我真的在三个月的时间里,从部门里的渣渣绝地逆袭了。

但其实只有我知道,我不是靠自己做到的,而是有人不离不弃地拉了我一把。

01

我在这家公司干后端开发干到第二年,表现开始下滑,拿到第二个C的时候,我真的心灰意懒, leader 跟我说结果的时候,我心里都盘算着开始写简历了。

但是我 leader 却很严肃地问我究竟遇到了什么问题,有没有什么是他可以帮我解决的。

我本来只想糊弄过去,但看他一脸诚恳,我就一股脑儿把苦水都倒了出来。

困难包括但不限于:

从前端到测试,大家似乎没了我就没法干活,前端找我帮他改接口给他调试页面,测试找我协助构建测试场景和测试数据,我每天的时间都花在协助他们干活了。

太多的其他业务需要调用到我这块了,偏偏我这块又迭代得很频繁,很多代码来不及重构,接口文档来不及维护。

因此老是需要花费时间给对接的同事解答业务、排查问题。

每个人都觉得自己的需求很紧急,很优先,需要我配合,等到这些协作的事情做完了,下班时间早就过了。 我在空荡荡的办公室里独自坐在工位上,精力已经耗竭,人也疲惫到不想再看一眼代码,更别说静下心来思考技术方案。

说完这些,内心的无力感和委屈慢慢上涌——我帮助了团队里的每一个人,自己的事情却没有时间做好。

我加最多的班,拿最差的绩效。我尽量克制、不带感情地说完这些,然后就沉默了, leader 也很沉默,什么都没说,挥挥手就让我去继续工作了。

02

我以为这件事情说说就过去了,但没想到,有一天, leader 在群里发了这样的通知:

绩效从C到S,分享渣渣程序员逆袭秘诀!

培训课里, leader 一如既往地严肃,很认真地讲解这个工具要怎么用,前端和测试可以怎么用它来完成自己的任务而不依赖后端开发。

“尤其是xx业务线(我负责那条)的前端同学和测试同学,要注意听。”

全程 leader 看都没看我一眼,但我内心有一点点感动,因为他是真的有试图在帮我解决问题。

我们其实都已经很习惯 postman 这类开发工具了,一时间要让我们换,其实大家内心是比较排斥的。

但是因为 leader 比较重视这个事情,我们整个团队还是把项目迁移到 Apifox上了。

当然也因为Swagger 和 postman 的项目数据它都支持一键导入,而且界面操作习惯也和 postman 很接近,所以没有很强烈的不适应感。

03

总之大家就用上了 Apifox 了,但此时,对我来说,奇妙的事情才刚刚发生。

——就我觉得大家好像没那么需要我了。

以前前端小子做完静态页面就眼巴巴地等我协助他一起调试,各种空状态、异常场景都要我给他改接口数据;

测试测个场景还要靠我在后端造,涉及到调用其他业务还要我去沟通好现成的给她,我每天协助完前端协助测试,全都搞完坐下来终于可以做自己的活儿——一看时间晚上9点半。

现在全都安安静静,一个两个都不怎么来找我了。

我一问前端小子,才知道,现在 leader 会要求他用 Apifox 的 mock 功能,在不需要我辅助的情况下,自己通过接口构造 mock 数据去调试前端页面。

到后面我开发完功能,再把链接换成真实的接口链接跑一遍功能,验证不出差错就可以。

前端小子对 Apifox 这个 mock 功能很满意,因为基本不用他写脚本, mock 出来的数据就跟真实接口返回的差不多了。而且软件内置了很多常规数据 mock 规则,调用就是在接口响应数据那选择响应参数的 mock 规则就可以了。

简单、方便,比我好用。

绩效从C到S,分享渣渣程序员逆袭秘诀!

测试小姐姐那边也是。

她测接口和页面也不用我在后端协助改数据,自己在 Apifox上就能直观看到接口、修改测试参数。

而且用例也能直接通过接口生成再导入测试套件,我这边的修改她也能一键update过去就搞定。

我就不用因为经常改挨骂,忘记通知挨骂。

绩效从C到S,分享渣渣程序员逆袭秘诀!

我再也不用频繁地发更新后的接口文档、表格,一对一通知到所有人,协助前端测试完成他们的调试和测试任务...

很多原先需要我协作的地方,现在 Apifox 都能代劳了。他们不用空等,我也不用花很多时间做配合。

把我从这些琐碎的协作细节里解放出来,我才真正地感受到了内心的清明,之前毫无头绪的问题,现在代码敲着改着,脑子里就有了一个不错的解决方案了。

04

在我工作上渐入佳境之后,我 leader 又把两个比较难磕的技术问题交给了我。对此,组里的几个资深的研发是颇有微词的,他们怕我搞砸了。

也是,谁会对一个拿过两次C的渣渣开发有信心呢?

但 leader 却淡淡地笑了笑,说了几句鼓励的话,又说道:“进度问题大家不用太担心,实在不行我会backup 上去的。”

leader 这么信任我,我就不想让他失望。但我平时干活就效率低,再来两块硬骨头要磕,我心里确实没什么把握。

于是我就复盘了一下平时的工作,列了每项常规工作所耗费的时间,发现我在写接口和调试上,因为不喜欢背代码和注解语法,所以经常需要去查文档和改错。

这些零零碎碎的时间,虽然不多,但是拉拉杂杂加起来竟然能多花我2个钟那么多——一天上班也就8小时。

我想了下——要么就花时间去背,毕竟磨刀不误砍柴工;要么换一个不那么容易出错的工具。

我先前也没怎么去用 Apifox,我们组里几个后端都觉得不就是 postman 的替代版吗?不就是产品缝合怪吗?

但是现在我研究了一番,利用了它的两个优势——一个是可视化的接口文档编写页面,所见即所得,写接口文档可以不用写很多注解相关的东西,另一个是高度封装的调试功能,常规功能可视化页面调试,复杂调试功能再去自定义脚本。

总而言之,就是通过一个个工作细节上的优化,然后借助工具( Apifox、番茄钟等等)来帮我实现,我差不多节省下来了一两个钟头的时间。这些时间,我就都专注在了攻克技术难题上了。

05

后面的结果,想必大家也能料到了。那个S就是我的勋章,我也通过那三个月,重拾了自己的职业信心和对 coding 这件事情的热爱。

在这个过程中,我忽然发现,其实我的代码水平并不是不行,而是低效的研发模式、不合理的协作流程生生把我给拖垮了。

我的精力和时间,都被消耗在低效的沟通和不计入产出的协作里,在重复的操作细节里。 改接口、通知团队成员、改接口、再通知、帮忙改数据造场景....没完没了,没有一件是能提高 coding 水平和核心竞争力的。

很多人原本的代码水平很不错,但在有些团队里却干得很累,表现很差,很有可能就是被糟糕的协作流程拖了后腿。

毕竟一个团队协作开发一个项目,并不是你个人足够强就能解决问题的,需要有一个“中央枢纽”来让团队各个岗位之间的协作无缝联通,没有“淤堵”,再也不需要某个角色每天去力挽狂澜,到处救火。

我们团队用 Apifox 到现在有大半年了,现在大家每天似乎干得很轻松,但事儿一件件都办成了。你觉得我在躺,但其实我已经卷赢大部分人了。

也许大家不一定能像我一样运气好,有一个帮助我和维护我的 leader ,但我希望大家至少能够以我为鉴,及时反思、善用工具去解决问题。

Apifox 官网指路: www.apifox.cn

点赞
收藏
评论区
推荐文章
码农印象 码农印象
3年前
【程序人生】毕业入职后,C++转Go语言工作半年感受
我在大学期间就听说了Go并学习了一段时间,坦白的说,那时候对Go是比较无感的,因为并没有看到Go特别亮眼的地方,可能和我使用C、C、Java有关,这三
隔壁老王 隔壁老王
3年前
我的C语言基础
C语言32个关键字auto声明自动变量short声明短整型变量或函数int声明整型变量或函数long声明长整型变量或函数float声明浮点型变量或函数double声明双精度变量或函数char声明字符型变量或函数struct声明结构体变量或函数union声明共用数据类型enum声明枚举类型typedef用以给数据类型取别名co
Wesley13 Wesley13
2年前
java之常量折叠
为什么会写着篇博客,因为昨天看了关于final关键字的解析。但是有个问题始终没有得到解决,于是请教了我qq上之前添加的知乎大神。他给我回复的第一条消息:常量折叠。身为渣渣猿的我立马查询了这个概念。这是第一次知道这个概念。知乎大神还给我讲了好多。让我终于明白了这个常量折叠的概念实例解析昨天,让我迷惑的代码是下面这段代码
Wesley13 Wesley13
2年前
Oracle导入导出服务端和客户端版本要一致
2018年11月25日,我在2003系统导出,报错,是客户TNS没建好(不过这个用plsql也能连上)!Oracle导入导出服务端和客户端版本要一致(https://s4.51cto.com/images/blog/202009/25/16d31485c8c83962c3e8cc1c4a0cae3c.png?xossprocessimage
Wesley13 Wesley13
2年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
2年前
NavigationController管理VC
     场景:我从A到B,逻辑操作后跳到C,但是想到c返回的话会跳到B,但是不需要到B而直接到A,所以我从B到C的时候我想把self.navigationController里的B移除。c在2个地方用到。所以点击左上角返回按钮,就需要pop。    遇到的坑:!(https://static.oschina.net/uploads/space/
Stella981 Stella981
2年前
C++11 thread mutex 我怎么感觉我被坑了。
二话不说,直接上代码了。include <threadinclude <iostreaminclude <mutexusing namespace std;volatile int shared_value  0;volatile int running_count  1
Wesley13 Wesley13
2年前
1024程序猿节,聊聊石头学了哪些课,屯了哪些书?
!(https://oscimg.oschina.net/oscnet/317debacc36e4ab6ba47c12337d02533.gif)点击上方蓝色字体,关注我——一个在阿里云打工的清华学渣!!(https://oscimg.oschina.net/oscnet/7046a0e5c
Wesley13 Wesley13
2年前
C++笔记003:从一个小程序开始
 原创笔记,转载请注明出处!点击【关注】,关注也是一种美德~安装好VS2010后,从第一个小程序开始。在学习C语言时,我首先输出了一个程序员非常熟悉的对这个世界的问候:helloworld!我依旧输出这样一句问候!在Hello.cpp文件中输入内容:include"iostream" //包含C的头文
Stella981 Stella981
2年前
Hibernate纯sql查询结果和该sql在数据库直接查询结果不一致
问题:今天在做一个查询的时候发现一个问题,我先在数据库实现了我需要的sql,然后我在代码中代码:selectdistinctd.id,d.name,COALESCE(c.count_num,0),COALESCE(c.count_fix,0),COALESCE(c