如何指导软件开发新手

发表于:2007-05-26来源:作者:点击数: 标签:
如何指导软件开发新手 ZDNet: BUILDER.COM 老资格的软件开发设计人员经常被要求帮助那些没有什么经验的新手。但是,如果这名软件开发方面的新手在此之前没有任何的技术开发背景的话,这个任务就变得相当艰巨了。 作为要帮助别人的人,你所扮演的是一个非常

如何指导软件开发新手 

ZDNet: BUILDER.COM


老资格的软件开发设计人员经常被要求帮助那些没有什么经验的新手。但是,如果这名软件开发方面的新手在此之前没有任何的技术开发背景的话,这个任务就变得相当艰巨了。


作为要帮助别人的人,你所扮演的是一个非常关键的角色。这是由于你所做的一切将决定这名技术开发方面的新手是否能够走上正确发展的道路。对一名缺乏经验和背景的软件开发新手来说,最需要的就是你的耐心以及丰富的专业技能和经验。在指导这些新手的时候,你不但需要检验什么是他们已经知道的,而且还需要让这些新手掌握他们以前并不知道的内容,并且要为这些人选择合适他们的项目。

训练的开始
有这样一种典型的情况:项目经理告诉你,桌面支持小组的Alex将会加入到你所领导的这个开发小组。之前,Alex已经有了在桌面支持小组中超过两年时间的工作经验,但是他希望能够变化一下自己熟悉的工作,于是就决定把发展方面转移到应用软件开发的领域中来。部门经理希望你能够帮助Alex进入这一领域,帮助他学习如何成为一名软件开发设计人员。在加入到你的小组之前,Alex将会参加一个为期一周的培训课程,这个课程能够帮助他熟悉一下你所领导的小组所使用的开发语言

你必须首先了解这名新组员的一些情况。可以通过向他提出如下的问题来掌握这些情况: 

他对操作系统熟悉到什么程度?是否能够自己解决一些操作系统或软件方面的问题?这些问题在让他调试程序或者面对软件开发所遇到的问题的时候能够有所帮助。
他对产品的认识程度达到了一种什么样的层次?如果他已经和客户一起工作了两年的时间,他应该对客户在使用这些产品的时候会经常遇到什么样的问题能够有比较全面的了解。
他还需要学习有关软件开发的哪些方面的概念?举个例子来说,他在加入你的团队之前所接受的为期一周的培训中应该涵盖必要的相关概念。
在这种情况下,Alex在正式加入你的团队之前必须先参加培训课程。我们非常推荐在新手加入团队之前一定要参加必要的培训课程;这是让这些新手能够了解软件开发所需要的基础与知识的最佳方法,而且可以避免对你团队的工作产生影响。你可以在通过下面这些方法来更好的帮助这名软件设计新手:在他正式参加培训课程以前,应该和他一起讨论并浏览一下课程的内容。一定要向这名新手明确的指出培训课程的哪些部分对于将来参与工作是最为重要的。这么做的目的是为了让这名软件设计方面的新手在参与培训课程的时候能够更好的抓住重点,以便他在将来正式加入到团队中之后能够更快速的掌握各种要领。在经过这种交流之后,应该可以对这名新手现在的水平有了一定的了解,并且可以对他在参加完培训课程之后能够达到一个什么样的水平做到心中有数。

为新手确定第一份任务
新手所接受的第一次工作任务是非常重要的,所以,一定要选择合适的项目来让他完成。就第一次工作任务来说,你所选择任务的类型以及你如何帮助这名新手完成这个项目,都会影响这名新手对这份工作的感觉。

一定要在这名新手正式加入到你的团队中来以前就为他准备好一份合适的工作任务。这么做是为了让这个新来者能够快速的开始工作,也能让他更快速的融入到团队中去。我喜欢让新手们完成这样的工作,比如说让他们把新功能添加到已经准备完成的软件程序中去。这样的做法能够给这些新手们带来以下的好处:

如果让这些新手独自完成编制整个软件程序的工作,通常他们都会因为进展缓慢而对这份工作充满了挫折感。如果只让他们往现有的软件程序里边添加功能则会容易的多。
这些新手可以通过完成这样一件工作来学习资深的软件开发设计人员是如何去解决实际问题的。
这些新手能够通过这样的一份工作接触到优秀的程序编码范例。
如果你希望让这些新手对已经编制完成的程序进行修改的话,你一定要记住下面这些要点:

