促使团队紧密协作[高效能程序员的修炼-N1]
在Jeff看来,团队里最重要的事情,是人与人之间地协作和沟通!所有的问题,其实都是人的问题。“不管什么问题,那总是人的问题”-温伯格。即,让你和团队陷入困境的最快的方法,就是认为技术是决定性的因素,而且你相信你能轻易解决其它方面的问题。事实上,正是你所认为的“其它方面的问题”,最可能让你和团队止步不前。
这一章里,Jeff主要列举以下几个要点:
1. 领导须以身作则
团队,首先要有的就是纪律,也就是由大家共同讨论协商并决定的标准。每个团队都需要一个领导,带领大家去遵守并有效执行这些标准。以身作则,从以下几个方面树立示范带头作用(有时候也是因为他们没有时间和权力强制其他成员执行,只得“身先士卒”):
a) 保持谦虚,总是先假定你是错的,特别是你在骄傲(这是非常不好地一面)地宣布你的发现之前,你应该努力确保你的观察结果是正确的,以维护你良好的信誉。
b) 提出建设性的批评时要小心,要注意方式方法。开发人员更容易接受非正式的建议和具有巧妙引导性的问题,而不是把同样的内容以电子邮件(或大声吼)的方式发送给整个开发小组。扩大受众面很可能会引起开发者的防御或逆反。团队其它成员会猜测你的动机,如果有人认为你贬低别个,是为了抬高自己,哦,那你就要遭了!
c) 要想赢得信誉和尊敬,最好的方法就是努力工作,并且取得实实在在的成绩。特别是不能“光说不练”,例如群发“最佳实践”、“银弹在这儿”等。如果你想建议什么,你应该为些付出行动,做好充分准备。当然,这并不能保证团队(或部分其他成员)对你的倡议一一呼应,而且还可能徒劳无功,但是团队(或大部分成员)会意识到:你付出了努力,你在积极向前。
d) 要学着在乎别人,真心地去帮助别人。无论是为了激励一些人,还是为了推动项目的前进,团队中的成员始终需要帮助和关心。“我不想别人是因为怜悯面帮助我,我不想别人是因为自私而帮助我,我想要别人对我做的是,真正的爱我--当然不是那种Gay之性情,而是真正的对人性的关怀,让我人心里感受到这份真诚和关爱”。让那些受帮助之人,必须相信你是真的关心他们,事实上你也是这么做的。“黄金准则”适用于此。
黄金准则(Golden Role):一条公正的准则,它引导人们要“像你希望别人如何对待你那样去对待别人”,换句话说,你希望别人如何对待你,你就怎样去对待别人。
2. 程序员与系统管理员应该协作
要确保程序员和系统管理员不把时间花费在内斗上,面要用他们的超自然的能力,一起来完成一个不合作就无法达到的共同目标,派给他们的任务,应该是足够艰巨的--一个需要他们完全组合并使用他们的独特技能才能完成。让每个人都能把精力专注于各自擅长的事情上,一个健康的团队里,每个人都会觉得自己的能力源上了用场,而不是被浪费了。
注:其实,我真没有明白,此处的“系统管理员”到底是什么角色!
3. 结对编程与代码审查
结对编程的优势在于它的即时性:当负责复查的人就坐在你边上的时候,你是不可能忽略他的。大多数人在可以选择的情况下(如事后的代码审查),都会选择息事宁人,但是在结对编程中,是不可能的。结对编程的两个人总是有不同的技能,面这些技能是可以传递的,当一个人向另一个展示一些技巧、精妙的变通方案的时候,这实际上也是一种临时培训。更重要的是,两个都完全了解代码,这对谁(特别是公司)都是一个好处。
代码审查和结对编程有类似之外,作用也有几分相似。当然,一个公司从零开始,建设代码审查制度也是一个痛苦的过程,可能会有很多抱怨,但代码的质量以及可维护性方面,将有巨大的进步和提高。不过,代码审查也依赖于审查人员,有的时候,他们并不愿意“浪费个人时间”在代码审查上,直到某一天他们去维护这段代码,才会收到更多的反馈,甚至是怒气冲冲地抱怨,更甚至他们想推翻重来。“反正不是我的代码,才不管它到底有多臭”!
要保证有超过一双眼睛在看你所写过的代码!
4. 正确对待会议
应当以怀疑的态度去看待会议,把它当成是一种降低工作效率的风险,始终谨记:之所以开会,是因为我们需要它!会议原则参考:
a) 不超过一个小时!否则,我们就要再仔细审核下,是否会议牵涉的人太多了,是否讨论范围太宽范了,是否缺少必要的焦点?
b) 要有一个清晰的目标声明。要确定参会的每个人都很清楚会议的目的。
c) 开会之前预先做好功课。每个与会者都应当提前知道他们将要讨论和分享的内容,并且在走进会议室之前,已经做好了准备。
d) (尽力)把会议变成可选择的。不要“强制”任何人,必须参加这个会议。每一个出现在会议上的人,都应该是因为他们想要站在那里,或者需要他们站在那里。让每个人自行决定,是否需要参加这个会议。
e) 在会议结束时,要概括一下待办事项。会议要有一个专门的会议记录人员,并且,每个人最好在离开会场之前,概括并确认一下他们的待办事项。
让我们少说废话,快速干活,抓住工作重点。
5. 剔除团队的“坏苹果”
如果把一个坏苹果留在一筐好苹果里,结果你将得到一筐坏苹果,这就是“坏苹果”法则。一个人的态度将影响到一个团队,如果想使你的企业成功,那么你必须有一个积极进取的团队。
“坏苹果”会损害其他优秀开发人员的士气,如果团队主管不愿意直接并有效处理这些“坏苹果”,那么这些主管给团队带来的扰乱,比其它任何单方面的团队领导力问题都要严重,他们这是在玩忽职守,应该敢于调走甚至开除这些“坏苹果”。
如何确定“坏苹果”,以下几条仅供参考:
a) 掩饰自己的无知,而不是尽力去向团队其他成员学习。
b) 对个人隐私有着过度的渴望,“我不需要其他人审查我的代码”。
c) 很在意自己的地盘,很在意其他人动他们的代码。”我这几天比较忙,这个问题我(不是你)下周再解决”
d) 抱怨团队所做的决定,并在团队已经继续很久了,还在重拾此话题。
e) 团队其他成员,在讲他的悄悄话或地报怨他。
f) 不积极投入团队活动。
g) 沮丧的悲观主义者,经常说“随便”,“我无所谓”,“不关我的事(我自己加的)”。
当然,有时候,一个特别优秀的领导者,一个有较强沟通能力的人,一个可以四处询问、征求意见的人,同时确保每个人的意见都被认真对待的人,或许可以挽救或降低“坏苹果”所带来的影响。
仔细想想,有的时候,自己就是那个“坏苹果”!
6. 远程办公建议。
a) 只有高手才适合!
b) 要有每周一总结,包括:上周工作总结,本周工作计划,需要处理的问题或需要协调沟通之事项。
c) 详细简洁的会议纪要,参会人?讨论的主题?所做的决定?下一步工作计划?
d) 简单无噪声的邮件列表或BBS。
促使团队紧密协作[高效能程序员的修炼-N1]的更多相关文章
- 《高效能程序员的修炼》读后感 By Yong Zhang
想不到我工作中经常GOOGLE搜寻技术问题的stack overflow网站的创办人竟然是<高效能程序员的修炼>一书的作者!看了一遍全书,果然名不虚传. 本书更多的从人文角度而非技术角度去 ...
- 高效能程序员的七个习惯【csdn】
从网上看到的,感觉挺不错的! Beautiful is better than ugly. Explicit is better than implicit. Simple is better tha ...
- 《程序员思维修炼》读书笔记——week4
<程序员思维修炼>读书笔记——week4 PB16061441 陈昶金 这周读的是Andy Hunt的著作<程序员思维修炼>,这本书对于我这种刚刚入门的新手很友好,大多是讲一些 ...
- 一位程序员如何修炼成CTO
几乎整个互联网行业都缺CTO,特别是一些草根背景的创业者,这个问题更加显著.从我自己的感受,身边各种朋友委托我找CTO的需求,嗯,算下来超过两位数了,光最近一个月就有3个,而且这三家都是刚拿了A轮的. ...
- 【前端阅读】——《程序员思维修炼》摘记&读后感&思维导图
前言:这是一本介绍如何用脑的书,并从思维的角度(以程序员为例),介绍如何从新手成为专家.作者带领着读者(我)共同经历一次有关认知科学.神经学.学习和行为理论的旅程,探索人类大脑令人 惊奇的工作的机制, ...
- 程序员的修炼-我们为什么会编写BUG
在最近的一周,我维护的业务系统出现了很多坏毛病,一周七天crash掉了4次,每次都需要都是因为一点很小的问题,触发了蝴蝶效应,导致整个系统全盘崩溃,于是产生除了叙述本篇的想法,当然这并不是为了掩盖我在 ...
- 做高逼格程序员之说走就走的「Windows」
简介:随着移动固态硬盘越来越便宜,网上逐渐出来一个黑科技.Windows To GO见名知意.简单来说就是在U盘或者是移动固态硬盘上安装Windows系统.达到即插即用. WTG 简介 Windows ...
- 做高逼格程序员之说走就走的「Linux To Go 」
简介:想拥有一个Linux,在自己的电脑上安装双系统太麻烦.想和WTG一样,随插随用. 使用LTG的好处 安装.修复系统:配置好后的Linux系统极其强大. 工作中我们同样可以使用这个系统,回到家里插 ...
- 《编写高质量代码:改善C#程序的157个建议》是C#程序员进阶修炼的必读之作
随机推荐
- VS2015 C#的单元测试
1.安装visual studio 2015过程 visual studio 会对windows系统兼容性有很高的要求,没有达到win7 sp1以上的就不给安装,贴一张官方的系统的要求吧. 很不幸的是 ...
- 101空降师506团2营E连全体成员
吕天一 https://coding.net/u/Richardlv http://www.cnblogs.com/Richardlv/ 李伟亮 https://coding.net/u/201304 ...
- jQuery笔记(二)
$()下的常用方法 addClass():添加样式 removeClass():删除样式 $('div').addClass('box2 box4'); $('div').removeClass('b ...
- Alpha冲刺——day7
Alpha冲刺--day7 作业链接 Alpha冲刺随笔集 github地址 团队成员 031602636 许舒玲(队长) 031602237 吴杰婷 031602220 雷博浩 031602634 ...
- 第九周PSP&进度条
PSP 一.表格: D日期 C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 11月11号 讨论 讨论beta发布 09:00 09:54 1 ...
- ubuntu关闭和开启防火墙
1.关闭ubuntu的防火墙 ufw disable 2开启防火墙 ufw enable 3.卸载了iptables apt-get remove iptables 4.关闭ubuntu中的防火墙的其 ...
- GCD LCM UVA - 11388 (思维。。水题)
两个数的最小公倍数和最大公约数肯定是倍数关系 然后又让求使得a最小 因为 a = m * gcd 令m = 1 时 a取得最小 即gcd 则b = lcm #include <iostrea ...
- 【BZOJ4260】Codechef REBXOR (Trie树)
[BZOJ4260]Codechef REBXOR (Trie树) 题面 BZOJ 题解 两眼题.第一眼不会做,第二眼好简单... 前缀异或和一下,拿\(Trie\)树维护求一个在这个端点以左的最大值 ...
- bzoj1488[HNOI2009]图的同构
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1488 1488: [HNOI2009]图的同构 Time Limit: 10 Sec M ...
- debian9部署jenkins
这里记录两种部署方式,一种是通过包管理工具直接安装,另一种是用tomcat作为web容器运行jenkins.个人倾向第一种,部署简单,而且维护起来方便很多. 用包管理工具aptitude部署jenki ...