新手晋级主程之路

   在一个团队中,有的程序员一点就通。也有的程序员需要项目经理一点一点往前推才能继续。
对于一点就通的程序员通常已经成长为每个项目中的主程。另外的程序员我们权且叫新手。
鉴于国内目前的环境,基本上多数开发需求都是文档不全,产品经理拿到需求,随便写下几个要点。扔给项目经理,项目经理一看,捋起袖子找来程序员就开干了。
这时如果这个功能交给主程开发,这种程序员你只要跟他讲你需要什么样的东西,最后的结果会是怎么样,他仍然能够完成任务,达到最后的效果。
新手程序员拿到需求一看,完全没有碰到过,一下子傻了,完全不知道从何下手。这个时候就等着了,等着项目经理来仔细讲解。这是个什么样的功能,之前在什么地方用到过相同的逻辑,还在什么系统中用到过相同的技术。讲完之后,这个程序员忽然恍然大悟,哦,原来是这样的。可是最后出来的结果呢还是达不到产品经理的需求。
都是同样一个需求,怎么会差别有这么大呢。为什么主程凭着寥寥几笔的需求就能做出产品经理想要的东西,新手虽然项目经理已经给他讲的很详细,可是还达不要求。
为了让更多的新手成为主程,我们观察了一批效率高的主程和新手的工作方式。试图找出他们的不同。
同样的任务分给两个人。
主程开始了,主程一开始也并不知道这个需求要怎么做。他开始在网上搜相关的知识,了解需求上面写的到底是些什么,记录下来、写下了自己的见解。
同时我们发现这个时候主程并不急于写代码。而是接着找到产品经理或者项目经理,通过自己的思考和他们进行再次的去沟通。基本上比较完整的确定接下来所需要做的功能。主程开始干了。碰到了不清楚的地方再次百度和找产品经理沟通。经过多次沟通,反复调整。虽然产品经理只有寥寥几笔的需求,最后主程还是实现了。
新手拿到需求,打开编辑器。立马开始要编码了。再拿需求一看,额,这个要怎么做,没有做过啊。怎么办?
整个人都呆了,完全不知道如何下手了。只有找到项目经理,然后项目经理开始讲解,这是个什么样的功能,之前在什么地方用到过相同的逻辑,还在什么系统中用到过相同的技术。程序员一听好像恍然大悟,立马又开始去写程序了。做了一部分,哦。又不行了。这个时候项目经理又帮忙了…一次、两次、三次。周而复始。最后也做出来了。可是主程已经做了另外的两三个功能了。新手才刚刚完成。而且最后程序员崩溃了,项目经理也崩溃了。
我们发现同样是程序员,主程其实没有比其他人聪明多少。人嘛,都是一个肩膀扛一个脑袋。看过两种程序员的工作方式,其实我们就完全可以看出为什么有的人是主程,有的人是新手了。
我们发现主程总是自己去挖掘需求中没有被发现的点,同时自己去找到解决的方法。亦步亦趋,最后完成产品经理所需要的功能。
新手总是开始写代码,不知道怎么做了就找项目经理。不清楚了也找项目经理。项目经理让他怎么做,他就怎么做。让他怎么写代码,他就怎么写代码。项目经理就是他坚强的后盾。后面我们发现这个好像是项目经理借他的手实现一样,但是代码还写的乱七八糟。
我们发现这种程序员其实只不过是项目经理的一个傀儡而已,完全没有自己的思想,完全就是替项目经理敲敲代码而已。
从这个试验中我们发现主程做事情总是很主动,新手总是依赖着项目经理。完全等着项目经理来推动,甚至推都推不动。细细想来,可能这就是主程和新手的差别了。
人,总是会有依赖性。有的人天生依赖性强,有的人天生依赖性弱。我们试图找到一种方法,让天生依赖性强的程序员也能很好成为主程。
我们发现依赖性强的程序员不是能力不够,可能只是做事情的主动性不够或者方法不对。
思考良久,我们发现很难从程序员身上去改变。我们试着从项目经理身上开始着手。
孔子讲,育人应该因材施教。
同样,我们认为项目经理带领团队的时候也需要因材施教,只有如此,才能够培养更多的主程,培养更多的使用顺手的人。
我们开始让项目经理换一种方式和新手沟通。
每次新手来问问题的时候,先让新手自己讲出自己的想法和自己的解决方案。
新手开始有点不习惯,可是几次之后我们发现新手的问题越来越少了,做的功能开始接近产品经理的需求了。
四五次之后。我们发现新手几乎不问该怎么实现了,好像突然之间换了个人。开始自己一个人思考,一个人去完成。
这个时候,新手已经在通往了主程的路上了。
我们成功了,我们又多给项目经理培养了一个主程替补。
       经过多次试验,我们终于找到了一条更好的培养主程的方法。
与其一直推着程序员去走路,不如推着程序员学习怎么走路,然后程序员自己上路。项目经理每次只需要引导程序员去思考,而不是去教导程序员如何实现。授人以鱼不如授人以渔,何乐而不为。
同样新手,自己学会主动思考,摒弃自己的依赖性,离主程就不远了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注