2009-02-27 89 views
3

我现在正处于一种情况,我需要担任当前项目的新开发人员的导师。将您介绍给项目的最佳方式是什么?

什么是您快速进入项目的最佳方式 - 无论是技术上,特定领域的项目还是社交。

我已经阅读了不少有关TDD编程的专业人士,他们开始与有经验的团队成员编写测试和新人员实现实际代码 - 然后再进行切换。

什么最适合你?

+0

我很确定这个问题在几周前就已经问过了。我现在无法找到问题,尽管 – tehvan 2009-02-27 12:02:57

回答

5

有技术的组合:

首先,他们需要了解应用程序的功能。我知道这听起来很古怪,但我曾在交易应用程序中工作过,并且可能需要很长时间才能让人们了解做市商的情况,因为这是建立在关于金融市场如何运作以及如何运作的众多知识之上的。他们是这样。只是像“传播”这样的术语有各种假设的知识。

这应该交互式地完成,而不是交给某人教程或用户手册。另外,这非常重要,用户用户应该驱动。使用鼠标和键盘而不是观看是建立肌肉记忆和根深蒂固的反应。你会以这种方式获得更好的保留率。另外,不要说“现在点击这里”,而是让他们现场问问他们“你会在这里做什么”。

因为新人没有受到您和您现有团队的所有历史的影响,您通常可以通过这种方式了解应用程序的可用性。

你不能教给别人一切,只要让他们看到足够的东西,他们就可以浏览应用程序并完成简单的任务。其次,给他们一个架构概述。如果这需要一两个多小时,你会进入太多的细节。他们会忘记它。我觉得最好把这个当作是面对面的谈话,而不是把建筑设计文件交给他们(这通常只是让人眼睛眩光)。

最后,给他们一些小的,相对容易的错误来修复那些不是时间关键的错误。这将使他们熟悉检查代码,构建代码,部署代码,运行代码等的基础知识。重要的是它很简单,因为新代码总是出错。您可能需要设置正确的环境变量来正确构建代码或其他内容。给他们一个复杂的问题,如果出现问题,他们会在弄清楚自己的环境,是否因为他们做错了事等而迷失方向。

这不言而喻,你不能让他们在角落弄清楚这一点。有人倾向于留意他们,以确保他们不会陷入困境。这也会让你很好地洞察他们的个性:当他们陷入困境时会发生什么?他们冻结了吗?他们是否要求帮助?他们是否尝试并坚持下来?他们是否放弃过于轻松?

与此同时,他们正在了解代码。

0

是否有任何使用与主项目相同的平台创建的内部工具?如果是这样,一个好的平台介绍将让新人对你想要的工具做一些改进。

0

当我在现有的项目,我觉得它更容易进入,如果:

  • 有人表示我的应用程序的工作,解释什么是应该做的,什么是做了,回答我的最初的问题。

  • 我得到很好的文档,所以我可以自己找出项目的基本知识。

  • 我有人可以随时回答我的任何问题。

4

让新手修复代码中的错误。

这是一个双赢。你可以让他们在角落里按自己的节奏工作。他们有一个目标。您可以在5分钟内设置任务。

+0

+1我总是发现这是一种很好的技术,可以使用新的代码库。确保导师手头回答将出现的无数问题 – tddmonkey 2009-02-27 11:42:36

+0

听起来像一个讽刺的答案,但如果我开始在一个新的地方工作,我会很乐意修复错误(一段时间) 。 – 2009-02-27 12:25:56

2

我想做到以下几点:

  • 给系统的演示
  • 给予高度概括,伴随流程图/设计
  • 给开发者一个特定的更详细的解释区。
  • 给他们一些工作(简单的工作)在该地区。
    解决一些错误是一个很好的方法来做到这一点。

一旦他们熟悉的那个区域,展开它,并开始给他们的小功能等

这一切的重点是为他们的产品熟悉,并环境。

+0

你会为每一颗子弹分配什么样的时间框架? – 2009-02-27 11:53:09

5

啤酒!

从社会的角度来看,我总是喜欢整个团队出去喝点新鲜啤酒。或者,如果你不是一个啤酒家伙,那么打保龄球或摇滚乐队什么的。

在你们放松一下之后,他们会感觉舒适得多,提问和适应。

0
  • 给他们所需的KT一天 或两个。
  • 获取反向演示文稿
  • 让他们修复几个
    天的错误。

将新joinee作为备份资源的模块。逐渐取决于他表现出来的信心,请他开始主要的核心工作。

4

自然的倾向是开始广泛和深入,这导致了很多长篇介绍性谈话。新人几乎不记得任何一件事。不要浪费你的时间在项目的历史,高层架构等等。

将他们与经验丰富的人员配对以解决单个问题。及时解释正在进行的工作。当你这样做时,通过向他们展示哪里可以找到历史/背景信息来教他们钓鱼。当人们从内核建立理解时,人们学习得最好。人们并没有保留很多先期的“脚手架”信息。

2

我刚刚在12月份开始一份新工作,所以这个过程在我心中还是新鲜的:)。

下面是我碰到了问题:

这是什么东西

  • 我正在处理的 应用程序的目的是什么?
  • 谁是其目标用户,它解决了什么问题?
  • 我该如何使用它?

我该怎么做我的工作?

  • 我们用于源代码管理的是什么?
  • 我们使用什么来进行错误跟踪?
  • 我会每天与谁进行互动? (其他开发人员,质量保证,文档等)
  • 我还需要了解其他任何工具或流程吗?

我该如何构建它?

  • 我在哪里可以找到源代码中需要的源代码?
  • 我需要采取哪些步骤来建立这个东西? (理想情况下,它应该是一步,但它几乎从来没有!)

什么是所有这些东西?

  • 什么是系统架构的高层次概述? (没有太详细的说明,只是主要玩家的基本描述)
  • 源代码的目录结构如何设置?什么去哪里?

一旦所有这些问题都得到解答,我就可以开始工作了!

加速新代码库的最佳方法是处理定义明确的,独立的任务,这些任务的构建方式逐渐暴露给越来越多的组件。此外,如果我遇到困难或需要更多信息,让人们随时回答我的问题至关重要。

在这里,我的经验是伟大的,到目前为止,这是我一直在努力的事情的顺序:

  1. 修复了几个小错误的
  2. 重新设计两种不同的对话框,却是可怕的设计
  3. 写的示例代码与产品的COM API
  4. 交互写从地上一个全新的模块了,然后将其融入产品
相关问题