`
gxrocky
  • 浏览: 32153 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

结对编程的误区

 
阅读更多

 

 

一、领航员误区

 

1. 发号施令者

喜欢发号施令的人总是对敲键盘的人说:“到末行,加个反括号,然后…”。他不去关注解决方法和下一步该怎么做,而过度关注一些编程细节。

事实上,他希望他自己来掌控键盘。所以当你碰到一个喜欢发号施令的人,那么将键盘交给他吧,转换领航员的角色。

 

2. 拼写纠错者

拼写纠错者坐在你旁边,纠正你输入的每个错误字符。当然,他没有时间来真正的进行导航。

和纠错者商量一下,当他给你纠错的时候让他请你喝一杯咖啡(或者任何你想要的东西)。

 

3. 吹毛求疵者

吹毛求疵者会指责你写的每行代码。当他的意见正确时,他会一意孤行,不用你已经写好的代码,而完全照着他的想法。

就如自由爵士音乐人都是复用其他乐队成员的音符,来构造成一首曲子一样,好的结对编程也应基于现有的基础上进行推进。

试着转换角色,也许吹毛求疵者就会变成一个目中无人的人。

 

4. 默不作声者

默不作声者是那些几乎不发表意见的人。他仅仅坐在那里看着你工作。

试着问下他对你的方法有什么意见,或者问他下一步该写什么测试代码。

 

5. 心不在焉者

心不在焉的人企图让你分心,而不是提供给你有建设性的意见,帮你解决问题。

那么让他离开吧,比起一个让自己分心的人而言,不如一个人编程。

 

 

 

二、实施者误区

 

1. 深藏不露者

深藏不露者仅仅自己敲着代码而不告诉别人他在做什么。领航员不得不靠自己去弄懂代码。关于该用什么方法,该选择哪种设计,领航员和实施者之间完全没有交流。

领航员需要问问深藏不露者关于他的计划或想法。

 

2. 目中无人的人

目中无人的人通常忽略领航员的所有建议,大多数是因为他们觉得自己的想法或编程技能更胜一筹。

当碰到一个目中无人的人时,立即停止结对编程吧,开始下一个任务吧。自大的人往往也不会是个好的领航员。他们很可能变成发号施令者或是吹毛求疵者。

 

3. 不知所措的人

不知所措的的人往往不习惯结对编程,非常紧张,不能掌控全局。

确保自己的领航员角色做到最好。小心的提出意见,对于不知所措的人主要给予鼓励。

但是,大多数程序员开始都是这种情况。所以,不要对他们的结对编程期望太高。让他们首先成为一个领航员,或者让能够很好的处理人际交往问题的领航员在他们旁边。

 

4. 跳跃性很大的人

跳跃很大的人喜欢在代码中进行大范围的跳跃,这样领航员不知道进行到哪里了。

领航员需要让他慢下来,问他关于他的计划,并确保自己比他知道更多的快捷键。

 

5. 不熟悉工具的人

不熟悉工具的人不知道开发环境的快捷键,效率非常低。

交换角色吧,让他看看你的技巧。或者打印一张印有快捷键的cheat sheet。

 

分享到:
评论

相关推荐

    蓝青工程师徒结对徒弟发言稿.docx

    这包括对新技术的了解,对编程语言的深入理解,以及对软件工程流程和最佳实践的掌握。 【敬业精神、奉献精神、创新精神和创业精神】是IT行业从业者应有的品质。敬业精神体现在对工作的专注和专业;奉献精神意味着...

    敏捷软件开发.pdf

    XP是一种敏捷软件开发方法,它在预算和时间限制下,教导开发人员如何利用迭代计划、持续集成、测试驱动开发、重构和结对编程来完成软件项目。 敏捷宣言是敏捷运动的基石,提出了一系列价值和原则。宣言中强调了个体...

    软件质量管理-第三章ppt课件.ppt

    结对编程是一种两人共同协作完成任务的方式,其中一人编程,另一人即时进行审查。同行检查和特别检查则更为灵活,可以用于不同正式程度的评审。选择合适的评审类型,能够更有效地针对不同风险程度的工作成果,例如高...

    XProgrammer16.pdf

    XP 方法论的核心实践包括结对编程、测试驱动开发 (TDD)、重构等。 - **结对编程**:两名开发者共用一台电脑共同编写代码的过程。这有助于提高代码质量并促进知识共享。 - **测试驱动开发 (TDD)**:一种软件开发方法...

    Software Design Principles and Guidelines

    XP 包含了一系列具体的实践,比如结对编程、持续集成、重构等,目的是提高软件质量和开发效率。 #### 设计指南 **动机:** 设计阶段的目标是将整个系统分解为模块,并明确各个模块之间的关系,最终形成一个结构...

    软件工程题库,软件工程题库2024

    - **理解**:结对编程的效果取决于团队成员的能力,而非最低水平的成员。 7. **软件开发模型**: - **瀑布模型**:单向不可逆的线性开发过程。 - **RUP(统一软件过程)**:每个阶段由多个迭代组成的大规模迭代...

    Agile Testing Overview

    3. **结对编程**:两名开发者共同编写代码,可以即时进行代码审查和学习。 4. **验收测试驱动开发 (ATDD)**:与业务代表紧密合作,明确需求并通过验收测试确认实现。 5. **探索性测试**:鼓励测试人员自由探索应用,...

    软件测试之美_(美)梅尔斯

    - **结对编程**: 两位开发者一起工作,一人编写代码,另一人审查,有助于提高代码质量和发现潜在问题。 - **互联网应用系统测试**: - **负载测试**: 模拟高并发访问情况,测试系统在压力下的表现。 - **安全测试...

Global site tag (gtag.js) - Google Analytics