我的同事是一个好人,但他的表现不及标准。我要告诉老板吗?[关闭]


24

大约三个月前,我被安排在一个项目上,该项目直到那时才由一个新雇用的开发人员进行开发,因为它落后了。公平地讲,该项目是医疗设备的接口,具有很多细微之处,并且相对复杂,因此从管理的角度来看,让一个没有公司经验的人加入该项目可能是一个错误的决定。

无论如何,一旦我开始研究它,我就意识到……好吧,它根本没有用。UI看起来不错,但是实际上并没有执行任何操作,它所做的只是做错了。再次,公平地讲,这很大程度上是由于该开发人员没有适当准备为我们的设备编写接口的事实。但是,我也很快意识到所使用的代码很脆弱,并且很难维护。

现在,我不声称自己是世界上最好的程序员。我与很多非常聪明的人一起工作,他们比我更好。开发人员但是我非常努力地编写尽可能简单且健壮的代码。我测试我的签到。如果我发现我的代码变得凌乱并且难以在早期使用,则可以对其进行更改。我与同事进行了几次交谈,以帮助他编写更好的代码。这有点棘手,因为a)他在该领域有20多年的经验,而我只有5年,b)他被聘为所谓的“ UX专家”,而其他人则将他视为经验丰富的人。

就是说,我只是看不到。他是一个非常好人,并且很理性,但是他一次又一次地检查脆弱的代码,仅在最乐观的情况下才能工作,并且十分之九的错误导致我修复了他的工作中的错误。他的代码似乎只是业余的,显然他没有他被录用时所拥有的经验水平。到现在,我花费大量的时间重构他的代码并修复他的错误使我付出了代价。我的看法有两种选择:

  1. 不执行任何操作,破坏我的屁股,以确保该产品按时推出且坚固耐用,并等待他将来失败(在初始发行后,我将不再与他合作进行此项目)。
  2. 告诉我老板他的表现。我的老板是个有理智的人,但是我只是觉得尴尬。我不喜欢抨击我的同事(因为缺乏更好的称呼),我也不知道他会怎么接受。

就是这样。我试图通过解释为什么他的实现无法正常工作或如何使他的代码更易于维护来与同事合作,以解决这个问题,但他仍然犯同样的错误。我非常想知道其他人如何处理类似的情况,尤其是目前在管理人员。预先感谢您可以提供给我的任何建议。


3
如果他不是一个好人,会不会容易得多?在您的情况下确实很糟糕...没有任何真正的建议,我确实发现自己处于类似的情况,但是他对“好”一词没有任何含义。因此,要做的事情非常明确,并立即得到管理层的支持,就好像他们只是在找借口一样。但是你真正喜欢的人,很难。祝好运。
扬尼斯,2011年

1
@Yannis Rizos:是的,肯定会。我喜欢这个人,而且我不愿意为他做贡献,可能会丢掉他的工作,但是他似乎并没有满足于做很多事情的小公司对开发人员的期望。我只有5年的经验,在这里我从未得到过“初级”级别的任务。从第一天开始,我就在编写硬件接口,这很棒。
LostInCode 2011年

什么是UX​​?.....

@ThorbjørnRavn Andersen:UX通常意味着用户体验
Matt Ellen

Answers:


24

我至少考虑一下以下可能性:如果他被聘为UX使用者,很可能没有人真正期望他提供真正出色的代码-他们可能期望他的代码基本上只能是概述UX的原型,并且其他编码人员应根据此编写生产代码。

现在,我肯定不会说这样,但它不会让我最令人惊奇。至少根据我的经验,UX用户主要制作原型和情节提要之类的东西并不罕见。如果有的话,如果这个人真的是被专门聘为UX专家的话,我对他签入代码的想法感到震惊。我敢肯定我从未见过这样的事情。

如果这个人真的是UX专家,那么解决方法可能不是设法让他产生更好的代码,而是要让他完全摆脱编码(至少除了原型之外)。如果他真的很擅长 UX设计,那么真正的错误可能就是甚至要求他编写生产代码。相反,他应该(最多)在UX原型沙箱中工作,在沙箱中,他的结果将用于指导所产生的下一轮真实代码,但根本不会作为生产代码签入。


我对此进行了思考,这让我感到奇怪。我并没有参与招聘过程,绝对希望他会编码,但是作为UX专家,他可能并没有太多的编程经验。就是说,很难相信,因为他从事软件开发已有20多年了,并且在80年代并没有太多“ UX”。
LostInCode 2011年

