小 W 离职了
今天这篇是架构师大刘的系列故事
小W要离职了,大刘并没有挽留,甚至有点庆幸。
小W离职的原因比较简单,这次升职加薪,大刘提拔了和他同期进来,并且工作年限和他差不多的小L,而小W则是原地没动,薪水也没有加,他受不了,提出了离职。
小W就是典型的普信男,明明做的比小L差的很远,却又对自己是迷之自信。
他俩到公司已经快 2 年了,在这期间,小L和小W之间的差别越来越大,小L变得越来越优秀,而小W在工作期间却问题不断,没有什么明显的成长。
离职前,小W觉得还是不服气,找大刘深谈了下,大刘耐心的指出了他和小L的区别:
1. 代码质量的区别
在大刘他们的 Bug 管理平台上,小W的 Bug 是一片一片的。有许多 Bug 的原因是代码中方法计算返回的结果出现了错误,可引发这些错误的输入值既不是极端值,也没出现古怪的边界条件,全是正常的业务参数。
这说明了什么?说明小W他偷懒不写单元测试,甚至有的都自己没去测试,等着别人帮他测。
而小L的代码则非常健壮,Bug 平台里,小L的代码 Bug 非常少。如果去看项目的 Git,发现小L的单元测试代码非常的多,甚至远远超出了工程代码。
2. 开发速度的区别
从项目管理平台上,可以看到大家的开发时间统计。相似的一个需求,小L需要的时间是小W的一半。
比如,上次项目需要新接两个第三方渠道,小W和小L一人搞一个接口,参数相似,流程相似,小L花了 3 天,小W花了 5、6 天。
而且,后期接口出现变化,每次小W都要改个两三天,而小L只需要半天一天。
究其原因,就是小W每次写代码特别不优雅,不灵活,有点变更就需要大改,并且还经常改出 Bug。
而小L从来都是把方案想透彻了才开始写,还不断的重构代码,最终的代码又灵活又优雅,有需求变更了,特别省事的就可以改好。
3. 思维严谨的区别
有一次,小W写公众平台的一个对外接口,写完了拿出去测试,结果闹了个大笑话。他写的对外接口,连个验证签名也没有。这事儿幸亏在内部测试的时候,被查了出来。不然直接放出去,整个团队的专业性都要受到质疑。
而小L同样写一个接口,不仅考虑到了验证签名问题,他还考虑到了参数需要加一个时间戳,保证签名不会被重复利用的问题。
4. 团队合作的区别
打开他们项目的 Git,就看公共工具类,小W一行都没有提交过。然后,随意打开一部分代码,那么多可以共用的代码,小W从来没有想过提出来形成工具去方便别人。只管着自己的那摊子事儿,写完完事儿。什么代码风格、复用、团队合作全部扔在了一边儿。
小L不一样,不但会主动写一些工具类,有时候还会弄出一些小框架,减少别人的开发量。
5. 对业务理解的区别
需求会上,小W基本就没认真参与过,也很少去和产品经理主动沟通分析需求。当开始写代码了,小W要么实现出现偏差,要么就出现了遗漏。
有个权限管理的需求,大刘本来想小W个机会,希望他能把这个做好,所以让他负责。
结果是,这个功能,权限配置甚至连个后台都没有,业务都没地方配置权限。就这样,小W还非说功能实现完了,还和产品们争吵了起来。最后结果就是被啪啪打脸,人家产品的原型图和需求文档说的很明白,而且还连续开了好几次需求分析会,大家都理解了,就小W出现了问题。
而小L则是非常重视业务需求,会写出一些文档,并勾画出设计实现去拉产品核对。如果出现了疑难问题,会同时叫上产品、运营开碰头会,并确保大家形成共识后,开始执行。
小W失败的权限管理开发,小L接手了。他画了角色和权限的关系图,然后全部和产品一一过了一遍。确认后,发邮件形成共识,然后开发。一切顺利。
6. 工作态度的区别
要知道,产品虽然经常惹技术讨厌,但是,大家都是普通人,自然也有想不到的地方。一般来说,小L和产品配合,产品想不到的地方,小L都会积极去沟通,查漏补缺。但是,到小W这里,事情往往推不下去。
曾经有个功能,产品的需求是想在商户信息出现变动的时候,能通知到公司其他部门的系统。要通知到其他系统,就得先对接公司统一的公共消息系统。
这事儿,小W直接给产品说“对接很麻烦,对方不配合”。虽然有时候跨部门配合是有难度,但是也不能因为这理由就把事情一直拖着。一直到大刘来问进度,才发现根本没做。
把事儿交给小L后,人家第一时间去和产品解释了原因和面临的问题,然后开会协调了一个新的上线时间,把对接公共消息系统的工作量也进行了排期。
再往后,小L又把工位临时搬到负责公共消息系统的团队那里,在那里就地开发。此事妥善解决。
7. 解决问题能力的区别
同属一个技术团队,小W遇到难题,就去钻牛角尖,一个技术难题,能抠一周,结果别的工作也全部耽误了。
曾经,小W遇到过一个输出数据无序的问题,然后,他当时调试,怎么也找不到问题所在。就这个,墨迹了一周,后来是小L主动问他咋回事,才知道他遇到的问题。团队里几个人一起帮他排查了问题,两个小时解决。而他手头的工作却已经耽误了一周。
而小L则是遇到技术问题,首先是自己努力去解决。如果发现自己解决不了,又要进度延误的风险,他会立即积极求助,问团队高手,问技术领导,总之想办法尽快解决,好进入到工作的下一步。
说完以上几点后,不管小W是不是认同,大刘还是希望小W以后能发展的越来越好,又说道:
要知道,程序员的官方称谓是工程师,而工程师是做工程的。在特定的时间内完成高质量的工作才能是合格的工程。能按时高质的输出工程量,才是合格的高级工程师。
而对于小L,大刘想再看他一年的表现,如果依然表现优秀,大刘决定再给他加一次薪,优秀的工程师必须尽全力挽留下来。
你好,我是四猿外。
一家上市公司的技术总监,管理的技术团队一百余人。
我从一名非计算机专业的毕业生,转行到程序员,一路打拼,一路成长。
我会把自己的成长故事写成文章,把枯燥的技术文章写成故事。
欢迎关注我的公众号,关注后可以领取高并发、算法学习资料。

