当前位置: 首页 > 科技观察

与糟糕的开发者一起工作

时间:2023-03-22 15:54:22 科技观察

我们了解他们。经理通常不会。如果你从来没有过这种经历,你会羡慕我的。您在一个开发团队中,而其中一位开发人员正在懈怠,对此您无能为力。从第一天的QA培训生到管理人员,软件领域的每个人都有一些编码经验。这已经过去了,现在我们有了方法级别的“大师”和管理人员,他们从不写台词,他们将对他人工作的任何和所有投诉都视为从属和个人冲突,从不考虑对其技术优点的批评。如果我说组里其他人做事粗心大意,虽然我是客气地讲技术细节,但经理们听到“不愉快”,把所有注意力都集中在团队凝聚力上,就是我有麻烦了。外部性直到几周前,我还在英国一家公司的分布式团队工作。一位我称之为L的团队成员不仅做得很糟糕(下面会详细介绍),而且他在每日Zoom状态更新中的声音比其他人大三倍,而蚀刻钻石的声音可能是表现最差的.我曾经听过英语发音,并坚持用强制屏幕共享来劫持别人的计算机,但什么也不显示,这样我们其他人就可以看到他摆动鼠标了。称他为机器人是对机器人的侮辱。他是机械的。他对任何转变的反应都是一样的。轮到他说话了吗?“让我分享我的屏幕。”收到错误消息?截图。解释关键词?另一个截图。谢谢,L,我不知道如何拼写“foreignkey”。我害怕接电话的原因是他刺耳的声音让我头疼。我对错误的语气(“在ChromeconSOLE中调试”)有一个通常的反应,大多数人在致电技术支持时得到的是,他们在他们甚至告诉没问题你重新格式化和重新安装之前得到了一个不知情的“帮助者”。最糟糕的是,L每隔几分钟就会经历一次认知重启。公司的Git分支设置错误,在同一个仓库中有两个“主”分支,一个用于前端,一个用于后端。我的代码在前端“master”的一个分支中工作。我们已经按名称讨论了大约十分钟的分支,很明显我正在使用“前端加密”进行工作,我们都多次提到这一点。他突然问我,“克里斯,你在哪个部门工作?”这种事发生过很多次,管理层会耐心地给他解释一个八岁的孩子会发生什么。他们可以看出他没有跟踪,但出于某种原因,当我表达我对不得不一遍又一遍地解释简单的事情感到沮丧时,这只是一个问题。错误代码我通常在C中工作并在C#中进行Web开发。我必须学习JavaScript、Python和Django。我最终几乎完全从事JavaScript和前端工作。我通常是后端开发人员;在这个项目中,L完成了所有后端工作。他做了很多工作,但都是低质量的。除了行业标准的难以辨认之外,他还尽其所能避免严格的绝对最低限度。我正在编写一个端点,我需要一个新的API,该API将为收件人返回两行或更多行,这些收件人可能已经在数据库中,也可能不在数据库中。我对Django的了解不够深,无法完美地做到这一点,我也不知道python在哪里结束了Django开始的地方(我真的不喜欢Django,它没有任何连贯性或成语),但我写了所有逻辑和状态代码。假设我调用此API来查找10个人的加密密钥。这是我在最初使用的BadDjango中找到的数字和HTTP状态代码:NumberreturnedHTTPcode10200(fullsuccess)1-9206(partialcontent)0204(datanotfound)serverexception500(exception)返回未找到的标识符数组。我将它交给L来修复Django语法而不是重写它,但这是他所做的:NumberreturnedHTTPcode10200(fullsuccess)1-9200(wrong)0200(wrong)serverexception400(wrong)所以即使没有返回任何行,他也称它完全成功,并删除了我未找到的行数组,因此客户端必须枚举返回的数据,与请求进行比较,并确定哪些不工作。服务器异常返回400,BadRequest,完全错误。这家伙应该是他们的后端大师。我想让他知道密码。我不认识所有人,但我知道一打最常见的。即使在他面前有逻辑和预期的状态代码,他也将其全部扔掉并“按照自己的方式行事”。更新:公平地说,关于如何达到API的中级成功有多种思想流派。除了200,我几乎看不到任何2XX状态码;那么500是大多数开发人员返回的唯一代码。允许L采取与我不同的方法是明智的。在我看来,由于某种原因,我们有四个以上的状态代码,我都使用了它们。但是,从我和他一起工作的几个月里,我知道他只是为所有这些复制粘贴了200个。对于上述情况(0,1–9,10),他保留了筛选逻辑,但没有检查就粘贴了同一行。在任何情况下,API都是事务性的,如果他改变了他的行为,他有责任通知我或任何发出调用的人,并期待这些更详细的状态代码。他不仅没有这样做,而且当我问他这件事时他也没有回答我。这不是团队合作。和他一起工作是一种模式。由于该项目没有质量保证,很可能客户首先看到了逻辑上的漏洞。管理层回应我很生气,除了他可以在一分钟内修复的Django语法之外,我做的一切都正确,但他用严重错误的逻辑重写了整个事情。当然,他的代码看起来就像两只猫在键盘上打架。我要求经理们召开电话会议。我给他们看了我上面写的。他们跌跌撞撞地说他们想和L谈谈。我认为他们没有这样做,因为两周后它仍然没有改变。他们付钱给了那个人。因此,如果他们不与L交谈,那么他们可能会确定我给团队带来了冲突,即使他们从未告诉过我。这是我工作的最后一个项目,除了这个有问题的API外,我所有的东西都可以工作。我受够了。我已经掌握了三种新语言,并且在非常酷的密码实现方面有很多经验。我忽略了L。这有什么意义?他只做过一点蹩脚的工作,但有着体面的职业道德。在之前的设计辩论中,他没有贡献。我本可以指挥他,但从与他一起工作几个月后我知道他会无视我,继续按照他习惯的方式做事:草率、粗制滥造和难以辨认。不懂如何编码的经理就像许多人说“人际交往能力”比“编码技能”更重要一样,这个项目的经理们更感兴趣的是让团队中的好东西留在团队中,而不是制作可靠的产品。由于这是一个非常注重安全的应用程序,因此尽可能严格地完成工作比平时更重要,但他们允许草率重写以保留L。他们对我的报告的态度可能是我之间存在一些“摩擦”和我。我与每个人都相处融洽,并设法隐藏了我对L及其神秘的断章取意的情节和令人毛骨悚然的代码的不满,而我却做得很少。这是将软件开发视为一种社会活动的结果。可以肯定的是,这还不是工程。但如果我是开发主管,L就会另谋高就。软件开发工作的伦理是连续的,有两个极点:尽可能完美地完成它并在最后期限前完成尽你最大的努力,把完成待办事项列为你唯一的优先事项。通过编写单元测试(我们不这样做)来弥补这一点。我和我处于这个连续体的两极。激起他对交流的兴趣,我们陷入了混乱。【责任编辑:赵宁宁电话:(010)68476606】