周末抽时间来了五道峡旅游,亲近一下大自然。真心不错!不枉此行!
这周抽时间看完了《极客与团队》这本书。
这本书的页数非常少,不到 200页。我每天早上抽20分钟左右的时间,不到一周就看完了。
写了一份读书笔记,基本把书中比较核心的一些观点都概括到了,并且有自己的思考和补充。分享一下,没看过这本书的小伙伴,看我的读书笔记就哦了!
下面是正文。
“人际关系在工作中的重要性不亚于科学技术,但很多工程师都不太愿意投入太多精力去了解如何与别人合作。”
软件开发是一项团队运动,人的因素对结果的影响完全不亚于技术因素。一个项目成功的关键不仅仅是写出漂亮的代码,团队中的所有人朝着同一个目标一起合作也是同样重要。
这本书的主要目的是帮助程序员理解他人,与人沟通,以及与人合作的能力,进而在编写软件的过程中变得更有效率。
大家应该都知道 Linux 之父 Linus Torvalds,这个被很多人吹捧为神一般的天才程序员。
实际上,Linus Torvalds 只是写了一个可以工作的类 UNIX 内核的初级版本。他真正的成就是领导和协调其他优秀的程序员一起来维护和完善 Linux。
知乎上有一个问题是“Linus 大学时期写出了 linux 内核,那个最初的版本仅就技术而言,有多厉害?”。下面有一个回答是这样写的:
Linux 的发展不是一步到位的,不是 Linus 动笔写了个无人企及的超级系统,人们就蜂拥而至。Linux 能成为使用最广泛的操作系统之一,靠的是 Linus 的英明领导,社区的无私奉献,商业公司的积极参与。我觉得,我们了解 Linux,更应该去了解开源社区是如何运作的,是什么使得商业公司选择将大量资源投入 Linux,Linux 的众多技术考量(如宏内核 vs 微内核,kernel 内部 ABI 兼容与否)的利弊何在。简单的造神,把 Linux 的成功全部归功于 Linus 的天才,是不利于我们学习和进步的。
天才传说只是我们缺乏安全感的一种表象罢了。很多程序员害怕和别人分享他刚刚开始做的东西,因为这意味着同行会看到他们的错误,从而知道这些代码背后的作者并非是天才。
假如你一直是单打独斗的话,你其实增加了自己失败的风险,而且浪费了自己成长的可能性。
反馈非常重要!不管是机器给你的反馈还是人给你的反馈。快速反馈可以确保你的工作在正确的方向上。
《高效程序员的 45 个习惯读书笔记》中关于敏捷开发这部分内容这样描述反馈:
敏捷开发就是在一个高度协作的环境下,不断使用反馈来进行自我调整和完善。也就是说敏捷的团队要共同工具,互相给予反馈或者从自己的代码中获取反馈,然后不断改进自己的代码。 反馈是敏捷的基础。一旦你意识到自己走错了方向,就要立即做出决策以改变方向。
参考开源项目或者企业项目,你会发现软件开发是集体项目!光靠自己通常是是没办法开发出一款优秀的项目。你需要合作,告诉别人你的想法,让别人帮你分担,团队里的人互相学习,从而打造出一支出色的团队。
团队里的成员社交的基础原则:
一定不要低估社交的力量。社交不是勾心斗角,不是操纵别人,奴隶别人,它是通过建立人与人之间的合作关系来一起把同一件事情做成功,一起实现同一个目标。
除了谦虚、尊重、信任之外,下面这些习惯同样非常重要,并且大部分人通常都会犯这些错误:
团队文化不仅仅是成员们编写代码的方式或是成员之间的相处之道,它还包含了所有人认可的经验、价值观、目标。
为什么要关心团队文化? 关心团队文化的原因在于如果不刻意和努力地营造它,那么团队最终会因为某个特别强势的人的出现而被注入他个人的文化基因。这种被引入的文化基因或许是好的,但是,往往事实相反。一个完善的团队文化应该是能够接受有益的改进,并且,能够抵御有害的激进变化。
什么是比较成功的团队文化? 一个比较成功的团队文化应该把绝大部分注意力都放在开发优秀的软件上面,而不是每天想着怎么聚会、开会、勾心斗角。
建议在招聘这个环节就注意筛选符合自己公司文化的求职者,将文化契合度作为考察点之一。
气氛随和的团队文化更容易受到性格激进的人的影响,其程度要大于随和的人对于激进的团队文化所产生的的影响。因此,随和的团队文化要避免被激进的新人牵着鼻子走,特别是要避免和这样的人发生激烈的冲突。有时候,团队的资深成员也要挺身而出,正面迎击这样的新人,防止他们对团队的随和分为产生破坏。
优秀团队的沟通模式建议:同步沟通的时候(比如开会)人越少越好,异步沟通的时候涉及到的听众越多越好。
一定要提高开会效率,避免不必要的时间和精力浪费。 下面是几个小建议:
关于会前准备,我推荐遵循 WWGHQ 原则来:
对于团队成员异地/远程办公的情况下,一定要利用好视频会议、语音、在线聊天、邮件等远程沟通的方式。团队成员之间多沟通,要让别人知道你在做什么。
很多成功的项目都有好几个邮件列表,把开发讨论、代码审查、用户讨论、公告发布等等分开来。不过,如果项目成员比较少的话,其实也没太大必要弄一大堆邮件列表。
软件项目如果没有人领导的话,就像船上没有船长领航一样,它只会漫无目的地随波逐流罢了。
若想要项目有所进展,就必须有人站出来领导大家。
如何当一个不合格的船长? :
如何当一个合格的船长?:
软件开发中最难的其实是和人打交道。
哪些人可以称为害群之马?
如何对付害群之马?
我们还需要知道怎么在好公司和坏公司里生存。大多数软件工程师都服务于效率低下的有点官僚味道的公司因此要采取一些非常的手段才能达到目的。有些人称之为 办公室政治 ,你也可以把它叫作 社会工程 。而我们起的名字是 操纵组织。
有些坏领导根本不关心你的个人发展,你只是他们向上爬的垫脚石。他们可能会通过藏匿消息来达到窃取胜利果实以及让你背黑锅。
“办公室政治高手”通常左右逢源,很善于与人打交道。不过,这类人往往都是两面三刀。他们很会利用同僚或下属,踩着他们往上爬。他们会抓住各种机会来推卸责任,甚至比抢别人的功劳还迅速。
建议离这些“办公室政治高手”远一点。尽量也不要在背后说他的坏话,谁知道你倾诉的对象是不是已经被他蒙蔽了。
糟糕的公司 通常有下面这些特征 :
如何在糟糕的公司生存?
< END >