如何向管理层证明中等水平的开发人员正在伤害团队[关闭]


82

我处于“管理”一家小公司的开发人员团队的不稳定状态。我之所以说“管理”,是因为尽管我分配工作并就他们的表现提供反馈,但我实际上没有门徒训练的权利。

我的一些团队我不知道该怎么办,他们无法独自工作,需要大量的握力,而当他们离开时通常会对项目造成严重破坏,通常会导致失败。当确实发生故障时,我只能挽救该项目并将其(有时是lim行)推到终点。

这些开发人员不仅缺乏编程概念方面的技能,而且通常缺乏制定代码问题解决方案的能力。诸如编写循环之类的简单事情对他们来说很难,更不用说设计和实现问题的解决方案了。

我们尝试过结对编程,提供课程付费,买书,在工作日分配时间进行培训,甚至花整天时间培训团队。

另一位高级开发人员和我不知道该怎么办,但由于不得不与这些人每天打交道,因此我们的生产力受到限制。管理层迫使我们给他们工作,而他们的主要抱怨是事情进展得不够快。

除本人和其他高级开发人员外,我们的管理团队中没有任何人与任何开发人员直接合作。管理是非技术性的,并且相信每个开发人员都是平等创建的,并且显然我们在这些项目上需要更多的人才能更快地完成它们。

我已经在准备一份文档,其中包含“神话人物月”和“代码完成”两部分,以发送给管理层,希望用统计数据说明真正阻碍我们发展的因素是不得不将平庸的人们拖入开发周期。

还有哪些其他资源?书籍,文章,一般建议对您有帮助。


20
在更近的地方:来吧!控制!
彼得2010年

6
将此问题添加到我的收藏夹还不够。我必须将其设置为墙纸。
Manos Dilaverakis

