82

我在一家小公司的“管理”开发人员团队中处于不稳定的位置。我之所以说“管理”,是因为尽管我分配工作并就他们的表现提供反馈,但我没有办法真正管教个人。

我的一些团队我不知道该怎么办,他们无法独立工作,需要大量的手,当离开时通常会对项目造成严重破坏,通常会导致失败。当失败确实发生时,我只能挽救项目并将其(有时一瘸一拐地)推过终点线。

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

我们尝试过结对编程、提供支付课程费用、购买书籍、将工作日的时间分配给培训,甚至花一整天的时间来培训团队。

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

除了我自己和其他高级开发人员之外,我们的管理团队没有人直接与任何开发人员合作。管理层是非技术性的,相信每个开发人员都是平等的,我们显然需要更多的人参与这些项目以更快地完成它们。

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

还有哪些其他资源?书籍、文章、一般建议,任何东西都会有所帮助。

4

17 回答 17

32

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

有一次,经过一年半的培训,我最终与无法编写循环代码的人一起工作。我对他们进行了培训,直到他们能够使用全功能的 Web 框架,并且只用了一个月的时间。

也许应该接受培训。

也许应该读一份关于的报告。

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

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

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

最后,我可能是错的。也许你做的一切都是对的。在这种情况下,您可以并且可能应该辞职。试图通过移动双手来防止飞机坠毁是没有用的,无论你有多强壮。有很多休闲团队会用你的技能创造奇迹,以充分利用他们的技能。

于 2010-02-12T20:49:35.387 回答
26

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

如果是技能,你已经知道有些东西是你不能教的。如果公司愿意(而且看起来确实愿意),并且你可以表现出改进,我会加强培训,看看哪些开发人员能适应这种情况。那些没有你的人将不得不放手。在你知道你将放弃一些现有的开发人员之前,我不会雇佣额外的开发人员。

如果是程序员的懒惰或其他态度问题,您将不得不说服您的管理层支持您进行纪律处分。正如Scott Vercuski所描述的,记录所有问题。逐渐淘汰那些不能胜任的程序员。让剩下的程序员知道他们应该学习好的编程技术和最佳实践,并使用它们。

如果您还没有这样做,请进行代码审查。有很多资源可以解释如何正确执行此操作。他们不应该大喊比赛,而应该将其视为产生预期结果的战略会议。讨论代码。如何改进?如有必要,在评论中编写一些新代码。

如果管理是问题,告诉他们他们是问题,并告诉他们如何解决它。但你必须雄辩而有说服力。你必须是他们的拥护者。写一篇关于这个问题的论文。进行演示并展示它。诉诸利益动机。

最后,尽你所能成为你的员工的最佳领导者。帮助他们。让他们畅通无阻,以便他们可以完成工作。你的部分工作是保护你的员工免受高层管理的政治影响,并维持一个体面的工作环境,这样他们就可以专注于做他们能做的最好的工作。换句话说,确保你的人可以信任你。

于 2010-02-12T15:38:16.753 回答
15

文档是你最大的资源......我的一位老经理告诉我“如果你不写下来,它就不会发生。”。如果你的开发人员给你一个完成任务所需时间的书面估计并且经常(并且严重)错过这些截止日期,则应该记录下来。

你有某种计时系统吗?还是开发人员记录他们的时间?如果他们说一个问题需要他们 X 天,而 X 天后它没有完成,你可以质疑为什么没有完成。

重申......文件是关键,如果你突然终止某人并且你没有足够的文件来说明你可以进入诉讼领域的原因。您拥有的文档越多,管理层应该很容易看出初级开发人员并没有发挥他们的作用,应该被替换。

祝你好运,但恐怕你正走在一条非常崎岖的道路上……我去过那里,这是一个漫长的过程。

于 2010-02-12T15:29:02.053 回答
6

我以前也遇到过这种情况,当然可以同情。我所做的是削减了一个小型的、独立的任务,这应该需要我或其他高级开发人员不超过 2 天左右的时间。对于这项任务,我将创建大量文档来确定解决方案应如何实施、任何数据库更改等。然后我会与开发人员坐下来,为他们提供任务的高级演练并将其分配给他们截止日期为 1 周。在一周结束时,您可以将他们的工作与他们的工作进行比较:他们是否符合规范?他们做得如何?QA 发现了多少错误?他们是否以任何方式破坏了构建或破坏过程?

