关于结对编程的问题‏——零基础新人

昨天在智联联盟的敏捷沙龙上分享了结对编程的经验。今天有同仁发邮件询问关于结对编程中新人的问题。我回答了他的问题。

以下为具体内容。

问题

您好,昨天听了您的讲座,有一些关于结对编程的问题想问您,谢谢您在百忙之中查看: 
您提到要水平相近的人结对,而且结对的时间不能太长,我们团队目前遇到的情况是,新加入一名员工,完全不会开发,没有和他水平相近的人,我们要选什么样的人和他结对? 
这个新员工在最开始的两周时间内,全天都要和别人结对,可是您说结对的时间不能太长,但是如果他只和别人结对2小时,其他的时间他自己开发,又编不出代码,面对这种情况,我们怎么办呢? 
谢谢您!

我的回答:

你好。你问的这个问题估计在很多团队都会遇到。总的原则是,先把人培养起来,从易到难,从简单到复杂,循序渐进。


这个新人完全不会开发,这就很难找到和他匹配的人。除此之外,对于开发语言、开发工具、开发流程、具体编码规范、产品特征、功能等估计他也不会熟悉。所以只能用零基础人员的要求来给他安排工作。大家结对,他只能跟着别人看。

所以,需要先把基础问题解决掉。先让他熟悉开发语言,自己动手写写程序,熟悉开发工具,熟悉流程。如果有什么问题,要赶快问别人。在最初阶段问题越多,越不耻下问,成长得越快。这个时间估计两周到一个月。这段时间是学习阶段,完全不能期望他有什么代码产出。期间要让他多看现有的代码,学习编码规范、代码的结构、产品架构等基础。如果有可能,当别人Pair的时候,可以带着他一起看看,让他在旁边看着也行。也可以让他做一些测试的工作。但要清楚的是,让他做测试是为了学习产品的功能、逻辑、架构等基础内容,不是就让他做测试。所以要通过测试学习产品的基本知识。

等他有了一定的编码基础,可以把最简单的缺陷修复等开发工作安排给他。做的时候,和别人结对,让别人看着,主要是帮他纠正编码中的错误,领他上路。还有就是比较简单的用户故事也可以给他做,做的时候和别人结对,可以轮换,但主要还是由他来开发,因为这个阶段的目的就是提高他的编码能力。做的越多,成长的也就越快。这段时间因人而异,一个月到两个月都行。如果时间太长了还成长不起来,那可能这个人真的不适合做编程工作。需要再考虑了。

还有就是和谁结对。一开始就可以给他指定一个导师/师傅,负责教他编码。这个过程中,可以主要和导师结对。也可以和别人结对,不过要保证完成一个任务之后再换。换得太频繁反倒不太好了。结对的目的也是为了学习和成长。结对的时间也可以调整,不一定非得要2个小时,累了可以休息,轮换一下,以做完一个任务为限。别人Pair的时候,他可以不Pair而自己独立写写代码什么的。写完的代码要别人review,给出建议,进一步帮他提高编程能力。

当他能够独立做些小的任务的时候,可以适当增加较难一些的任务。还是结对编程做,就可以轮换着做。Manager或者导师要观察这个人的成长情况,到什么程度了,不断检查和鼓励,看情况再相应安排工作。

对于零基础的人,不能用成熟程序员的要求来安排任务。对他来说,最重要的是快速成长起来,能够开展工作。无论是结对还是不结对,只要能让他快速成长就行。还有,人的成长都是需要时间的,太着急也不解决问题。只要能看到进步,就还好。

希望对你有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值