5
该死的,我应该投票关闭,但是我喜欢这个问题:(
IAdapter 2010年

3
必须做的一件非常重要的事情是说服管理层,您和/或您的高级开发人员对谁被录用(被解雇或受到纪律处分)有发言权。如果您应该负责指导他们,那么首先应该至少对他们是否是您团队的一员发言权。
迈克尔·托德

5
投票结束,主观和辩论。如果人们只是想发泄,应该是社区Wiki。

Answers:


26

问题是源于缺乏技能或能力,程序员方面的态度问题,还是源于不提倡良好职业道德的企业文化?

如果是技巧,您已经知道有些事情您不能教。如果公司愿意(看来确实如此),并且您可以证明自己有所进步,那么我会加大培训力度,看看有哪些开发人员会参加。那些没有你的人将不得不放手。在您知道您将放弃一些现有的开发人员之前,我不会雇用其他开发人员。

如果程序员的懒惰或其他态度问题,您将不得不说服管理层支持您的纪律处分。记录所有问题,如Scott Vercuski所述。逐渐淘汰那些无法应付这种情况的程序员。让其他程序员知道他们应该学习并使用良好的编程技术和最佳实践。

如果尚未进行代码审查,请进行。有大量资源说明如何正确执行此操作。他们不应该大喊大叫,而应该将其视为能够产生预期结果的策略会议。讨论代码。如何改善?如有必要,在评论中编写一些新代码。

如果管理是问题所在,请告诉他们这是问题所在,并告诉他们如何解决。但是,您必须雄辩而有说服力。您必须是他们的拥护者。写一篇关于这个问题的论文。进行演示并显示。呼吁以牟利为动机。

最后,成为可能成为您的员工的最佳领导者。帮助他们。保持他们畅通无阻,以便他们能够做好自己的工作。您的工作之一是使您的员工免受上层管理的政治影响,并维护一个体面的工作环境,以便他们可以专注于尽自己最大的能力。换句话说,请确保您的员工可以信任您。


罗伯特对此感兴趣。您是否有“如何不进行代码审查”的链接或资源。我之所以问,是因为我相信我是在前一天犯了个严重错误的人……我想找我有关该高级工程师的管理人员的外部文档(再次)。(我什至甚至跳槽了我曾经工作过的另一位大四学生的情况,他同意我的回答“似乎有点退缩了。”)
Jason D 2010年

@Jason:不知道发生了什么事,在你的代码审查,但这篇文章可能会提供一些见解:it.toolbox.com/blogs/puramu/...
罗伯特·哈维

并不是我所希望的,但是它确实指出了我们进行审核过程的其他基本缺陷。(例如,没有以“成年” /未归属方为主导的审核...)我将使用该链接与管理层讨论对我们代码审核流程的改进,并以我最近的个人经验作为参考。为什么公正的调解员应该在那里的一个例子……
Jason D

32

有趣的是没有人告诉你,也许你缺乏管理技能。

有一次,我结束了与一年半的培训后无法编写循环的人员的合作。我对他们进行了培训,直到他们能够使用功能全面的Web框架为止,并且只花了一个月的时间。

也许应该接受培训。

也许应该阅读有关的报告。

我并不是说要攻击你。一点也不。我非常了解这个问题,因为过去我也没有管理团队。

但是不要躲避球,无论您一生中阅读了多少良好实践文献,您都应对团队中发生的一切负责。

在这种情况下,请停止抱怨并开始工作。不是作为编码员,而是作为经理。

最后,我可能是错的。也许您做对了所有事情。在这种情况下,您可以并且可能应该辞职。试图防止飞机因动手而坠毁,无论您有多强壮。有很多休闲团队会用您的技能创造奇迹,从而充分发挥自己的才能。


6
我不明白为什么人们会不赞成你。您提出了一个有效的观点,即从普通工程师演变而来的领导/经理几乎从未接受过任何有关如何管理人员的培训。古老的“您是一位伟大的工程师,因此您将成为一位伟大的经理”谬论。
Erich Mirabal

1
好吧,因为告诉某人寻求帮助在政治上是不正确的,也许他是造成这种情况的原因。我必须说,我不喜欢被告知自己,但这通常是有用的电击。
e-satis

4
谢谢您指出这一点-我也没有得到反对票。我从未接受过任何管理培训。我以前没有任何经验,就曾担任过这个职位。我完全承认我可能会受到部分责备。我已经(不止一次)要求聘请一位真正的开发经理,该人具有领导开发团队的经验。请求似乎置若de闻。

1
我在manager-tools.com上找到了一些非常好的管理技巧, 它们将播客分为有用的主题。也许您可以在那找到一些可以帮助您的东西。
保罗·希尔德布兰特

@Paul-谢谢,我一定会检查的!

15

文档是您最大的资源……我的一位老经理告诉我:“如果不把它写下来,那就没有发生。” 如果您的开发人员为您提供完成任务所需时间的书面估计,并且持续(严重)错过这些截止日期,则应将其记录在案。

您有某种计时系统吗?还是开发人员记录他们的时间?如果他们指出问题将使他们经历X天,而在X天后仍未解决,则可以质疑为什么未解决。

重申一下...文档是关键,如果您突然辞职,并且您没有足够的文档证明您可以进入诉讼领域的原因。您拥有的文档越多,对于管理层而言,显而易见的是,初级开发人员并没有承担太大的责任,应予以替换。

祝您好运,尽管如此,恐怕您的路途很艰难...我去过那里,这是一个漫长的过程。


我们使用时间跟踪系统和错误跟踪工具,但是我无权查看其他人的时间。我一定会更加勤奋地记录自己的经历。

如果您收集了有关其估算的足够文档,则可以将这些估算提供给您的经理,并要求他们进行时间表比较,这有望表明开发人员估算了X天,并花了X + Y天来保持一致,从而为您提供了更多的弹药供您决定。

2
如果需要估算,请意识到好的估算需要时间。要估计编码问题将花费多长时间,您必须深入到确定需要更改的代码行,需要编写的类和方法等等的级别,当然还需要考虑因素及时进行测试。好消息是,弄清楚这些事情是您必须要做的事情,因此您实际上并不需要花费额外的时间进行估算。
瑞安·伦迪

6

我以前曾遇到过这种情况,可以肯定会产生同感。我要做的是减少一项小的独立任务,这应该使我或另一位高级开发人员不超过2天左右的时间。对于此任务,我将创建大量文档,以标识应如何实施解决方案,任何数据库更改等。然后与开发人员坐下来,为他们提供该任务的高级演练并将其分配给他们。期限为1周。在本周末,您可以将有形的东西与他们的工作进行比较:他们符合规格吗?他们好吗?质量检查发现了多少个错误?他们是否以任何方式破坏了构建或破坏过程?

完成此操作后,假设他们失败了,您将与他们进行直接而有针对性的会面,以说明他们如何无法履行职责。再做一两次相同的事情,并且只要您在链上进行记录和沟通,您就应该能够将它们推出。这可能很苛刻,但听起来您需要人员加紧,而您没有合适的人去做。

另外,请确保您可以参加新候选人的面试。


5

我的建议是这样的:

如果您是经理,那么您必须拥有与责任相关的权利。这些权利包括对您下属人士的纪律处分。如果高层管理者拒绝授予您这些权利,则拒绝承担该责任。

您不必一定要对您的主管如此刻薄,但这就是必须发生的本质。


2

我的建议是实施错误跟踪程序并分配任务。这将显示团队中任何人的生产力。第一次使用它,我们实现了组织团队并衡量我们花费在工作上的时间。我喜欢的一件事是,当某人分配任务时,它会向工作人员发送一封电子邮件,并向其他人发送一份副本以检查该任务。

顺便说一下,我们使用了BugTracker.Net


我们有一个错误跟踪器和一个时间跟踪系统,但是它们没有集成。我们还让每个开发人员自行输入他们在任务上花费的时间。我可能必须查看我们是否可以跟踪在错误跟踪器中完成分配与估算时间之间所花费的总时间。

那时我想这是您必须专心于员工的道德问题。
尼尔森·米兰达

听起来像是一个每天要花8个小时的好地方……不!从什么时候开始我们的程序员就成为工厂工人!您组织的员工流动率如何?您因为不能适应人性而浪费了多少钱!在那里工作的人有高血压吗?您唯一可以管理的是血汗工厂。没有人值得在这样的环境中工作。糟糕,该喝咖啡了。;-)
山姆

