极客与团队 阅读笔记 - youngperson/study-100 GitHub Wiki

解决的问题

  • 软件开发是一项团队运动,人的因素对结果的影响完全不亚于技术因素。
  • 一个项目的成功的关键不仅仅是写出漂亮的代码,团队中的所有人都朝着同一个目标一起合作也是同样重要的。
  • 工程问题都很简单。人机关系才是最难的。

天才的传说

  • 没有人是完美的,但是在给同事挑错之前,你得先知道自己的毛病。
  • 我们希望你想想自己的反应、行为和态度----或许你可以从中得到一些心得体会,从而变成一名更成功、更高效的软件工程师。
  • 在处理人际关系问题上花的精力越少,你就有越多的时间编写漂亮的代码。
  • 要在团队里获得成功,你必须以谦虚、尊重和信任为核心原则。
  • 这些集体荣誉都被算在了他们的这些领袖头上。
  • 人类会本能地去寻找领导者和榜样,崇拜他们,然后模仿。我们都需要榜样的激励,编程世界也不例外。
  • 从内心深处来讲我们都默默地希望自己是天才。

隐瞒是有害的

  • 假如你一直都是单打独斗的话,你其实是增加了自己失败的风险,而且浪费了自己成才的可能性。
  • 真正做出产品之前不愿分享好的创意实际上是一场很大的赌博,你很容易在一开始就犯下很基本的错误,你有可能在重新发明轮子。
  • 完全丧失了合作的好处,这是为什么人们在跳进泳池前会拿脚趾试试水的原因,需要确定自己在做的事情是对的,方法也是对的,而不是重复劳动。
  • 确保失败尽早发生,尽快发生,经常发生。

公车因子

一个项目里,需要有多少人被公车撞到才能令其完全瘫痪。(这里指生活中都会发生的意外情况)想要确保项目有一个光明的前景,就一定要把公车因子纳入考量。项目缺少了某个人不至于出现灭顶之灾。

单打独斗

  • 人们往往会忘记单独工作通常是很艰辛的,进展有时候会慢得让人难以接受。
  • 每次遇到事后觉得可笑的障碍时,你浪费了多少时间才走出死胡同?如果有同事在旁边帮你一把的话会有什么不同----他们会立刻指出你哪里弄错了,该怎么解决。
  • 这就是为什么软件公司里面都是坐在一起(或是在一起结对编程)的原因,你需要一位旁观者。
  • 我们需要不断反馈,写一个新函数,编译,加一个测试用例,在编译一下,又重构了一部分代码,在编译一下。
  • 团队合作,只要有足够多双的眼睛可以确保你的项目保持正确的方向。
  • 单打独斗比合作风险更高,相比担心自己的创意被偷走或是被人笑话,你更应该担心自己是不是在错误的方向上浪费大量时间。

团队才是王道

  • 改变世界的成就几乎都是集体智慧努力得来的结晶。
  • 最好的团队能充分利用好队里的巨星,但是集体的力量一定是大于个体力量之和的。
  • 软件开发是集体项目。

三支柱

  • 谦虚:没有人是宇宙的中心,谁也不说万能的,谁都会犯错,你必须不断提高自己。
  • 尊重:必须真心实意地关心同事,他们都是活生生的人,他们的能力和成绩都需要得到肯定。
  • 信任:要相信别人的能力和判断,在适当的时候懂得放权。
  • 以上这些原则叫HRT。发音是heaer而不是hurt。
  • 基本上所有的社交摩擦最终都是由于缺乏谦虚、尊重,或是信任而造成的。

如何去做

  1. 放下自负
  2. 学会批评和接受批评:如果你真的尊重一个人,那你就会自发地选择有技巧有帮助的措辞。
  3. 你和你的代码是两回事:别把你的自尊和你的代码等同起来,谦虚地把问题归到自己头上,而不是他。他没有错,只是你理解代码有困难而已。讨论的范围被限定在代码上,没有涉及任何人的价值观或是编程技术。
  4. 并不会因此而泄气,每次试错都是在前进。
  5. 你越是容易受影响,你就越能影响别人;你越是示弱,你就越强壮。接受意见改变自己没什么大不了的。不要随意挑起争斗。
  6. 你的同事是合作者,不是竞争者。

团队文化

  • 关心团队文化的原因在于如果不努力营造它,那么团队最终会因为某个特别强势的人的出现而被注入他个人的文化基因。
  • 强壮的文化是指能接受有益的改进,同时又能抵御有害的激进变化的团队文件。最成功的团队文化都把大部分的精力放在了开发优秀软件上面。
  • 建设性批评是任何工程师团队成才发展的基石。
  • 保持专注的方法就是要拒绝各种诱惑。

开会要有效率

  • 尽量把会议人数控制在5个人以下,除非只有1个人可以拍板,否则5个人的会议室里是做不出任何新设计或者决策的。
  • 只邀请一定要参加的人
  • 开会前要决定好议程,而且要事先通知所有人
  • 达成目的后应提早散会
  • 注意别跑题
  • 尽量把会议安排在休息时间前后(比如午饭时间,下班前等)

主管才是新的经理

  • 传统型经理关心的是怎么完成任务,而主管只关心完成了什么任务...(并且相信团队自己想出解决问题的方法)
  • 让他们开心有动力才是你主要工作。
  • 要治好这种“管理”病,就应该采用宽松的方式,仆人式领导,努力去营造一种谦虚、尊重和信任(HRT)的氛围。

反模式

  • 雇佣听话的人,应该雇佣那些比你聪明的、可替代你的人。他们还会不断地给你惊喜,交出漂亮的工作。
  • 无视表现不佳的人,无视表现不佳的人会妨碍优秀新人的加入,导致牛肉离开。结果整个团队里变得只剩下表现差的人,因为他们都是一些没什么意志力的家伙。尽快处理表现不佳的人的好处在于你还有机会帮他的忙。如果耽搁久了,他和团队的关系就会变得棘手,你也会因为没有办法再帮忙而感到失望沮丧。尊重,规定好一个期限,设定你希望他达成的目标,目标要设置的小一点,循序渐进,这样才能积累很多小成功。
  • 无视人际关系,无视团队里人的因素只会让自己承担相当大的风险。
  • 和谁都是朋友,不要去格外努力地去维护它,这其实是灾难的源泉,很多友谊破灭都由此开始。和大家中午一起吃饭是拉近距离的好办法,还不会让大家不舒服,这样就有机会在正式的工作环境之外聊一些随性的东西
  • 降低招聘标准,没有人才是打造不出顶尖团队的。
  • 把团队当小孩子,如果因为不信任对方,而只能不断地去干预他们的工作,那说明你在招聘的时候就已经犯错了。