在这些新手完成修改工作的同时还应该让他们能够学会新的东西,一定不要让他们去做过于复杂的修改工作以避免他们产生挫折感或者感到泄气。
这份修改工作应该具有针对性,特别针对这些新手的情况。作为一名有经验的软件开发设计人员,你一定体会过这种感觉,就是接受了一份看不到曙光的任务,这会让软件开发设计人员的士气变得十分低落。
作为新手的指导者,你应该对分配给这名新手的程序编码非常熟悉。因为在这名新手开始工作之后,他肯定会遇到很多的问题,并且作为他的指导者,他一定会经常向你请教有关这个程序编码的问题,所以,你如果对该程序编码非常熟悉的话,解释起来会简单一些。
对工作任务进行说明
应该通过解释该应用软件的功能并且指明有哪些部分需要被修改来让新手们熟悉工作任务。通过这种比较高层次的全面介绍,能够让负责这项工作的新手知道如何才能开始工作。和新手一对一的讨论这个程序中有哪些部分是需要被修改的。这么做能够让你知道这名新手在之前的培训课程中学会并掌握了多少内容。在这次一对一的会谈中,你应该注意下面的这些内容:

这名新手对进行开发的环境有着何种程度的了解?立即就让他在这个开发环境中开始工作对于一名新手来说并不是一件十分容易的事情。
这个新手对于将要使用的开发语言掌握的到底如何?如果这名新手对于他将要使用的开发语言掌握得并不好,比如说他还不了解其中的变量、条件语句以及循环等等内容,那么软件开发的工作就跟本不可能进行。
一定要注意观察这个新手用多快的速度拿起桌子上的工作说明。这是一种肢体语言,能够让你了解这个新来的开发人员对于你向他描述的项目内容有着什么样的感觉。对于新手来说,第一份工作任务总是令人感到忐忑不安的。但是,你当然不会希望这个新手感觉这份工作任务对他来说太难于完成。如果这名新手看起来对这份工作任务还不是十分的明白,你一定要尽力再向他解释清楚明白。 

让新手进入工作状态

当我向新手介绍新的工作任务的时候,我喜欢在他们的计算机上打开程序编码,并且直接的向他们指明那些需要被修改的部分。这样做有很多好处,首先能够帮助他们确定这些程序编码是可用的,其次还能够让他们知道如何在他们自己的环境对这些程序编码进行编辑。我还会帮助他们找出那些需要被修改的部分,并且告诉他们如何对相关的部分进行修改。最后,我会问:“你认为我们该如何进行修改工作?”

提出这个问题可以让这些新手认真考虑通过什么样的方法来有计划有步骤的解决问题。对于没有从事过软件开发工作背景的人来说,最需要的就是要获得有关项目的足够信息。让他们获得这些足够信息的一个好办法就是直接向他们讲解其中的新功能是如何运作的。在你向他们做讲解的时候,要写下一些解决方案的程序代码或者流程图。我喜欢通过这种方式进行讲解,而且不要忘记在程序代码后边加入注释语句以便在随后真正开始工作的时候能以实际的程序语句代替。不要一次讲解太多的内容;不要忘记这些程序设计人员都是刚刚步入这一领域的新手,他们不可能一下子就做准备面对全部的编码工作。

在和新手讨论过工作内容之后,应该问一问这些新手对于该项目有些什么样的感受。让他们进行充分的讨论并且让他们提出足够多的问题。当你回答了所有这些问题之后,你就可以让这名新手估计一下他完成这项工作需要多长的时间。可能这个新手无法明确的告诉你到底需要多少时间。但是通过这个问题,你可以让该名新手针对工作做出一个时间计划。这个时间计划应该是双方都能够接受的,并且要把工作分割成阶段性的,以便完成每一步骤后都可以向你进行汇报。完成工作所需要的时间应该具有一定的灵活性,因为负责这项工作的是一名新手,所以需要给他时间以便让他能够提升自己的专业技能。 

对新手完成的工作进行总结
当这个新手完成工作任务以后,你应该坐下来和他好好的谈一谈,然后看一看他所完成的程序编码,并且对这些程序编码进行测试。向这名新手询问他都克服了哪些困难。当你和他一起检测程序编码的时候,一定要向他指出有哪些部分的程序编码可以做的更好、更有技巧性。你不要自己动手对程序编码进行修改;让这名新手自己修改他的作品,这对他来说也是一个能够学习更好的编程技巧的大好机会。

结论
帮助新手步入正轨绝对是一件富有挑战性的工作。你不但帮助他们学习编程,而且还需要你帮助他们学习编制优秀程序的技巧,以及解决问题的办法。一下子传授太多的内容会让这些新手们感到力不从心,你提供给他们的应该是他们真正需要的东西。这样,这些新手就会快速的成长为合格的软件开发人员,并且成为你团队中的有用一员。


原文转自:http://www.ltesting.net