新的高级开发人员任务


21

我有一位具有八年.NET经验的高级开发人员,明天开始从事11,000行代码的应用程序的工作。在团队中,有我自己和另一个程序员。我们每个人都有大约三年的经验。

这是我作为经理的第一个项目(我也是该项目的开发人员),这是我第一次必须向某人介绍已经建立的代码库。显然,我将遍历每个模块,部署过程等,并将它们交给源代码控制存储库,文档(不是最好的)等位置。

在他们准备开始编写新功能和修复错误之前,我应该给他们多长时间?


1
这实际上取决于这11,000行代码的复杂程度。我希望有8年经验的人(这意味着他们从2003年开始使用它)可以在一周内全速运行。
拉姆猎犬,2012年

作为一个数据点,几周前,我们将一个开发人员重新分配给了一个包含13,700行JavaScript代码的项目,并假设他会在一个冲刺(一个星期)内高效地工作,甚至根本没有考虑过。
Gort机器人

@StevenBurnap:我喜欢:)放火烧脚,看看他是否把房子烧了。
乔尔·埃瑟顿

我真的是唯一认为11k线不多的人吗?我本来会因为心地善良而度过的。
路易·科特曼

您选择的任务的一部分可能还取决于您的项目要多晚。有关如何限制新员工对现有员工的影响的一些想法,看看programmers.stackexchange.com/questions/164781/...
DeveloperDon

Answers:


38

我会在第一天分配几个低优先级的错误,这样就不会有人尖叫,如果他们没有马上做的话,就给新开发者一些时间来熟悉代码库。

最关键的事情是在头几周内对他的所有工作进行代码审查。您不想发现这家伙走错了方向,或者没有遵循几个月的公司编码标准。最好确保他从一开始就知道期望什么,并且代码审查可以确保做到这一点。当然,我认为代码审查对所有员工都很好(部署之前我们会审查我们100%的代码),但是对于新员工来说,代码审查至关重要,应该亲自进行,以便您可以回答问题并将其转给他们可能没有的文档见过,如果需要的话。

您不想要一个新来的家伙,并且使用与其他人不同的风格。人们经常尝试继续使用以前工作的代码风格,即使它与新工作场所使用的代码风格冲突,这也会给其他开发人员造成混乱和烦恼。

即使对于有经验的开发人员,我也注意到的一件事是,其中有些不如他们在面试中所表现的那样好,代码审查可以帮助您快速找到问题,因此可以对其进行修复。这也将鼓励他们切实完成工作,我看到未经代码审查的新员工在不向他人展示自己所做的事情的情况下退出了一个项目,然后在截止日期前一周离开,因为他们知道自己不会受到打击他们不知所措,实际上还没有完成项目的任何部分。最好及早检查并经常与新手检查,直到您确定他们正在锻炼之前。

同样,对新手感到震惊的是您的旧项目的状态。它不是按照他认为的方式设计的。期待这一点,听听他的声音,不要自动忽略他所说的一切。特别是,此人似乎比您或其他开发人员有更多的经验,他可能会看到您未曾考虑的事情。但是,作为经理,您必须在当前工作量和截止日期之间平衡提议的更改。你们可能都想花一些时间来学习如何重构现有代码,并花一些时间来估计时间,以做到这一点,尤其是在新手有一些合理的顾虑的情况下。您可能无法支持完全重写(许多新来的人认为我们应该重新开始并做得更好),

如果您有一段时间不能期望他全力以赴(并完全按照客户的时间来计算),那么也可能是他可以开始一些您想做但还没有做的重构工作的时候了。没有时间做。有时,使用新员工培训期来解决项目计划中未涉及的某些问题是一件好事。他们可以学习代码库,并且如果他们想要执行的操作不起作用,则说明您尚未影响现有的计划,因为您尚未将它们纳入现有的计划中。而且,如果它确实可以工作,那么您可能会大获成功,使将来的维护变得更容易,安全性得到改善或解决任何问题。


这是一个很好的答案,尤其是有关代码审查和开发人员对项目当前状态的看法的部分。幸运的是,这不是一个遗留项目,它实际上是一个新项目,并且发展非常迅速。
MrBliz'5

1
+1-很多优点,但我想重申,审查他们的所有工作绝对至关重要,这样您就可以评估他们的技能水平并确保他们与团队保持一致。不幸的是,这花费的时间比前几周要长得多。另外+1的效果不及面试。在面试和出现之日之间,许多人发生的事情对我来说是一个谜。肺切除术真的像看起来那样普遍吗?那是我唯一能提出的解释。
扣篮