完成后,假设他们失败了,您将与他们进行直接而有针对性的会面,解释他们如何没有履行职责。再做一两次同样的事情,只要你在链条上进行记录和沟通,你应该能够将它们推出。这可能很苛刻,但听起来你需要有人站出来,而你只是没有合适的人来做这件事。

此外,请确保您参与新候选人的面试。

于 2010-02-12T15:39:55.207 回答
5

我的建议是这样的:

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

你不一定要对你的上司那么严厉,但这就是必须发生的事情的本质。

于 2010-02-12T20:58:57.033 回答
2

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

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

于 2010-02-12T15:29:58.427 回答
2

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

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

像编写循环这样简单的事情对他们来说很难......

毫无疑问,贵公司需要在招聘员工方面投入更多的时间和精力,正如那句老话所说:欲速则不达。

现在,一旦你处于你描述的那种情况,完成你的报告,(正如其他人暗示的那样)使其简洁并强调这花费了公司多少钱,提交并等待最好的(正如你所说的你“没有在实际惩戒个人方面的追索权。”)。

于 2010-02-12T16:16:08.897 回答
2

不久前我读到这篇文章是关于鼓励程序员想成为最好的。

书呆子放牧

于 2010-02-13T01:26:41.867 回答
1

你提到你为你的团队“提供关于他们表现的反馈”。

所以:

  1. 和你的团队坐下来。
  2. 将此页面的打印件交给他们,并告诉他们您发布了有关他们的信息。
  3. 让他们读。
  4. 请他们帮助您解决问题。
  5. 听并写下来。
  6. 把它交给你的管理团队。
于 2010-02-12T22:14:54.567 回答
1

Peopleware 是另一本书,应该加入你的名单。

然而,当我读到它时,我发现它并不实用,因为公司里没有人想尝试它的建议。

于 2010-02-12T22:36:07.810 回答
0

听起来你是在正确的方式。

如果你向他们展示严格的数字,他们会更清楚地看到事情 - 创建一个编码任务并将其分配给几个不同的程序员,让他们各自工作。让它自己可测试。

详细说明每个需要多长时间,代码产生多少缺陷。

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

于 2010-02-12T15:29:28.953 回答
0

代码完成:Steve McConnell 的软件构建实用手册

是一个很好的资源,可以帮助学习最佳实践。

要求每个开发人员通过讨论阅读和学习这一点可能会有所帮助,但最重要的是量化结果。拿你自己和团队其他成员的薪水,然后计算你需要花费多少额外的时间来修复其他人的错误,以及开发人员一开始就搞砸事情的额外成本。

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

于 2010-02-12T15:33:08.687 回答
0

保持报告简洁。不要罗嗦。把它放在他们在这个上损失了多少钱。

于 2010-02-12T15:50:19.440 回答
0

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

整个过程中有不同的部分,但是当我们的几个关键模块被标记为“不可测试”时,这让管理人员大开眼界。

我们结合了一个有助于突出重复功能的影响分析工具,并将这一切打包为“技术债务”的评估。

由于我们可以逐个模块地呈现这一点,因此很容易识别肇事者(我们做了,但没有报告)。事实上,该组织更倾向于改进,而不是指责。

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

于 2010-02-12T16:13:33.533 回答
0

除非您对管理层有很好的吸引力,否则这根本不可能。根据我的经验,如果你试图强迫它,你可能会遇到麻烦。

于 2010-02-12T21:04:30.423 回答
0

只是一个想法。

我假设您使用源代码版本控制系统,例如 SVN。所以制定审查提交和拒绝不良提交的政策。然后只需向其他经理展示拒绝提交的统计数据,以证明平庸的开发人员对公司来说代价高昂。

于 2010-02-18T12:09:51.200 回答
0

这是给你的另一个想法:不要修复他们破坏的东西。通过告诉他们哪里出了问题以及如何修复(仅在一般情况下)和抄送管理,通过电子邮件将其发回以进行返工。请务必注意管理层的理解,这将如何影响您的最终期限。这为您创建了性能问题的文档,其中一些可能在他们必须修复自己的混乱时不再那么糟糕。

于 2010-02-19T22:48:33.157 回答