小 W 离职了的更多相关文章
- XidianOJ 1076 小W喜欢的数字
题目描述 大家都知道,小W是一名大帅哥,当然比起Light还是有点儿差距的!帅气的小W认为0-9这些数字,只有1,3,5是完美的. 欲问小W为什么,小W总是说"帅哥,是不需要解释的" ...
- 武汉科技大学ACM :1008: 小t和小w
Problem Description 小t最近学了C语言,他想要在女朋友小w面前展示一下自己的能力,小w喜欢如样例所示的图形, 想让小t写一个程序来输出这样的图形,小t拿到后感觉有点困难,小t不想在 ...
- bzoj4665小w的喜糖 dp+容斥
4665: 小w的喜糖 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 120 Solved: 72[Submit][Status][Discuss] ...
- bzoj4665 小w的喜糖(dp+容斥)
4665: 小w的喜糖 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 222 Solved: 130[Submit][Status][Discuss ...
- bzoj2441【中山市选】小W的问题
题目描述 有一天,小W找了一个笛卡尔坐标系,并在上面选取了N个整点.他发现通过这些整点能够画出很多个“W”出来.具体来说,对于五个不同的点(x1, y1), (x2, y2), (x3, y3), ( ...
- 【BZOJ 4665】 4665: 小w的喜糖 (DP+容斥)
4665: 小w的喜糖 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 94 Solved: 53 Description 废话不多说,反正小w要发喜 ...
- 【BZOJ4665】小w的喜糖 容斥+组合数
[BZOJ4665]小w的喜糖 Description 废话不多说,反正小w要发喜糖啦!! 小w一共买了n块喜糖,发给了n个人,每个喜糖有一个种类.这时,小w突发奇想,如果这n个人相互交换手中的糖,那 ...
- bzoj2441 [中山市选2011]小W的问题(debug中)
2441: [中山市选2011]小W的问题 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 487 Solved: 186[Submit][Statu ...
- 小w的喜糖(candy)
小w的喜糖(candy) 题目描述 废话不多说,反正小w要发喜糖啦!! 小w一共买了n块喜糖,发给了n个人,每个喜糖有一个种类.这时,小w突发奇想,如果这n个人相互交换手中的糖,那会有多少种方案使得每 ...
随机推荐
- AIoT开放平台及应用
AIoT开放平台及应用 阿里AIoT开放平台,是阿里云IoT面向开发者的能力接入渠道,开发者可以在这里完成能力的申请.开通.部署.配置和集成开发等一些列工作.这些能力并不的独立交付,而是通过关联到行业 ...
- 解决:django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not 的方法
错误类型: 该错误是在在创建Django工程时出现遇到的错误 完整报错信息:(博文标题输入长度有限制) django.core.exceptions.ImproperlyConfigured: Req ...
- 痞子衡嵌入式:嵌入式里串口(UART)自动波特率识别程序设计与实现
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是嵌入式里串口(UART)自动波特率识别程序设计与实现. 串口(UART)是嵌入式里最基础最常用也最简单的一种通讯(数据传输)方式,可以说 ...
- 5000字长文,kurryluo 的自学编程之路
我是程序员.大众口中非科班的那种,带着高中时期对二进制的恐惧,在大学参加科研比赛后保研,再到和校友一起创业,现在在某大型互联网公司做前端开发,一路走来都是靠自己学习. 前端框架 VUE 的作者尤大说过 ...
- char与varchar2字符类型的区别
1.实验: 1)创建一个表test,包含三个字段,数据类型分别是varchar2,number,char create table test(name varchar2(10),id number(1 ...
- DOS命令行(7)——Windows网络检测与诊断
ping ping 命令的作用是通过发送"网际控制报文协议(ICMP)"回响请求消息来验证另一台TCP/IP计算机的IP级连接状态,回响应答消息的接收情况将和返回过程的次数一起显示 ...
- 解决 Golnag Gin框架跨域
package main import ( "github.com/gin-gonic/gin" "awesomeProject/app/app_routers" ...
- Mongo集群搭建
1.集群角色及架构 在搭建集群之前,需要首先了解几个概念:路由,分片.副本集.配置服务器等 mongos,数据库集群请求的入口,所有的请求都通过mongos进行协调,不需要在应用程序添加一个路由选择器 ...
- 13、解决java -version命令报错
13.1.问题描述: 安装jdk后在dos界面中输入"java -version"回车的时候报如下错误: Error opening registry key'software\J ...
- 在windows的情况下面右键添加vim
1, 首先打开注册表,然后打开下面路径: HKEY_CLASSES_ROOT\*\Shell 2, 右键新建项(也就是右键的文字): 用vim编辑 3, 在"用vim编辑"下面再 ...