同糟糕的开发人员一起工作

开发 前端
如果您从未有过这种经历,那您会羡慕我的。 您正在开发团队中,并且其中一位开发人员的工作松懈,对此您无能为力。

我们认识他们。 经理通常不这样做。

如果您从未有过这种经历,那您会羡慕我的。 您正在开发团队中,并且其中一位开发人员的工作松懈,对此您无能为力。

从第一天的质量保证培训生到高管,软件领域的每个人都有一定的编码经验。 那已经不复存在了,现在我们有了方法层次的"主人"和经理,他们从未写过一条线,他们将对他人工作的任何和所有投诉都视为从属和个人冲突,从不考虑对其技术优点的批评。

[[345551]]

如果我说该小组中的其他成员正在从事伪劣工作,即使我礼貌地,详细地讲了技术,经理们也会听到"不愉快"并将所有注意力集中在团队凝聚力上,这意味着我是 麻烦。

外部性

直到几周前,我一直在英国一家公司的分布式团队工作。 一个团队成员,我将其称为L,不仅做得很糟糕(在下文中进行了更多说明),而且在每天的Zoom状态更新中,其响度比其他任何人都要大三倍,并且有可能蚀刻钻石的声音,其表现最差。 我曾经听过英语发音,并坚持使用强制性的屏幕共享劫持他人的计算机,而该屏幕共享却什么也没显示,所以我们其余的人都可以看着他扭动他的鼠标。

要说他是机器人,那是对机器人的侮辱。 他很机械。 他对任何过渡的反应都是一样的。 轮到他说话了吗? "让我分享我的屏幕。" 收到错误消息? 截屏。 解释关键字? 另一个屏幕截图。 谢谢,L,我不知道怎么拼写"外键"。

我之所以害怕电话,是因为他那刺耳的声音使我头疼。 我对他大多数人在打电话给技术支持时遇到的错误音调(" Chrome conSOLE中的调试")有一个通常的反应,他们得到了一个不懂事的"帮助者",他们甚至在讲述之前都不听问题 您重新格式化并重新安装。

最糟糕的是L每隔几分钟就会出现认知上的重新启动。 该公司的Git分支设置有误,在同一仓库中有两个"主"分支,一个是前端,一个是后端。 我的密码工作在前端" master"的一个分支中。 我们已经用名字谈论分支大约十分钟了,很明显,我正在用"前端加密"做我的工作,我们都提到过很多次。

他突然不经意地问我:"克里斯,你在哪个部门工作?"

这种事情发生过很多次,管理人员会耐心地向他解释八岁的孩子会怎样。 他们可以看到他没有追踪,但是由于某种原因,这只是一个问题,当我对不得不一遍又一遍地解释简单的事情表示沮丧时。

错误代码

我通常使用C语言工作,并使用C#编写Web开发。 我必须学习JavaScript,Python和Django。 我最终几乎只在JavaScript和前端工作。 我通常是一个后端开发人员; 在这个项目中,L完成了所有后端工作。

他做了很多工作,所有的工作质量都很低。 除了行业标准的难以辨认性之外,他尽了他所能避免的严格的绝对最低限度。

我写一个端点

我需要一个新的API,该API将为可能已经或可能不在数据库中的收件人返回两行或更多行。 我不十分了解Django,无法完美地做到这一点,也不知道python结束于Django的起点(我真的不喜欢Django,它没有任何连贯性或习惯用法),但是我写出了所有的逻辑和状态代码。

假设我调用此API来寻找10个人的加密密钥。 这是我最初使用的不良Django中找到的数字和HTTP状态代码:

  1. Number returned HTTP code  
  2. 10 200 (full success)  
  3. 1-9 206 (partial content)  
  4. 0 204 (data not found)  
  5. server exception 500 (exception) 

如果响应中的行数少于请求的行数,我将返回其未找到的标识符数组。

我将其交给L来修复Django语法,而不是重写它,但这就是他所做的:

  1. Number returned HTTP code 
  2. 10 200 (full success) 
  3. 1-9 200 (wrong) 
  4. 0 200 (wrong) 
  5. server exception 400 (wrong) 

因此,即使没有返回任何行,他也称其为完全成功,并且删除了我未找到的行的数组,因此客户端必须枚举返回的数据,与请求进行比较,并确定哪些不行 背部。 服务器异常返回400,Bad Request,这是完全错误的。

