pair programming (结对编程)

10
结结结结 Josh Chen [email protected]

Upload: josh-chen

Post on 15-Apr-2017

1.335 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Pair Programming (结对编程)

结对编程

Josh [email protected]

Page 2: Pair Programming (结对编程)

简单介绍Pair Programming ,是很奇妙东西,是目前工程界最时髦的思想,但是一般工程人员不好接受的东西。 Why ?

– pair programming 会打破一个人工作的界线 。– 传统的软体工程讲求 人 / 时间。- 工作方式的转换。 目前一般人的工作方式会常常切换到不同的工作 window ( QQ , editor ,

email , browser),Pair Programming 强调 focus 在 coding 。

Page 3: Pair Programming (结对编程)

结对(想象画面图)

Page 4: Pair Programming (结对编程)

好处• 保证质量,高质量保证开发时段涵盖了软件开发的整个生命周期,不容易出问题• 团队协作,高效地找出代码中的问题。• 老带新,快速进入状况。• 互相学习大家开发的思维,方式,增加开发效率• 可以不用那么多的文档。

Page 5: Pair Programming (结对编程)

调试期• 对于有不同习惯的编程人员,可以在起工作会产生麻烦,甚至矛盾。• 有些工程师喜欢单兵作战。• 不同的工程师会不同的解法,可能会对问题各执己见。• 有经验的老手可能觉得指导新手很麻烦。• 新手在面对老手时会显得的紧张和不安,而出现低级错误。

Page 6: Pair Programming (结对编程)

开发流程• Resource * 1

• Resource * 2

设计 撰写代码 CodeReview 除错 维护

设计 撰写代码Code Review训练 除错 维护 * 2

交接

交接

绿色代表成本变小红色代表三合一

Page 7: Pair Programming (结对编程)

Pair 如何简化工作

https://plus.google.com/107296425380776996003/posts/6UskQJPKc4S

绿色代表简单化Naming things 49%Explaining what I do (or don't do) 16% Estimating time to complete tasks 10% Dealing with other people 8% working with someone else's code 8% Implementing functionality you disagree with 3% Writing documentation 2% Wrtiing tests 2% Designing a solution 2%

Programmers' Hardest Tasks

Page 8: Pair Programming (结对编程)

需要结对编程的地方• 1. 东西复杂度高,需要一起讨论的设计。• 2. 还没有形成架构。• 3. 系统中重要的点,需要 2 人以上维护。• 4. 需要透过结对编程来训练团队 member 。

Page 9: Pair Programming (结对编程)

实践方法• 1. Leader 在接到 project 后开始拆解 project 。• 2. 分解成细部的 task ,并定义出那边需要结对编程,结对编程的目的意义。• 3. 指定参与结对编程的目标人员。• 4. 针对细部的 task 开始做前期的讨论与设计(分成 Owner 跟 sup

porter , 通常 Supporter 为资深人员)。• 5 如果讨论的结果有争论可以寻求 Team 的共同讨论。• 6. 通常由 owner 开始 coding , supporter 负责支持。不过在一定时间。 两两交换。• 7. pair 一次的时间大概以 50 分钟集中火力工作,在休息 15 分钟,反复开始。• 8. Supporter 需要有可以有上网查询资料的方法。 • 9. 在做 pair programming 的时候尽量排除其它人的打扰,关闭 QQ ,停止接收 email ,或者回信等等事项,专注在 coding 本身。 其他事情,可以等非 pair 的时间在做。

Page 10: Pair Programming (结对编程)

避免• 避免全程 Pair ,比较好的是必然说一个礼拜三天,或者一天 X 小时。• 区分 Owner 和 Supporter 的职责 ,每一个

task 还是需要有负责人。• 避免为了 Pair 而 Pair 当产生适应不良的状况,请反映给主管。