2

我想知道这些人最初是如何进入公司的:

这些开发人员不仅缺乏编程概念方面的技能,而且通常缺乏制定代码问题解决方案的能力。

编写循环之类的简单事情对他们来说很难。

毫无疑问,贵公司需要花费更多的时间和精力来招募劳动力,正如老话所说:仓促浪费。

现在,一旦您处于描述的境地,请完成报告(如其他人所暗示的那样),使其简洁明了,并强调这会给公司造成多少费用,提交并等待最好的结果(如您所说,“您没有求助于实际训练一个人。”)。


3
开发人员不包括在招聘过程中,是如何他们得到了。


1

您提到对您的团队“提供有关其绩效的反馈”。

所以:

  1. 与您的团队坐下。
  2. 将他们的打印输出交给他们,并告诉他们您已将其发布。
  3. 让他们阅读。
  4. 请他们帮助您解决问题。
  5. 听并写下来。
  6. 将其带给您的管理团队。

1

Peopleware是另一本应该加入您的清单的书。

但是,当我阅读该书时,我发现它并不实用,因为公司中没有人愿意尝试其建议。


我上一次遇到这种情况-我辞职并去了其他地方,现在与另一个实际上拥有排头兵进行实际开发的开发团队一起工作会更好。
詹姆斯2010年

0

听起来您的方法正确。

如果您向他们展示数字的难度,他们会看得更清楚-创建一个编码分配,并将其分配给几个不同的程序员,让每个人自己完成工作。使其可测试。

保留每个人花费多长时间,代码产生多少缺陷的详细信息。

向高层管理人员展示这些数字,现在应该说服他们。


0

这本书

代码完成:史蒂夫·麦康奈尔撰写的实用软件构造手册

是可以帮助您学习最佳做法的好资源。

要求每个开发人员在讨论中阅读和学习这些内容可能会有所帮助,但是最大的事情是量化结果。以您自己和团队其他成员的薪水为基础,然后计算出您需要花费多少额外时间来解决其他错误,以及开发人员一开始就弄乱事情的额外费用。

然后展示一个由更好的开发人员组成的团队如何提高投资回报率。


OP已经声明他使用代码完成。还有其他好书吗?
aaaa bbbb 2010年

0

保持报告简洁。不要罗word。用他们为此损失多少钱来表述。


0

现在,我们有了一个可测量代码模块复杂性的工具。它可以在我们的PL / SQL模块上运行,但是我相信在其他环境中可以使用一些工具。

贯穿各个部分,但是当我们的几个关键模块被标记为“无法测试”时,这对管理层来说是大开眼界的。

我们结合了一个影响分析工具,该工具有助于突出显示重复的功能,并将所有这些打包在一起作为对“技术债务”的评估。

由于我们可以逐个模块地进行介绍,因此识别肇事者会很容易(我们做到了,但没有报告)。实际上,该组织更愿意朝着前进的方向发展,而不是指责自己。

(顺便说一句,现在所有代码都已提交以供审查,并且必须提供随附的代码分析。这里的情况肯定会有所改善。)


0

除非您与管理层保持良好的合作关系,否则这根本不可能。以我的经验,如果尝试强制执行,可能会遇到麻烦。


0

只是一个主意。

我假设您使用的是像SVN这样的源代码版本控制系统。因此,制定审查提交并拒绝不良提交的策略。然后,只需向其他经理显示拒绝提交的统计数据,即可证明平庸的开发人员对公司而言是昂贵的。


0

这是给您的另一个想法:不要修复它们破坏的内容。告诉他们出了什么问题以及如何解决(仅笼统地说)和抄送管理,将其寄回以通过电子邮件进行返工。确保记下管理层的确切了解,这将如何影响您的最终期限。这为您创建了性能问题的文档,并且其中一些人在不得不修复自己的混乱时可能不再那么糟糕。

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.