是的,请复查他们的工作,以确保他们没有偏离既定标准。但是如果他们有八年的工作经验,而您有三年的工作经验,他们可能比您了解的多。确保您不强迫他们按照自己的方式做事。
DJClayworth

2
@DJClayworth,虽然我同意这个新人可能会拥有更多的知识,而OP应该密切注意他想做的不同,但是有时您对系统的知识和要求可能会胜过他更好的常识,由于系统历史和需求的原因,您可能需要指示他采取非最佳路径。有时您需要坚持认为,他们可能会以自己尚未意识到的原因来做自己的事情。当然,当您这样做时,您需要说明原因,而不仅仅是我们总是那样做。
HLGEM

@Dunk:根据我的经验,即使是世界上最糟糕的人,在他们迫切需要工作的时候,也可以在面试中表现几个小时。这就是为什么聘用合同,实习和代码示例对新员工如此重要的原因。
2012年

18

立即在小任务上启动它们-不需要大的事情。

随着他们变得更加自信和熟悉代码库,将他们逐步完成越来越大的任务。发生的速度主要取决于它们。


这几乎就是我的想法。
MrBliz'5

+1,这是不费吹灰之力的,尤其是因为代码库很小。
Louis Kottmann

8

我一直很乐意将任务分配给我,因为我理解挖掘代码将花费更长的时间,并且在头几天/几周内会问很多问题。

我发现,直到我必须真正进入并修复或更改某些东西之前,我才能完全将注意力集中在一个项目上。

另外...无论您认为您对项目的运作方式进行了何种解释,总会有“哦,是的,我忘了告诉您”,“我们遇到了这个问题,所以我们这样做了”您实际上开始工作了。


+1新员工越早开始筛选项目,新员工越早对他们所做的事情感到满意(愿意承担所有权/责任感)。
乍得·哈里森

3

多久?

一根绳子要多久?

当他感到舒适时:当他修复第一个错误时-> 他准备就绪


3

在开源社区中,每个想加入该项目的人都首先要解决一些小问题。如果他或她能很好地解决问题,则将把更重要的任务分配给他或她。这样,他们将成为该项目的核心开发人员。

这位高级开发人员具有八年的.NET经验,因此您可以为他分配一些简单的错误来修复。如果他很容易处理它们,则可以为他分配复杂的问题,以帮助他熟悉整个应用程序。之后,他可以开始编写新功能并分析奇怪的问题。只需做,就没有设置时间!


2

8年的经验。我只想把他扔进去。他应该会游泳。正如其他人指出的那样,从简单的小任务开始。这将使他在代码签入/签出过程以及您所拥有的任何其他开发过程中感到困惑。

我已经换过很多次工作,并且在第一周内就为所有工作做出了贡献。最艰难的工作使我花了一个星期的时间来编译代码(至少100K +行代码)。该项目的完整构建历时8小时。

第一周我工作了大约80个小时(项目严重落后)。


有趣的是,每个人都以为这是一个家伙... :)
MrBliz

1.我要用英语说默认代词是男性,总是输入“他或她”是适当的,但是比大多数人想表达的要多。2.女性程序员的百分比是多少?在这种情况下,默认为男性是有统计依据的...因此,我想它更多地是使用默认的简单方法来指代随机个体,而不是专门假设他们是男性还是女性。
胸腺嘧啶

我是一个男人,所以其他人也一定是:-)。就我的写作方式而言,我没有足够的纪律性来一直写作。
Bill Leeper

1

对于一个很小的应用程序和一个经验丰富的开发人员,我认为一天的时间足以解决基本的错误。涉及错误或小的功能将近一周(一旦它们在问题域和体系结构上更清楚了)。


2
我认为我的标准可能太高了,但是您的... 1天...和1周才能真正发挥作用?IME,那不是很现实。
扣篮

@Dunk:被分配任务并能够在不完全丢失的情况下进行处理?我不是说他们会全速运转,但在这一点上,他们应该能够通过代码库打猎,知道是谁问,以了解更多,等等
Telastyn

是的,认真的。11k LoC不是很大。设置好他,以便它在调试器中构建和运行,然后向他展示它如何工作。那应该足够了。
gbjbaanb 2012年

1

答案是:这取决于。如果您想让他纠正某些错误或更改GUI元素的颜色,则大约需要5分钟(这是我们保留代码的位置),如果您希望对应用程序的整个体系结构进行完全重新设计,需要更长的时间。

这实际上取决于您希望他执行的任务。

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.