17611538698
webmaster@21cto.com

敏捷开发:结对编程成功的五个技巧

资讯 0 3196 2018-03-14 12:02:38

640.jpeg

互联网公司研发部门经常都面临着巨大的压力:为了跟上硅谷的创新步伐,成功并快速地实施公司或者客户的产品,以尽快实现商业模式,我们必须更快地开发新的代码。为此,我们需要重新定义游戏规则,提高生产力和利用团队内协同效应,有一种可能的方法叫做结对编程(Pair Programming)。
 
也许您也听过这个名词,这种开发方法已经存在了很长一段时间,但它现在在开发团队中扮演越来越重要的角色。
 
坦白说来,两个人的头脑结合在一起反应更快,也能有更好的成果,比如更高质量的代码,更少的bug。此外,团队精神通过合作得到加强,工程师们更改善了时间管理。
 
不可小觑程序员们的动力,如果他们喜欢工作的话。
 
诚然,结对编程在项目开始时会增加开发成本。管理者须注意以下几点:结对编程可以显著降低后续成本,因为它减少很多bug的产生。Facebook和Square等已经在采用新的工作方法,Square最近透露,其15%的开发工程师已经结对工作。
 
特别是对于复杂的代码,比如四个人的眼睛明显好于两个人,那么结对编程是一个潜在的高风险工作,高质量代码可以更快地投入到运营,以及需要新开发的任务。如果程序员已经使用了类似的技术,他可以给其他程序员分享知识,并将建设性的建议纳入常见的任务中。
 
为什么结对编程会成功,应该避免什么问题?
 
以下5个提示让结对编程在您的项目管理中取得成功。
 
1.同时开发相同的代码
 
优秀的程序员会不断交流关于代码设计和新想法,共同致力于下一步的开发。结对编程开发人员使用两个键盘,两个鼠标,共用一个屏幕和一台电脑。开发者控制并编写代码,扮演飞行员的角色,另一位担任导航员的角色,专注于确保代码是正确的,并考虑改进应用程序的设计,遵循最佳实践。
 

641.jpeg

 
 
其实也没有固定的角色分配,以半小时的节奏,角色互相交换。让两位程序员都保持动力和细心。同样,Partner也会随时变化。这将确保大家更饱满的动力。
 
2.根据任务将开发者分组
 
根据任务决定团队分组是有意义的。谈到知识和技能转化,初级和高级程序员应该共同努力,以获得最佳的学习体验。但是,如果要求代码质量,避免错误或者开发困难的任务,应该是两位高级程序员一起工作,这保证了高效率和低错误率。
 
如果不是把知识转移到初级阶段,那么通常确保项目合作伙伴具有平衡的专业能力。否则,合作伙伴可能会迅速进入低谷,从而抑制行动力。
 
合伙伙伴也要经常动动,互相适应。
 
3.小组会议鼓励团队精神和创造力
 
每天约三到五分钟的短会,所有的同事聚集在一起,交流想法,这样可以更好地激励团队。在我的团队,我们每天早上进行这些简会。
 
首先,我们一起吃早餐,然后我们一起来讨论当前项目的细节。有时候甚至整个团队的整行代码都会被分组讨论。共同吃早餐是一个重要的因素,整个办公室遵循相同的节奏。此外,每个员工都有机会进行互相个人接触,这对于团队合作有积极的促进。
 
4.与产品经理密切联系
 
在软件开发的早期阶段产品经理也需要参与其中,这让程序员对需求有更好的理解。比如,如果要开发数据分析应用以更好地了解客户的行为,那么程序员被证明可以直接开发更智能的应用程序。开发者的优点是可以不断地给出反馈意见,并就应用的工作方式提出新的想法。
 
5.测试,测试再测试
 
针对结对编程中的bug,开发者应该通过测试驱动开发(TDD)确保所开发的软件确实符合要求。这个过程是基于一个非常短的开发周期不断重复:开发人员首先模拟测试错误的代码,然后再开发一个足以通过测试的代码。最后,修改代码以符合标准。
 
4.结对编程时应避免使用的注意事项
 
1)在编程工作中分心
 
如果两个程序员一起工作,每个人都必须自己自律并遵守团队纪律。从邮件,社交网络或电商购物等处分心,不仅阻碍程序员自己的进步,而且阻碍其合作伙伴的进步。因此,休息和工作应该严格区分,并有明确的时间段。
 
2) 担心可能的错误
 
结对编程结合了两个人的知识来解决问题。如果开发者有一个人首先提出问题的解决方案,合作伙伴就很难开创新的局面。
 
所以,软件必须定期测试,对新开发的代码微调,直到一切正常。合作伙伴对其它解决方案持开放态度并且不拒绝替代想法,是必要的,也是格局之所在。
 
工作的建设性须始终处于关注的中心,在保护自己的观点和在错误的时间保持沉默,广泛讨论的结果可能适得其反。
 
3) 规律休息
 
结对编程既耗费精力和精力,开发人员每天工作八小时,工作非常集中,他们的行为直接影响到合作伙伴。因此应该定期休息一下,放松眼睛,也放松大脑。在我的团队,很多程序员在指定的休息时间里打乒乓球,在这段时间里对软件进行测试。
 
4.无声的工作
 
协作编程最大的好处之一就是在团队之间共享知识。与我们最好的Partner不断沟通谈话,一起互相学习和反馈,提供建议与解决方案。驾驶员和导航员相互适应,了解对方的思路。如果存在歧义或差异,则应该进行适当的调查,并一起讨论纠正偏离的方法。
 
小结
 
目前,越来越多的公司寻求最佳的敏捷软件开发机会,结对编程这一方法正在迅速扩散。同时还有其它的工作模式也同样有帮助。需要我们对编程有很好的经验,开发者更加高效,专注,积极主动,软件的质量更高,产品也更加创新。
 
 


作者:Michael Ramsperger
编译:21CTO社区 - 谷园
来源:https://entwickler.de/online/a ... .html


评论