软件工程讲义 3 两人合作(2) 要会做汉堡包
[上回书说到这里: http://www.cnblogs.com/xinz/archive/2011/08/07/2130332.html ]
很多同学憧憬在大型软件团队中和各式各样的人打交道, 推动项目进展, 但是他们往往连一对一的合作的技巧和经验都很缺乏。 请问, 从小学到高中, 大家有没有练习过 1:1 的合作?
上课? 没有, 常听到的是 - 请不要和同桌讲话!
考试? 有哪一个考试是两个人可以合作完成的? 好像没有。
如果两人吵架, 我们经常听到的是 - 我要告老师!
在同学成长的过程中, 大部分的关系都是上下级的 老师对学生, 家长对小孩… 有权威的一方一般是以 “命令/指导 + 检查/评价” 的方式来推动事情的进展。 但在社会上, 很多工作都是在和人的竞争, 合作, 讨价还价, 反馈 … 完成的。 一言以蔽之, 就是和人打交道! 有一些学习很好的同学对此有恐惧感, 我经常听到这样的表达:
我就是想深入技术, 成为某一技术的专家, 不想管人, 最好不被别人管。
在一个机构中, 免不了有上下级关系, 但是更多的情况是合作的双方没有明确的上下级关系, 也没有明确的领导与服从的角色。 这在软件项目中更加常见, 这个时候你要主动叫别人做事情,还是被动让别人安排事情? 如果项目进展不如你的预期, 你如何提醒同伴? 如果两人有争执, 你是否会说 - 我要告诉老师! 我要告诉领导!? 在团队合作中, 处于平等地位的团队成员要通过 “影响 + 反馈” 来影响同伴。
影响 (Influence)
同学们可以试一试用下面这几种不同的影响方法。
表11-2
方式 |
例子 |
逻辑/感情 |
推/拉 |
注解 |
断言 (Assertion) |
就是这样吧,听我的,没错! |
感情 |
推—— 主动推动同伴做某事 |
感情很强烈,适用于有充分信任的同伴。语音、语调、肢体语言都能帮助传递强烈的信息 |
桥梁 (Bridge) |
能不能再给我讲讲你的理由…… |
逻辑 |
拉—— 吸引对方,建立共识 |
给双方充分条件互相了解 |
说服 (Persuasion) |
如果我们这样做,根据我的分析,我们会有这样的好处,a、 b、 c…… |
逻辑 |
推—— 让对方思考 |
有条理,建立在逻辑分析的基础上。即使不能全部说服,对方也可能接受部分意见 |
吸引 (Attraction) |
你想过舒适的生活么?你想在家里发财么?加入我们的传销队伍吧,几个月后就可以有上万元的收入…… |
感情 |
拉—— 描述理想状态,吸引对方加入 |
可以有效地传递信息,但是要注意信息的准确性。夸大的渲染会降低个人的可信度 |
在软件工程课上, 同学们最喜欢的方式是 “说服”, 也许是理工科的缘故吧。 其实其它方式也很管用。 试想 - 深夜, 宿舍着火了, 大家都往外跑, 你的室友还在为穿哪一件衣服出去而犹豫不决。 这时你会选哪一个方法? 桥梁? 说服? 吸引? 还是断言?
反馈 (Feedback)
“哪个人前不说人, 谁人背后无人说” - 在人后对人评点是我国人民的优良传统。 这姑且可以算是“简洁反馈”, 因为这些反馈最终也会添油加醋, 拐弯抹角地传到本人耳朵里。
但是, 我们有没有对老师, 家长, 同学 做过一对一的反馈? 很少。 恋人之间倒是有很多, 不过由于恋爱时荷尔蒙水平太高, 人脑处于不太理性状态, 因此不在讨论之列。
反馈就是告诉对方你对ta 的感想, Shrek 说过, 人都像洋葱一样, 有很多层次, 你要针对哪一个层次反馈呢?
最外层: 行为和后果
中间层: 习惯和动机
最内层: 本质和基本属性
例如王屋村的果冻邀请邻村的姑娘荔荔去听音乐会, 荔荔在音乐厅门口左等右等, 音乐会开始 5 分钟之后果冻才赶到。 这时荔荔可以给果冻三个层次的反馈。
最外层: 行为和后果
果冻, 你迟到了, 让我很着急, 我们现在进不了会场, 只能在外面等第一幕结束。 我们错过了精彩的表演!
//注: 当反馈是关于行为和后果时, 行为可以改正, 后果可以弥补, 对方还是有挽回局面的机会。
中间层: 习惯和动机
果冻, 你怎么又放我鸽子, 我的几个闺蜜都进去了, 就我被晾在外面, 你是故意耍我! 让我丢人!
//注: 当攻击上升到习惯和动机, 被攻击的一方就比较难表白并且澄清动机。
最内层: 本质和基本属性
果冻, 你太自私了, 都想着你自己和你那破软件项目! 你们王屋村的男人没一个好东西! 自私!
//注: 当攻击深入到核心, 被攻击一方已经无法回应, 因为攻击的目标 [王屋村的男人] 是自己无法改变的。 或者无从下手的 [自私]。
任何人都不是完美的, 都有可以改进的空间。 在软件工程的合作中, 合作伙伴同样会有很多意见要告诉同伴, 有技术上的, 也有合作方式上的, 也有为人处世上的, 说不定还有感情上的。 我们就拿最简单的代码规范来说吧, 假设果冻无意中使用了 Tab 缩进 的风格, 他的同伴小飞很不爽, 因为小飞是主张 4个空格 的风格。 小飞会怎么提意见呢?
最外层: 行为和后果
果冻, 我注意到你写程序的时候使用 Tab 缩进, 我们当初在团队规范的时候说好了是用 4 个空格。 如果个别人使用了不同的风格, 以后大家在阅读,修改代码的时候就会有很多不方便的地方. 同时我们制定的这么简单的规范都不能实施的话, 会让大家感觉不好,对以后其它工作也有影响。
//注: 当反馈是关于行为和后果时, 行为可以改正, 后果可以弥补, 对方还是有挽回局面的机会。
中间层: 习惯和动机
果冻, 你怎么又搞 Tab 缩进? 这都第几次了? 我们上次都有共识了, 你怎么还这么做呢? 你是对上回大家的决议不满么? 那也不能偷偷搞破坏!
//注: 当攻击上升到习惯和动机, 被攻击的一方就比较难表白并且澄清动机。
最内层: 本质和基本属性
果冻, 你太自私了, 都想着你自己的风格和方便, 团队精神哪去了! 你们移山软件学院出来的学生怎么都是这样自私啊!
//注: 当攻击深入到核心, 被攻击一方已经无法回应, 因为攻击的目标 [移山软件学院的学生] 是自己无法改变的。 或者无从下手的 [自私]。 可以想象这个触及灵魂深处的冲突会有暴力的结局。
另外, 在给别人反馈的时候, 我们最想让别人接受的当然是最有营养的 [肉], 但是光有肉, 别人不好拿, 也不好吃。 你不能强迫别人下咽。 我们要向做汉堡包、三明治的师傅们学习 - 把反馈做成汉堡包:
先来一片面包, 做好铺垫, 例如可以从双方的共同点, 团队共同的愿景讲起, 让对方觉得处于一个安全的环境。
再把肉放上,这时就可以把 建设性的意见 (constructive feedback) 油炸好, 加上生菜, 佐料等。
怎么准备这块肉也有讲究:
我们常说 [feedback], 但是在提供反馈时, 不宜完全沉溺于过去的陈年谷子烂芝麻, 给别人做评价, 下结论。 这样会造成一种 [你就是做得不好, 我恨你] 的情绪。
我们可以调整一个角度, 把 [feedback], 变成 [feedforward], 强调 [过去你做得不够, 但是我们以后可以做得更好]
在技术团队里, 我们的反馈还是要着重于 [行为和后果] 这一层面, 不要贸然深入到 [习惯和动机], [本质]. 除非情况非常严峻, 需要触动别人内心深处, 让别人悬崖勒马。
然后再来一片面包, 盖上。 这时候可以呼应开头, 鼓励对方把工作做好。
好, 一个有营养而可口的汉堡就做好了:
为什么我要啰啰嗦嗦讲这么多两人合作的反馈问题? 因为我认为如果你连一对一的合作都做不好, 不能运用影响力去影响同伴, 让合作双方都能从合作中受益, 提高水平,那你就别扯什么团队合作这些事了。
另一个原因是, 中国历史上似乎很少有两个人平等合作, 而共同提高的例子. 我拍脑袋想到的著名”二人组” 合作过程中都充满了小故事, 结局都不是太好:
周瑜 诸葛亮
管宁 华歆
[如果同学们能举出中国历史上成功的两人合作, 改进, 提高的例子, 欢迎提供线索]
外国的 IT 行业中, 倒是有不少两人合作的例子:
Hewlett & Packard 在车库创业, 当初他俩抛硬币决定公司叫 HP, 还是 PH. 两人长期的合作和友谊让 HP 成为硅谷的常青树.
Jerry Yang & David Filo. Yahoo! 的创始人
当然, 还有电影中的 Mark 和 Edurado, 这两人后来闹了点小别扭。
有一个说法, 创业家在创业初期必须要说服三个F: Family, Friend, and a Fool. 如果Family 和 Friend 都没人支持你的想法, 第三个F 估计也帮不了带大的忙。 如果你的哥们儿, 闺蜜都不看好你的想法, 或者光说不练, 那你找对朋友了么?
作业: 两人合作的作业:
1. 确认两人平等合作的关系
2. 阅读《构建之法》中关于两人合作, 如何给对方提意见的内容
3. 开始合作,如果任务是编程, 请看“结对编程”的内容; 如果任务是原型设计,请按“结对编程”的方式进行合作;如果任务是“分析软件”,请两人商量如何有效率地分工。
4. 用照片说明两人合作的情况(拍工作照, 可以不暴露面部)
5. 写博客汇报作业的过程, 并用汉堡包的方法点评你的合作伙伴, 务必给TA 提改进意见。
-------------
另: 关于团队合作, 不光中国这样, 别的国家也好不到那里去, Peter Norvig 也建议美国的学校多讲团队合作, “我上学的时候,团队合作被认为是作弊”。 - 摘录自 <Coders At Work>