在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]的更多相关文章

  1. 《高效能程序员的修炼》读后感 By Yong Zhang

    想不到我工作中经常GOOGLE搜寻技术问题的stack overflow网站的创办人竟然是<高效能程序员的修炼>一书的作者!看了一遍全书,果然名不虚传. 本书更多的从人文角度而非技术角度去 ...

  2. 高效能程序员的七个习惯【csdn】

    从网上看到的,感觉挺不错的! Beautiful is better than ugly. Explicit is better than implicit. Simple is better tha ...

  3. 《程序员思维修炼》读书笔记——week4

    <程序员思维修炼>读书笔记——week4 PB16061441 陈昶金 这周读的是Andy Hunt的著作<程序员思维修炼>,这本书对于我这种刚刚入门的新手很友好,大多是讲一些 ...

  4. 一位程序员如何修炼成CTO

    几乎整个互联网行业都缺CTO,特别是一些草根背景的创业者,这个问题更加显著.从我自己的感受,身边各种朋友委托我找CTO的需求,嗯,算下来超过两位数了,光最近一个月就有3个,而且这三家都是刚拿了A轮的. ...

  5. 【前端阅读】——《程序员思维修炼》摘记&读后感&思维导图

    前言:这是一本介绍如何用脑的书,并从思维的角度(以程序员为例),介绍如何从新手成为专家.作者带领着读者(我)共同经历一次有关认知科学.神经学.学习和行为理论的旅程,探索人类大脑令人 惊奇的工作的机制, ...

  6. 程序员的修炼-我们为什么会编写BUG

    在最近的一周,我维护的业务系统出现了很多坏毛病,一周七天crash掉了4次,每次都需要都是因为一点很小的问题,触发了蝴蝶效应,导致整个系统全盘崩溃,于是产生除了叙述本篇的想法,当然这并不是为了掩盖我在 ...

  7. 做高逼格程序员之说走就走的「Windows」

    简介:随着移动固态硬盘越来越便宜,网上逐渐出来一个黑科技.Windows To GO见名知意.简单来说就是在U盘或者是移动固态硬盘上安装Windows系统.达到即插即用. WTG 简介 Windows ...

  8. 做高逼格程序员之说走就走的「Linux To Go 」

    简介:想拥有一个Linux,在自己的电脑上安装双系统太麻烦.想和WTG一样,随插随用. 使用LTG的好处 安装.修复系统:配置好后的Linux系统极其强大. 工作中我们同样可以使用这个系统,回到家里插 ...

  9. 《编写高质量代码:改善C#程序的157个建议》是C#程序员进阶修炼的必读之作

随机推荐

  1. Java的三大特性:封装、继承、多态

    一.类的概念: 类一般包括两个部分:属性(成员变量)和方法(成员方法)方法组成部分:修饰符(可选) 返回值类型(必须) 方法名(必须)参数列表(可选) package com.classTest.pr ...

  2. week9:个人博客作业

    团队作业(5) 以下内容多数是网上的内容,只是做了整合的过程. 要求 在PM 带领下, 每个团队深入分析下面行业的App, 找到行业的Top 5 (从下面的三个备选中,任选一个行业即可) 英语学习/词 ...

  3. wc 统计程序

    WC项目要求 这个项目要求写一个命令行程序,模仿已有的wc.exe的功能,并加以扩充,给出某程序设计源语言文件的字符数.单词数和行数.给实现一个统计程序,它能正确统计程序文件的字符数.单词数.行数,以 ...

  4. [搜狐科技]由浅入深理解Raft协议

    由浅入深理解Raft协议 2017-10-16 12:12操作系统/设计 0 - Raft协议和Paxos的因缘 读过Raft论文<In Search of an Understandable ...

  5. [转帖]PG的简单备份恢复 找时间进行测试

    转帖PG的简单使用 https://blog.csdn.net/lk_db/article/details/77971634 一: 纯文件格式的脚本: 示例:1. 只导出postgres数据库的数据, ...

  6. Spring之AOP操作术语说明

  7. Cuba项目从远程Git仓库下载步骤

    Cuba Studio 从Git远程仓库里下载代码,并且可以使用IDEA打开,需要注意的地方: 1.使用Git Gui克隆代码 也可以使用IDEA本身集成的Git下载,但是要保证:下载了项目以后,不能 ...

  8. 特殊符号 UNICODE编码

    特殊符号 UNICODE编码 =================== Start ⇠  箭头类 符号 UNICODE 符号 UNICODE HTML JS CSS HTML JS CSS ⇠ & ...

  9. MT【111】画图估计

    评:此类方程是超越方程,一般情况下无法解出具体的解,常见手段:1.画图  2.猜根.此处可以取特殊值a=2.5,b=3.5,容易知道此时$x=2.5\in(2,3)$

  10. MT【96】一道三角恒等变换题

    设$a,b,c$是正数,且$(a+b)(b+c)(c+a)=8$,证明不等式:$\frac{a+b+c}{3}≥[\frac{a^3+b^3+c^3}{3}]^{\frac{1}{27}}$ 评:记住 ...