今天这篇是架构师大刘的系列故事

小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 离职了的更多相关文章

  1. XidianOJ 1076 小W喜欢的数字

    题目描述 大家都知道,小W是一名大帅哥,当然比起Light还是有点儿差距的!帅气的小W认为0-9这些数字,只有1,3,5是完美的. 欲问小W为什么,小W总是说"帅哥,是不需要解释的" ...

  2. 武汉科技大学ACM :1008: 小t和小w

    Problem Description 小t最近学了C语言,他想要在女朋友小w面前展示一下自己的能力,小w喜欢如样例所示的图形, 想让小t写一个程序来输出这样的图形,小t拿到后感觉有点困难,小t不想在 ...

  3. bzoj4665小w的喜糖 dp+容斥

    4665: 小w的喜糖 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 120  Solved: 72[Submit][Status][Discuss] ...

  4. bzoj4665 小w的喜糖(dp+容斥)

    4665: 小w的喜糖 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 222  Solved: 130[Submit][Status][Discuss ...

  5. bzoj2441【中山市选】小W的问题

    题目描述 有一天,小W找了一个笛卡尔坐标系,并在上面选取了N个整点.他发现通过这些整点能够画出很多个“W”出来.具体来说,对于五个不同的点(x1, y1), (x2, y2), (x3, y3), ( ...

  6. 【BZOJ 4665】 4665: 小w的喜糖 (DP+容斥)

    4665: 小w的喜糖 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 94  Solved: 53 Description 废话不多说,反正小w要发喜 ...

  7. 【BZOJ4665】小w的喜糖 容斥+组合数

    [BZOJ4665]小w的喜糖 Description 废话不多说,反正小w要发喜糖啦!! 小w一共买了n块喜糖,发给了n个人,每个喜糖有一个种类.这时,小w突发奇想,如果这n个人相互交换手中的糖,那 ...

  8. bzoj2441 [中山市选2011]小W的问题(debug中)

    2441: [中山市选2011]小W的问题 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 487  Solved: 186[Submit][Statu ...

  9. 小w的喜糖(candy)

    小w的喜糖(candy) 题目描述 废话不多说,反正小w要发喜糖啦!! 小w一共买了n块喜糖,发给了n个人,每个喜糖有一个种类.这时,小w突发奇想,如果这n个人相互交换手中的糖,那会有多少种方案使得每 ...

随机推荐

  1. 深度学习编译与优化Deep Learning Compiler and Optimizer

    深度学习编译与优化Deep Learning Compiler and Optimizer

  2. TensorFlow Keras API用法

    TensorFlow Keras API用法 Keras 是与 TensorFlow 一起使用的更高级别的作为后端的 API.添加层就像添加一行代码一样简单.在模型架构之后,使用一行代码,可以编译和拟 ...

  3. 对端边缘云网络计算模式:透明计算、移动边缘计算、雾计算和Cloudlet

    对端边缘云网络计算模式:透明计算.移动边缘计算.雾计算和Cloudlet 概要 将数据发送到云端进行分析是过去几十年的一个突出趋势,推动了云计算成为主流计算范式.然而,物联网时代设备数量和数据流量的急 ...

  4. 适用于Linux 2的Windows子系统上的CUDA

    适用于Linux 2的Windows子系统上的CUDA Announcing CUDA on Windows Subsystem for Linux 2 为了响应大众的需求,微软在2020年5月的构建 ...

  5. 嵌入式Linux设备驱动程序:发现硬件配置

    嵌入式Linux设备驱动程序:发现硬件配置 Embedded Linux device drivers: Discovering the hardware configuration Interfac ...

  6. LongAdder源码阅读笔记

    功能描述 LongAdder通过创建多个副本对象,解决了多线程使用CAS更新同一个对象造成的CPU阻塞,加快了对线程处理的速度.当多个线程同一时刻更新一个AtomicLong类型的变量时,只有一个线程 ...

  7. HashMap源码解析和设计解读

    HashMap源码解析 ​ 想要理解HashMap底层数据的存储形式,底层原理,最好的形式就是读它的源码,但是说实话,源码的注释说明全是英文,英文不是非常好的朋友读起来真的非常吃力,我基本上看了差不多 ...

  8. python学习笔记01-简单接触

    前言:陆陆续续学习python一年多了,每次都因为各种原因中断了,希望这次可以通过记录更新的方式坚持学完一轮. 简单了解python Python是一种解释型.面向对象.动态数据类型的高级程序设计语言 ...

  9. VScode如何设置模板字符串html标签自动补全

    在学习Vue的过程中,很多时候都需要用到模板字符串,但是里面的html标签一个字符一个字符的去敲未免也太麻烦了吧,其实我们可以通过设置来实现在模板字符串中按Tab键快速补全html标签. 1.在VSC ...

  10. Go语言十六进制转十进制

    Go语言十六进制转十进制 代码Demo import ( "fmt" "strconv" "testing" ) func Test_1(t ...