代码之家  ›  专栏  ›  技术社区  ›  Adam Bellaire

如果不能降低周转率,是否可以管理高周转率的开发人员?

  •  2
  • Adam Bellaire  · 技术社区  · 16 年前

    我在一所大学领导了一小群程序员,去年刚进入这个职位。虽然我们团队的大多数人都是全职员工,但我们有几个传统上是研究生助理的人。

    对这些助教职位的竞争相当激烈,因为他们在工作期间除了工资外,还可以获得免费的研究生院学费。我们要求他们至少注册一年,尽管我们认为如果他们能留下来住两个,我们还是很幸运的。在那之后,他们获得了硕士学位,并从事更大更好的工作。

    正如你所能想象的,招聘和重新培训这些职位是时间和资源密集型的。更糟的是,到目前为止,他们通常是各自项目的唯一开发人员,我担任顾问和监督角色,因此在我们从开发人员转向开发人员时,围绕项目本身与熵作斗争是一项任务。

    我很想向管理者提出,雇佣一个全职(和长期)开发人员来取代这两个职位的可能性,但对于一所面临预算危机的学校来说,支付两名半职研究生助理的费用(在工资和福利方面)要比支付一名全职开发人员的费用便宜得多。另外,由于我是这个职位的新人,我想避免看起来像我无法处理我注册的东西。为了未来,我认为雇佣短期研究生助理的做法不会改变。

    我的问题: 考虑到员工可能在工作一年后离职,我能做些什么来创建一个有效的培训计划?

    • 我应该花多少时间来训练他们,而浪费多少时间呢?
    • 他们只需花多少时间来为我们的过程和项目喝彩呢?
    • 是否有任何具体的培训实践或技巧可以帮助解决这种情况?
    • 以前有人处理过类似的情况吗?
    • 我担心的太多还是不够?

    顺便说一句,而且作为记录,我们在Perl中进行了绝大多数开发。很难找到知道Perl的研究生,而另一方面,每个人似乎都至少对JAVA有了学术上的理解。因此 this question 我问了一会儿。

    8 回复  |  直到 13 年前
        1
  •  5
  •   Dana Robinson    16 年前

    你为什么不问问学生他们觉得困难的地方,为他们工作中遇到困难的部分做笔记、讲课等等?也许您需要创建一些介绍性的Perl讲座或购买一些死树。在O'Reilly订阅游猎怎么样?不过,在开始一个培训项目之前,我会问学生们他们更喜欢学习什么。每个人都有不同的学习风格。

    我也会花一些时间和资金在工作中创造一种专业软件开发的文化。这将是困难的,因为学术程序员往往是新手,习惯于拼凑解决方案(我是一个学术程序员,顺便说一句),但从长远来看,学生们会感谢你。也许你们每个星期都可以出去吃一次午餐,讨论编程和其他话题。您可能还需要一些时间来进行代码审查,以便人们可以互相学习。

    由于人员流动率高,您肯定需要确保知识转移的发生。确保您使用的是源代码控制,并且您的学生理解正确的注释。我也会让学生为子孙后代创建简短的文档。如果他们获得了学分,就让他们每学期交一次进度报告。您可以将它放在项目存储库中的一个目录中,供继承它的任何人使用。正如在其他文章中提到的,团体wiki确实可以帮助知识转移。我们在团队中使用Mediawiki,并且非常喜欢它。

    我最后要补充的一件事是,我发现为新开发人员保留一个项目列表是有帮助的,这个列表相对简单,可以在一个月左右完成。它们是新员工适应您的开发环境的好方法。

        2
  •  3
  •   Ryan Abbott    16 年前
    1. 这是一个相对的问题,应该根据具体情况来考虑。如果新员工已经了解Perl,那么您不需要再进行这项培训(是的,您可以将Perl作为强制性的先决条件,但这将极大地限制您的申请者库),他们的第一步培训应该类似于修复现有应用程序中的错误或引导他们浏览他们将维护的应用程序。但是,考虑到开发人员只有一年的时间,我认为开发风格会有所不同(如果不是很多的话)。
    2. 让新人跟上你的流程是非常重要的,只要你的流程 作品 . 在这个高周转率的环境中,您应该在您的流程中非常重视文档。对于这个文档来说,wiki是一件很好的事情,因为它是集中的,任何开发人员都可以访问它。让他们自己去弄清楚一个项目是如何运作的(几乎没有或根本没有文档),这既浪费了他们的时间,也浪费了你的时间。
        3
  •  3
  •   Steven A. Lowe    16 年前

    也许我读的太多了,但是如果你的大学教Java,你为什么要使用Perl?使用你的学生已经知道的工具不是更有意义吗?单凭这一点就可以显著降低学习曲线。[当然,一旦消除了遗留代码]

    除此之外,尝试:

    • 把项目分成几个月大小的部分
    • 实习期至少重叠2个月,如果不是6个月,那么新员工可以和老员工一起工作并接受培训。
    • 记录您拥有的任何可重复流程(如Mark Nold建议的那样)
    • 如果研究生比全职专业人员便宜,那就别再抱怨了;如果不是,那就去找专业人员吧。
        4
  •  3
  •   Mark Nold    16 年前

    你有没有考虑过做一个“三环活页夹”,像麦克唐纳德和其他许多高翻身行业?有一个文件夹,你可以打印出来,交给新员工,新员工展示了在你的环境中使用Perl启动和运行的一些基本知识。这应该是一个“hello世界”,加上一些基本的regex和数组操作。最后,你的手册应该继续展示你发现自己一直在做的5件事的例子。

    示例代码可能是针对外部安全系统对用户进行身份验证、遍历记录集或使用ghostscript创建pdf。不管它们是什么,它们都应该涵盖80%时间里你所遇到的事情的基础。更重要的是,这些示例应该向用户展示您希望如何编写代码以使其清晰明了(例如:命名和方法),并让他们了解使用中的服务器和软件,以及通用书籍无法展示的其他实用性。

    你不会第一次就把活页夹找对,但既然你有一个高薪的员工,你就有足够的时间来测试和改进它。

    除此之外,我会选择一本Perl编程书,给新用户自己的三环活页夹副本,再加上第一天要保存的“编程Perl”。我相信这比其他选择便宜得多,而且你会让他们翻动汉堡……我的意思是在短时间内切断代码。

        5
  •  2
  •   Rob Wells    16 年前

    我最初的几个想法是你应该:

    1. 雇佣这个职位,也就是说,它是以Perl为中心的,所以在很大程度上成为先决条件。这样你就不需要那种训练了。
    2. 花时间在登机过程中,也许可以使用wiki,这样你就可以很容易地更新它来帮助他们登机。

    编辑: 一些额外的要点:

    1. 也许可以聊一聊,看看Perl是否可以被引入课程?如果没有,那么在广告发布前六个月,让它知道申请者需要了解Perl。通过这种方式,您将获得具有Perl经验并积极展示其动机的人。
    2. 你能不能打开一些小项目,让潜在的候选人在这六个月内完成?
    3. 接近你的大型项目的设计,以便他们可以在一顿饭的方式。就是这样 The ACE Components 已经完成了。
    4. 为离校研究生完成的工作提供一个具体的文件和审查期限。
    5. 允许至少两周的重叠期,新的研究生可以与即将离校的研究生一起工作。他们可以学习开发环境,他们可以成为你维基的任何更新的豚鼠。

    还有更多…

    高温高压

    干杯

        6
  •  1
  •   JohnFx    16 年前

    这是一个泡菜,但在商业领域并不象你想象的那样罕见。有一次我听到一个统计数据,程序员在整个行业的平均任期是18-24个月。通常我会建议让经验更丰富的程序员,他们需要更少的启动时间,只需要在问题域/技术更新方面接受培训,而不需要基础知识。

    我认为你最好的选择就是要求比实际完成工作所需的更多的30-50%的研究生来考虑学习和提升时间,并投资一些额外的测试资源,因为这种环境会导致错误,因为每个人都在工作中学习。此外,考虑到学习日程,这可能很难做到,但要尽量错开开始日期,以最大限度地增加员工之间的重叠。新员工/旧员工的结对编程团队也可能有助于提高一致性,并在不牺牲太多生产力的情况下补充培训。

        7
  •  1
  •   meade    16 年前
    • 我应该花多少时间来训练他们,而浪费多少时间呢? 答: 这不是时间或浪费的数量,而是方法。是否可以视频培训-视频自己培训一个人,并为随后的学生/开发人员提供培训。随着时间的推移,您可以添加,但这会减少您完成相同过程所需的时间。

    • 他们只需花多少时间来为我们的过程和项目喝彩呢? 答: 这完全取决于那个人…一天的最小值,最多2-3周,我猜是平均值。

    • 是否有任何具体的培训实践或技巧可以帮助解决这种情况? 答: 视频培训(自制),让当前的学生/开发人员创建/更新一个包含所需信息、兴趣点等的wiki。

    • 以前有人处理过类似的情况吗? 回答 :过去是12-18个月的平均营业额-我可以想象它现在改变了(更长时间),但每个公司都有翻身,但可能不会因为资源是学生而被迫像你这样。

    • 我担心的太多还是不够? 答: 通过过渡失去的知识是一个关键的风险领域…

        8
  •  0
  •   Vlad Gudim nuriaion    16 年前

    该应用程序是否可以考虑开放式采购?