这个家伙应该是他们的后端专家。 我希望他知道这些密码。 我不认识每个人,但我知道十几个最常见的人。 即使在他面前有逻辑和预期的状态代码,他也将其全部扔掉并"按自己的方式行事"。

更新:公平地说,关于如何处理API成功的中级水平有多种思路。 我几乎看不到200以外的任何2XX状态代码; 那么500是大多数开发人员返回的唯一代码。

允许L采取不同于我自己的方法是明智的。 在我看来,出于某种原因,我们有四个以上的状态代码,我使用它们。 但是,从与他合作的几个月中,我知道他刚刚为所有这些人复制并粘贴了200个。 对于上述情况(0,1–9,10),他离开了筛分逻辑,但粘贴了同一行而不进行检查。

在任何情况下,API都是交易,如果他改变了行为,则他有责任通知我或发出呼叫的任何人,并期待这些更详细的状态代码。 他不仅没有做到这一点,而且当我向他询问时,他从未回答过我。 这不是团队合作。 这是和他一起工作的一种模式。 由于该项目没有质量保证,很可能首先是客户看到了逻辑上的漏洞。

管理反应

我很生气 除了他可以在一分钟内修复的Django语法外,我都正确地完成了所有操作,但他以令人震惊的错误逻辑重写了整个过程。 当然,他的代码看起来像是两只猫在键盘上打架。

我请经理们进行电话会议。 我向他们展示了我上面写的内容。 他们tu不休,说要和L谈谈。 我认为他们没有这样做,因为两周后它仍然没有变化。

他们付了这个家伙。

因此,如果他们不与L交谈,那么他们可能会确定我正在为团队带来冲突,尽管他们从未告诉过我。 这是我工作中的最后一个项目,除此错误的API外,我所有的工作都有效。 我做完了 我掌握了三种新语言,并且在非常酷的密码实现方面拥有丰富的经验。

我没有理会L。这有什么意义? 他只做过一点差劲的工作,而且在职业道德上还不错。 在以前的设计辩论中,他没有贡献。 我本可以指导他的,但是从与他一起工作的几个月中,我就知道他会不理我,而继续按照他习惯的方式做事:草率,伪劣和难以辨认。

不懂代码的经理

就像许多人说"人际交往能力"比"编码技能"更重要一样,该项目的经理们对保持团队中的美好事物更感兴趣,而不是做出坚实的产品。 由于这是一个非常以安全性为中心的应用程序,因此比平常更重要的是执行尽可能严格的工作,但是它们允许保留L的草率重写。

他们对我的报告的态度可能是我和L之间存在一些"摩擦"。 我与所有人相处融洽,并设法掩饰了我对L及其神秘的语境丧失情节和令人毛骨悚然的代码的不满,而我所做的事情却很少。

这就是将软件开发视为一种社交活动的结果。 可以肯定,这还不是工程。

但是如果我是开发主管,L会一直在寻找另一份工作。

软件开发工作的道德规范是连续的,两个极点是:

  • 尽可能完美地完成它,并在截止日期前完成
  • 尽力而为,使清除任务列表成为您的唯一优先事项。 通过编写单元测试(我们没有这样做)来弥补这一不足。

我和我处于这个连续体的相反两极。 搅动他对交流的不感兴趣,我们一团糟。

【责任编辑:赵宁宁 TEL:(010)68476606】

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2009-06-19 15:11:34

DWR和Spring

2011-01-20 11:42:49

同事

2013-11-11 09:47:49

2012-07-10 01:43:36

程序员开发人员测试人员

2018-05-15 10:42:44

应用程序云计算开发

2010-08-09 16:09:25

2012-05-30 15:15:42

ibmdw

2023-03-15 07:12:53

企业开发人员提供商

2009-12-11 14:50:14

Visual Basi

2009-11-23 20:07:51

ibmdw开发

2021-02-19 09:33:01

kubernetesJAVA服务

2022-06-06 09:00:00

Kubernete容器虚拟机

2023-12-21 16:45:27

软件开发人员CIOGenAI

2019-08-02 17:06:49

JavaScript程序员技术

2023-06-12 10:51:43

开发工作效率技巧

2010-07-06 10:34:33

RationalJazz需求管理

2022-02-17 16:05:58

SQL开发招聘

2023-02-17 15:01:15

2021-12-10 23:48:19

Java开发技术

2010-08-16 09:21:35

Windows Pho
点赞
收藏

51CTO技术栈公众号