不,但是如果他(例如)十年没有做任何编码,那么他可能会生锈(尤其是如果他在编码开始时甚至有点虚弱的话)。OTOH,当您每周工作90个小时以上时,您绝对有正当的理由与您的老板交谈,尽管我认为我将更多的精力放在解决该问题上,而不是在这位同事的弱点上。
杰里·科芬

18

我试图制定一条规则,使我始终让老板了解影响该项目的事情。积极和消极的……在这种情况下,我试图将代码之事情归咎于代码编写者。这听起来似乎不像您在殴打同事,而是更像您在试图提高产品质量。

从管理的角度来看,在这种情况下有3种常见的方式与员工打交道:

  1. 控制他们的弱点
  2. 发挥自己的优势
  3. 摆脱它们(不是您真正的选择)

通过寻求外部帮助来控制他们的弱点。

嗨,老板,我有点担心代码的状态……它非常脆弱,破坏了很多。我需要做一些工作才能使其处于可以信任的状态。我是否有可能借用一位建筑师一两天,看看我们是否可以提出一个好的设计?

您不是在要求其他人加入该项目,而是在短时间内要求更多的“专家意见”。生成所需的任何文档,UML图和代码段(如果架构师需要的话)。他们将看到代码处于什么状态,然后您的老板将让其他人回应您的意见。

从会议上,您将希望得到一个更好的设计,您和其他开发人员都可以遵循,而无需他花很多精力。这是许多情况下的设计和规格:减少不良开发人员可能造成的损害。

发挥自己的优势

嗨,老板,我正在使用项目x的代码,它很棒。另一方面,该代码可以使用大量的工作。我认为,如果[ux guy]能够将更多的精力放在UX上,那么该项目会更好,而我会进行一些重构以使其更稳定。一旦用户体验稳定,项目b可能会使用他的Midas触摸。

在这里,您的老板很可能会直视它;您告诉他另一个开发人员不是很好...但是至少您对它不是个混蛋。而且,如果他真的很擅长UX工作,那么他可能会找到一个稳定的职位,跳到每个项目上,从可用性的角度来看,使它们变得很棒。我想他也希望那样更好。


+1对于技术规格和图表,可减少不良开发人员可能造成的损害。这是多么真实。
maple_shaft

+1用于将重点放在错误代码上,而不是玩责备游戏。内部冲突总是对进度表和总体上的代码质量产生负面影响。
TMN

9

停止反复纠正他的错误。他不会学习;我知道我不会。

编程在很大程度上是一项逻辑任务,但它也涉及内存回收。当您经常编写通用代码时,您会回想起上一次实现该解决方案的方式,而不是再花全部力气。如果他从未实现正确的代码,我就能明白为什么他会不断重复同样的错误。

告诉他他做错了什么,也许是第一次修复。对于同一事件的任何其他事件,请让他实施您显示给他的修复程序。


5

由于以下几个原因,我会非常小心:

  1. 您如何确定在初始发行后将不再与他合作?您的管理层可能会想,“多么棒的团队,看看他们如何共同交付这种出色的成果!” 并希望让您在一起。

  2. 如果您去找老板,您想在解释您的职位上获得多少技术性?您有多少文档说明同事的绩效不佳?

这些就是您要问的我要注意的问题。我建议您向他询问有关代码的信息,看看他是否有理由说明其原因。可能是他在编码时圈出了圈,这引起了一些问题。圆圈是您编写代码的地方,然后通过一系列更改最终与您开始的完全相同,因为某人的更改列表最终被取消了。我曾经遇到过这样的情况,即它正在发生变化,并且在更改后撤消更改会很快使您感到厌倦。


是的,我有类似的想法。如果我不对老板说什么,我实际上会害怕排名第一,因为老实说,我不喜欢为解决这个问题花了90多个小时的时间。我可以毫无问题地向我的老板展示我的意思,他会意识到这些问题,但是...我只是不知道如果我这样做我会怎样。我试图以礼貌,乐于助人的方式与我的同事一起解决这个问题,但他一直犯同样的错误。感谢您的输入。
LostInCode 2011年

5

如果您不重做他的所有工作而只是让项目失败,将会有什么后果?对我的后果是我的意思。

当然,他的经验水平和职位不会有人偶然到达那里,所以他的工作没有您想象的那么糟糕,或者他的整个职业都是由像你这样的人组成的。

如果您每周在任何项目上工作超过50个小时,那么它们就是一个严重的错误,如果不引起PM的注意或离开,就会使您自残。我坚决支持SMARTER,而不是HARDER。

工作聪明的50岁,如果项目无法完成,那不是您的错。如果由于他的无能而失败,而他们责备您,那么那可能不是您想要工作的环境。

我的这么多朋友通常在一个管理不善的项目上每周工作40多个星期,因为他们害怕失败,因为他们不知道失败或成功直接影响整个职业的可能性。

