我知道结对编程是一种敏捷的软件开发技术,其中两个程序员在一个工作站上一起工作。一个是驱动程序,编写代码,另一个是观察程序,查看键入的每一行。
但是我只是想知道这种策略在这种情况下是否仍然有效。例如
- 如果他们有非常不同的编程技能水平。
- 如果一个人从未在问题领域经历过,而另一个人则在经历过。
- 如果他们的编程技能水平低,还可以吗?
您能建议上述情况下的结对编程策略吗?
我知道结对编程是一种敏捷的软件开发技术,其中两个程序员在一个工作站上一起工作。一个是驱动程序,编写代码,另一个是观察程序,查看键入的每一行。
但是我只是想知道这种策略在这种情况下是否仍然有效。例如
您能建议上述情况下的结对编程策略吗?
Answers:
假设这对中较有经验的人具有指导另一个人的气质,将在语言或问题领域经验不足的人与有经验的人配对将有助于知识转移。经验不足的人将有一位指导者,以指导他们了解团队的语言,领域,应用程序以及最佳实践或惯例。
C2 Wiki上有一个有趣的关于使用结对编程进行知识转移的摘要。被任命为团队指导者的高级人士从初级程序员那里学到了很多东西,并且由于与更多初级,经验不足的软件开发人员结伴而获得的知识甚至有所增加。还有一些关于专家程序员与领域专家配对的故事。
这正是用例对编程的目的:在老胡须和年轻蚱hopper之间共享经验。
这是双向的分享:敏捷昆虫对风湿性大脑有很多教导。
当我晋升为目前的团队时,我是J2EE的新手,但我是该领域的专家。我的大四(新的团队负责人)精通J2EE,但不擅长平台。
我认为我在这四个月中通过结对编程对Java2EE有了更多的了解,而不是读一本书,团队负责人也了解了该平台。
两者之间的经验差距是配对编程恕我直言的关键。
我将描述我的经验,并尝试从中获得一些“策略”。
我曾经与一个完整的非程序员进行配对编程。他是我们开发的软件产品主题方面的专家。相反,我在问题领域没有经验。他现在也是我的主管(我知道这听起来很奇怪:)
这种方法的主要好处是,我不得不从他的知识领域来解释许多事情的实现,从而确保实现的正确性和他对过程的理解,这意味着他明白为什么要花这么长时间。
另一个好处是可以轻松地专注于任务,而不会分心(哈哈,想象一下在老板的鼻子前打开Twitter)。
然而,有时甚至是令人生畏的,因为即使是下午茶时间也变得相当“分散工作”(不是从他的观点;要求休息等等只是不方便)。
因此,这并不是真正的成对编程,因为他几乎无法像输入的那样检查代码。但是,这似乎是一个明智的策略(至少有一段时间)。由于开发方法(我的意思是,没有涉及像OOP模式之类的复杂软件设计技术)和主题的相对简单性,它最终根本无法工作。如果我们必须开发一个编译器,这是行不通的。我相信,如果非程序员观察员参与了明确定义的小片段的开发过程,它仍然可以工作。说,让他看一个函数的编程“通过给定算法从Y和Z计算参数X”是可以的,但是让他看整个系统的设计过程可能并不那么好(这意味着软件体系结构的开发,即类,
如果他具有一些基本的程序员技能,我认为它会更好,因为我不必解释“数组是什么”。
希望能帮助到你 :)