`

敏捷开发松结对编程之一人员结构

阅读更多

传说中的结对编程,大致结构是两个人共用一台电脑,一个开发,一个测试,以随时评审来抵消返工时间损失。

传说归传说,谁也没有见过。问题出在哪里?有两种主要原因。

一是来自高层的,高层感觉两个人只有一个人干活,实在是有点浪费。“评审抵消返工时间”虚无缥缈,但每天只有一个人干活却是现实情况。

二是来自基层的,两人若有高低,高手肯定觉得还不如我一个人干的快;两人若旗鼓相当,难免产生争执。

其实在我们身边一直有一种方法很像结对编程:“师徒制度”,就是每个新人来到公司,都指派一个师傅带着,在技术与业务方面提供指导。他们既不用一台电脑,也不是老死不相往来,这其实就是一种“松散”的结对编程。只不过多数企业虽然有这种制度或实践,但却很少有很清晰的定义,难免限制了这种实践的效果。本系列的目标,就是从人员结构、计划实践、日常工作实践、绩效考核等各个角度,来完整地思考和建立这种制度。

-------------------------------------------

挑选小组长(师傅)基本原则

乐于助人,有责任心,善于沟通,擅长管理,技术精湛,业务精通……很可惜,好词汇越多,越难找到符合的人。不过,一些基本原则还是要考虑的:

1. 尽量找对业务有兴趣的人

整体上偏业务的人未来有更好的发展(这是我2001年的上司的原话,事实证明很对),由于有行业壁垒也较少跳槽。由于小组长角色未来将被提拔为更高的项目经理、产品经理,对业务的了解也会为此做好铺垫。

2. 尽量找善于沟通的人

善于沟通的程序员成长更快(还是那位上司的原话),也更能帮助别人成长。

挑选组员(徒弟)基本原则

1. 徒弟能力一定要低于师傅(应该说:师傅一定要高于徒弟)

很常见的一种做法是把几个水平相当的人放在一起工作,认为这样他们可以互相学习,其实不然。

之前我们在的项目组经常发生技术“争论”,发生的次数多了,我们发现一个规律:每次争执不下的,都是两个技术相当的人,而每次争执的解决,都是一个水平更高的人给出一个截断众流的方案,然后大家散去。

2. 徒弟年龄不要太大

如果有两个水平相当、月薪要求都是6000的程序员,当然找年轻的了,有发展潜力,后劲足。

挑选组长(大项目经理)基本原则

1. 项目经理必须喜欢业务胜过技术

项目经理是掌舵的而不是干活的,因此必须对业务有深刻理解。

2. 项目经理最好精通技术

这里不讨论是否存在“不懂技术却精通管理”的项目经理,但是如果目标是项目成功而非证明奇迹的确存在,项目经理应该首选那些从小组长成长起来的既懂业务技术又精湛的人选。

这里的“精通技术”不是从技术实现层面考虑的,而是从“技术想象力”层面考虑的,就是说他必须能想象到有某种技术存在。比如以前我们遇到一个程序员写了一大堆重复代码,原因就在于他的想象力受到了局限,明明有虚函数、模板等各种方法来简化代码,却没有想到。“没有学到”是无法避免的现实情况,但“没有想到”是可以避免的。

团队结构和运行理念

既然待在某个“位置”上,每个人必有不同的职责。这里就不一一列出了,因为猜都猜得出来(比如师傅要带徒弟之类)。下面只列出松结对编程与一般小组的核心差异。

1. 对每个小组(师傅+1~3个徒弟)整体考核

也就是师傅要负责到底,不能出现“他刚来所以把事情办砸了”的情况。这里的负责到底,包括计划、估算、跟进、进度、质量、徒弟成长……等一干事情,本系列的其他文章中都将展开描述。

2. 在工作中学习

尽管“松”,但还是“结对编程”,学习和指导过程实在生产过程中集成的,因此师徒关系的成败不只是人员成长,还包括任务和项目的成败。这首先是一个生产团队,其次才是学习团队。

------------------------------------------------

人员挑选好了,接下来就是要进行计划、跟踪等日常工作


ref:http://blog.csdn.net/cheny_com/article/details/6581517
分享到:
评论

相关推荐

    结对编程——敏捷开发.pdf

    结对编程——敏捷开发.pdf

    论文研究-结对编程开发人员之间若干关系问题的探讨 .pdf

    结对编程开发人员之间若干关系问题的探讨,王鹏生,,本文介绍了敏捷软件开发方法XP中关键实践之结对编程在实践中的应用,并指出了结对双方在人员关系问题上的若干问题,给出处理的参�

    自组织团队与松结对编程 陈勇 2011-09-18

    2011-10-12在微软tech ed大会上的讲稿

    敏捷软件开发原则、模式与实践.pdf

    这本综合性、实用性的敏捷开发和极限编程方面的指南,是由敏捷开发的创始人之一所撰写的。  ·讲述在预算和实践要求下,软件开发人员和项目经理如何使用敏捷开发完成项目。  ·使用真实案例讲解如何用极限编程来...

    交换编程-结对编程的延伸实践

    交换编程-结对编程的延伸实践 交换编程-结对编程的延伸实践

    敏捷开发的艺术

    , 作为一名非开发人员,我应如何同敏捷团队一起工作?, 产品的路线在哪里?, QA应该如何参与进来?, 本书教你如何采用XP实践,详细描述了每一种实践,然后讨论了一些原则,使你可以更改XP并创建自己的敏捷方法。尤其是...

    分布式结对编程技术pdf

    介绍分布式结对编程技术和组织策略、存在问题和实验研究

    结对编程与应用

    是软件工程中结对编程与应用的描述与实现方法

    2020级计算机系软件工程第二次结对编程作业.zip

    2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件...

    在C#复杂的项目开发中使用结对编程

    在开发软件项目时,不仅写出相应功能的模块很重要;确保写出的模块的易维护性(bug 修复,代码重构)也同样重要。 主打互联网技术和门户...为了避免这种情况发生,他们决定在开发复杂模块时试验性地使用结对编程。

    敏捷软件开发:原则、模式与设计

    这本综合性、实用性的敏捷开发和极限编程方面的指南,是由敏捷开发的创始人之一所撰写的。 [b][font color="#ff6600"]特色内容: ●讲述在预算和时间要求下,软件开发人员和项目经理如何使用敏捷开发完成项目。 ●...

    敏捷软件开发原则,模式与实践(中文)

    这本综合性、实用性的敏捷开发和极限编程方面的指南,是由敏捷开发的创始人之一所撰写的。 ·讲述在预算和实践要求下,软件开发人员和项目经理如何使用敏捷开发完成项目。 ·使用真实案例讲解如何用极限编程...

    敏捷软件开发:原则、模式与实践(高清中文版)

    这本综合性、实用性的敏捷开发和极限编程方面的指南,是由敏捷开发的创始人之一所撰写的。1.讲述在预算和实践要求下,软件开发人员和项目经理如何使用敏捷开发完成项目;2.使用真实案例讲解如何用极限编程来设计、...

    敏捷软件开发:原则模式与实践

    原则模式与实践》是综合性、实用性的敏捷开发和极限编程方面的指南,讲述了在预算和时间要求下软件开发人员和项目经理如何使用敏捷开发完成项目:使用真实案例讲解如何用极限编程来设计、测试、重构和结对编程;...

    XP实践结对编程demo

    XP实践demo for http://blog.csdn.net/nomad2

    敏捷软件开发-原则、模式与实践

    这本综合性、实用性的敏捷开发和极限编程方面的指南,是由敏捷开发的创始人之一所撰写的。 讲述在预算和时间要求下,软件开发人员和项目经理如何使用敏捷开发完成项目; 使用真实案例讲解如何用极限编程来设计、测试...

    敏捷软件开发:原则、模式与实践

    这本综合性、实用性的敏捷开发和极限编程方面的指南,是由敏捷开发的创始人之一所撰写的。1.讲述在预算和实践要求下,软件开发人员和项目经理如何使用敏捷开发完成项目;2.使用真实案例讲解如何用极限编程来设计、...

    结对编程.zip

    结对编程

Global site tag (gtag.js) - Google Analytics