超过80%的项目失败了,这并不丢人。


+1代表可爱的方法和69%的发明统计数据
cregox 2011年

@Cawas,大声笑,我猜是从记忆中得出的。我确实读过某个地方,将近80%的项目被认为是失败的,因为它们1)超出预算2)交付不足或3)错过了截止日期并延迟了时间。
maple_shaft

我见过有20年经验的开发人员根本无法编写代码。除非您有足够的权益或在市场上获得高薪,否则不要每周聪明地工作50个小时。工作一个聪明的40岁,如果还不够,他们就开始找工作。
凯文·克莱恩

4

它称为同行评审。您的经理有点期望您这样做,并且必须通知他将宝贵的开发人员花在哪里。我很惊讶他还不知道这一点-但是,我又看到了更糟的情况。

不要跟他说话,要谈他的日常工作。如果那意味着丢弃他的代码,那就这样吧。配备检入链接等,以证明您的日常工作。顺便说一句,您的经理可能完全希望您这样做-他带来了20年的用户体验,您将获得可靠的代码。他不编写线框,而是编写原型级别的代码。与您的经理交谈。

希望您不会被雇用为他的保姆。祝好运。


3

如果您不必重写/重做他的工作,该项目会更快启动吗?会帮助您节省预算吗?您不必大惊小怪,可以私下提出您的问题。这是大多数人犯错的地方,他们抱怨没有提供解决方案。

您是否可以向老板提供具体的建议,以改善结果。更好的文档?强大的用户测试?您的目标是使公司,项目,您的同事和您自己成功。假装没有问题,就可以确保四分之三的测试根本没有失败,而您并不是幸运的。


1

您需要尽快去找老板,然后简单地告诉他您在这里说的话。

首先,这是一种医疗设备。如果有错误,有人会受伤或死亡吗?人民生活或健康所依赖的代码需要尽可能人性化,而不是由乐观主义者为最佳情况编写的越野车。

好吧,戴上我的前经理的帽子……你不知道老板是否知道这件事,或者如果这对他来说是新闻,他的反应是什么。但是,如果他不知道,他就需要,而且您不应该通过隐藏此信息来对他进行第二次猜测。如果他对您的同事这样的编码没问题,他会通知您。

许多年前,我遇到了这种情况。我是一名“网络专家”,当时我作为承包商正在研究概念验证。实际上,他几乎什么都做不了,而且大部分时间都很无聊。有一天,我们的老板告诉我们我们要进行演示。很快,“网络专家”开始接到很多静悄悄的电话,他终于告诉我他将在演示之前离开以进行另一项合同演出。一旦我一个人待我的老板,我就告诉他。他抛弃了“网络专家”,并请来了我推荐的人,他在三天内提出了比“专家”在三个月内更多的代码。该演示非常成功-但如果我保持安静,该项目将完全失败。


1
我还建议作者将其花费的时间告诉他/她的经理。
拉姆猎犬,

0

是的,一定要告诉老板。然后,您会发现它是否不是在那里的那个人。经理的工作是了解团队的工作方式,如果老板尚未注意到,也许他们只是不关心您进行正确编码的工作-就像我去过很多地方一样。

在所有这些不同的工作场所中,如果我从他们所有人中得到了满手(意思是5)的朋友,那已经是很大的数目了。他们都有好人和好朋友,但您不会因工作而失去友谊-如果您失去了他们,那将是一件好事。在您的情况下,他会比您更重视这份工作。

当然,这并不是要让他被解雇。它只是表明您对项目健康的关注,这就是为什么大家都(或应该)在那里的原因。

毕竟,您尝试过与他交谈,如果您什么都不做,实际上是在冒险工作。


2
我没有提到我现在已经尝试过很多次,以解释为什么他的代码无法正常工作或如何变得更好。不幸的是,他只是不断重复同样的错误。
LostInCode 2011年

我和另一个团队成员遇到了同样的问题,尽管幸运的是,这是一个“小”班级项目。在编写代码时,请尝试让他与您配对程序来教他。希望这会让他自己看到一些错误,而不是您说这是错误的。他还可以看到公司中某人的工作方式。
乔纳森

注意看起来过于关注该项目。许多地方都受到根深蒂固的管理的困扰,很多时候,他们更担心您对项目的忠诚度。他们自己可能不像您那样重视项目,这可能就是为什么他们从不费心去解决另一个开发人员的糟糕表现。
maple_shaft

@LostInCode是的,即使我已经完全编辑它以匹配新信息,我的建议也没有得到改善。我想我是钱德勒。
cregox 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.