出版时间:2012-3 出版社:人民邮电出版社 作者:[美]Brian W. Fitzpatrick/Ben Collins-Sussman 译者:徐旭铭
Tag标签:无
前言
“工程问题都很简单。人际关系才是最难的。” ——比尔·库格伦,前Google工程部资深副总裁 生活中总是充满了离奇的转折,就好像我们俩从没想过会合作写一本软件工程的书一样。 和大多数电脑狂一样,大学毕业后我们发现自己的兴趣和热情(折腾电脑)居然也是不错的谋生手段。而和那个时代的大多数黑客一样,我们的整个20世纪90年代中期都是在干这些事情,用别人剩下的零件攒机,拿着一大叠软盘安装预览版的Linux,然后学着操纵UNIX机器。我们都是系统管理员出身,然后在互联网泡沫刚起来的时候跑到小公司里去当程序员。泡沫破裂后,我们开始为那些幸存的硅谷企业(比如Apple)工作,后来又跳槽去了一家创业公司(CollabNet),全心设计开发了一款开源版本控制软件Subversion。 然而2000年到2005年期间,一些意想不到的事情发生了。尽管我们创造了Subversion,但是我们每天的任务却渐渐发生了变化。我们不再只是天天坐在那里写代码,而是开始领导一个开源项目了。这意味着我们要整天挂在聊天室和一堆程序员志愿者打交道,关注他们都在做些什么。这还意味着要几乎完全通过邮件列表来协调各种新特性。我们逐渐发现一个项目成功的关键不仅仅是写出漂亮的代码:所有人向着同一个目标一起合作也是同样重要的。 2005年的时候我们一起创建了Google芝加哥分部,以程序员的身份继续着我们的职业生涯。这时我们已经完全融入开源世界了一一不仅仅是Subversion,还有Apache软件基金会(ASF)。我们把Subversion移植到Google的BigTable架构上,并以Google Code为名发布了一项开源项目托管的服务(类似于SourceForge)。我们开始参加(后来开始做演讲)各种开发者大会,例如OSCON、ApacheCon、PyCon,还有Google I/O。我们发现同时为企业和开源项目工作的经历让我们无意之间了解到了软件工程团队运作的奥秘。一开始我们做的演讲都是轻松幽默的,大多是批判无用的开发流程(“Subversion最差实践”),后来则开始转向探讨如何保护团队不受害群之马的影响(“开源项目如何应付害群之马”)。越来越多的听众聚集到我们的演讲会场,我们称之为程序员的“集体疗法”。每个人都对我们谈论的问题有着切肤之痛,都想要对大家抱怨一下。 于是,六年来我们做了一大堆反响热烈的和软件开发过程中人际关系有关的演讲。最后奥莱利公司的编辑玛丽·特莱斯勒建议我们干脆把这些演讲写成一本新书。接下来发生的事情就略过不表了。 本书的读者 本书是专门写给那些想要更上一层楼以及编写出色软件的程序员看的。CEO、心理学家、管理层\计算机理论学家,还有焊电路板的技师等都不算是我们的目标读者(虽然这些朋友或许也能读得津津有味)。在此我们假设本书的读者具备以下两个重要条件。 你需要和团队里的其他程序员合作。无论是为公司企业工作,或是某个开源项目或是学校作业的一员都可以。 你喜欢软件工程,并且觉得它应该是一件很有成就感、很好玩的事情。如果你只是应付工作混口饭吃的话,那估计你对实现自我价值和获得职业满足感不会有什么兴趣。 在讨论程序员怎么才能“通力合作”的时候,我们总结出了一些表面上看起来和程序员这份工作风马牛不相及的经验和准则。我们会在各章里谈到怎么才能更好地领导一支团队和企业,怎么才能和用户建立起良性的关系等话题。乍看起来这些章好像是专门写给所谓的“管人的人”或者说“产品经理”看的,但我们可以保证,你的职业生涯到了某个阶段的时候一定会有意无意地担当起这样的角色。所以先放下疑虑,继续往下读吧!这本书里讲到的东西是每个软件工程师最终都会碰到的。 警告:本书不是技术手册 首先我们需要澄清一些事情。好学的程序员通常都喜欢去读一些能将某些个特定问题用纯数学的形式展现出来的书籍,而通常这样的问题都存在完美的流程化的答案。 本书并不属于这种类型。 本书主要关注的是软件开发中有关人的那个方面,而人是很复杂的。正如在我们自己的演讲中说到的那样,“人基本上就是由一大堆间歇性bug组成的”。这里论及的问题和答案都是很凌乱的,很难用完美逻辑来解释。本书读起来像是论文集,而事实上它的确也就是一本论文集。每一章我们都会讨论一系列相关的问题(通常是用案例故事的方式),然后针对整个主题再探讨各种应对方案。你可能需要反复阅读很多页,努力把它们联系起来,甚至思考数日才能融会贯通! 我们在此还要作一些声明。正如我们在演讲里开过的玩笑,“这里的观点完全是基于我们自己的经验得出的,完全属于我们自己。要是你不同意我们的观点,完全可以去自己做演讲啊”。和我们的现场演讲一样,只要和本书主题相关,任何讨论都是值得鼓励的。我们欢迎各种反馈、修正、新观点,以及反驳:你可以在http://www.benandntz.com/上找到我们。本书的所有内容都来自我们的亲身经历和无数错误中得到的教训。 你还应该注意,我们在例子中提到的都是化名,以保护无辜(或者犯错)的当事人。 本书的内容都是课本里学不到的 我们认识的软件工程师绝大多数都花了4~10年的时间在学校里学习计算机科学和软件工程。截至本书出版为止,我们不知道有任何一门课程是真正教你怎么在团队和公司里与人合作交流的。好吧,大多数学生都会在学校里被要求参与某个项目,但是教一个人怎么好好地和另一个人协作与把他直接丢到一个迫使他协作的环境里完全是两码事。绝大多数学生最后都不怎么喜欢这种经验。 小结 所谓成功的程序员不仅仅是追逐最新的语言或是编写最快的代码。职业程序员几乎都是要参与团队合作的,而且事实上团队直接影响个人生产力和幸福感的程度超出很多人的想象。 本书的目标很简单:编写软件是集体项目,而且我们认为人的因素对结果的影响不亚于技术因素。大多数人虽然在编程技术上耕耘数载,但是在人际关系上却从来没有下过功夫,而学习与人合作也是成功路上不可或缺的重要环节。只要你能在软件工程的“软技能”上下点功夫,就能达到事半功倍的效果。
内容概要
《极客与团队》是一本写给程序员看的,教你怎么交朋友,怎么影响团队中的其他人。书中充满了操作性极强的建议和意见,让你在技术团队中过得更开心,变得更有效率,更加如鱼得水。《极客与团队》旨在帮助程序员改进理解他人,与人沟通,以及与人合作的能力,进而在编写软件的过程中变得更有效率。
《极客与团队》适合那些想要更上一层楼并编写出色软件的程序员阅读,也适合软件项目和团队的管理者自己或组织团队成员阅读和参考。
作者简介
作者:(美国)Brian W. Fitzpatrick(美国)Ben Collins-Sussman 译者:徐旭铭布莱恩•傅攀勃现在是Google数据解放阵线和透明度工程两个团队的负责人,之前他还领导过Google的项目托管团队以及电子商务伙伴团队。他帮忙建立了Google芝加哥分部,并且为Google在开放数据上提出了很多想法和建议。本•科林斯-萨斯曼是Subversion的初创成员之一,领导过Google的项目托管团队,现在是Google电子商务伙伴团队的负责人。他帮忙建立了Google芝加哥分部,并将Subversion移植到Google的BigTable平台上。
书籍目录
第一章 天才程序员的传说 帮我把代码藏起来 天才的传说 隐瞒是有害的 团队才是王道 三支柱 HRT实战 下一步 第二章 培养出色的团队文化 什么是文化 为什么要关心它 文化和人 优秀团队文化中的沟通模式 高层面同步 每日进行的讨论 使用bug跟踪系统 沟通也是工程的一部分 说到底真正重要的还是代码本身 第三章 大海航行靠船长 自然界没有真空地带 @Deprecated Manager 主管才是新的经理 唯一要担心的就是……好吧,所有的事情 仆人式领导 反模式 领袖的处事之道 人是植物 内部激励和外部激励 结语 第四章 对付害群之马 什么是“害群” 保护团队 发现威胁 第五章 操纵组织的艺术 优点、缺点和策略 理想的情况:团队在公司里应该是怎么运作的 现实的情况:当环境成为成功路上的绊脚石 操纵你的组织 B计划:走为上 不要放弃 第六章 用户也是人 管理大众的印象 管理和用户之间的关系 结语 附录A 延伸阅读
章节摘录
版权页: 插图: 天才的传说 首先我们要澄清一件事情:我们实际上不是体育迷。每次我们的太太们在电视机前为了篮球或者足球比赛欢呼雀跃的时候,我们总会挠挠头皮觉得这有什么好激动的。但不管怎么说,我们毕竟是见证了20世纪90年代初芝加哥公牛队的辉煌(顺便说一句,这是一支篮球队)。我们当时都住在芝加哥,全国媒体在这里聚集了好多年,来报道这支传奇球队。 那么我们在电视和报纸里听到最多的是什么?不是球队本身,而是迈克尔•乔丹,球队的超级巨星。全世界的球员都想成为乔丹那样的明星。我们可以看到他在其他球员周围跳舞转圈圈,在电视广告里也能看到他。他演了一部很傻的电影,在其中他和一群卡通人物一起打球。他是大明星,每个小孩子都会在球场里偷偷练习打篮球,希望将来有一天也能像他一样。 程序员其实也一样,我们也会有自己崇拜的偶像。莱纳斯•托瓦兹、理查德•斯托曼、比尔•盖茨——这些改变了世界的英雄都作出了了不起的贡献。毕竟莱纳斯靠自己就写出了Linux不是吗? 其实莱纳斯只是写了一个可以工作的类LYNIX内核的初级版本,然后把它贴到了邮件列表上而已。这并不是一项简单的任务,而且它也的确是一项了不起的成就,但是这真的只是冰山一角而已。Linux的规模是这个的几百倍,有几百名聪明绝顶的程序员参与了开发。莱纳斯真正的成就是领导并协调他们的工作,Linux之所以如此耀眼完全是这些人通力合作的结果(另外,UNIX也是由贝尔实验室里的一小群天才写出来的,并不完全是肯•汤姆森和丹尼斯•里奇的功劳。) 同样的,自由软件基金会的软件都是由斯托曼编写的吗?他编写了第一版Emacs,而bash、GCC,以及所有其他运行在Linux上的软件都是由几百名程序员负责的。史提夫•乔布斯领导的团队开发了麦金塔电脑,还有比尔•盖茨,尽管他为早期的家用电脑编写了BASIC解释器,但其实他更大的贡献是围绕MS-DOS创办了一家成功的软件公司。可是这些集体荣誉都被算在了他们这些领袖的头上。 那么迈克尔•乔丹呢? 我们还是一样崇拜他,但事实上他是不可能靠自己一个人就赢得每一场篮球赛的,他真正天才的地方是他和球队一起打球的方式。球队教练菲尔•杰克逊是非常聪明的一个人——他的教练水平是毋庸置疑的:他知道单靠一名球员是无法赢得冠军的,所以他围绕乔丹打造了一支“梦之队”。这支队伍干劲十足,耀眼程度完全不亚于乔丹。 既然如此,我们为什么还是不断地去崇拜这些故事里的主角呢?人们为什么为明星代言的产品掏钱?为什么我们会想要去买米歇尔•奥巴马的裙子和迈克尔•乔丹的球鞋? 明星的号召力是很大的。人类会本能地去寻找领导者和榜样,崇拜他们,然后模仿。我们都需要榜样的激励,编程世界也不例外,“技术英雄”的现象几乎都要被神化了。我们都想要写出像Linux那样改变世界的东西,或是设计一门了不起的程序语言。 从内心深处来讲我们都默默地希望自己是天才。极客的终极梦想就是得到一个激动人心的灵感,然后闭关数周甚至数月将它完美地实现出来,最后向全世界发布自己的作品,名动天下。同行们会折服于你的聪明才智,人们会排着队来买你的软件,名望和财富更是唾手可得。 不好意思先等一下:醒醒吧,你很可能不是什么天才。 当然我们并无恶意,你肯定是一个很聪明的人,但是你知道这个世界有多少真正的天才吗?的确,你能写代码,拥有这种能力已经算是人群里的聪明人了,但问题在于即便你真的是天才也是不够的。天才也会犯错,好点子和高超的技术并不是软件成功的充分条件,你的职业生涯能否成功完全要看你能不能与人合作。 事实上所谓的天才传说只是我们缺乏安全感的一种表象罢了。很多程序员都害怕和别人分享他刚刚开始做的东西,因为这意味着同行会看到他们的错误,从而知道这些代码背后的作者并非天才。这里引用本的博客上某位程序员的留言: “如果别人看到我未完成的作品,我会非常忐忑,觉得他们会因此对我产生质疑,把我当成一个傻瓜。” 这是程序员这个人群里很普遍的看法,所以最自然的反应就是躲起来不断地努力工作。只要没人看到你犯错,你就还有机会最终一鸣惊人。所以产品完善之前还是先藏拙吧。 不愿献丑的另一个原因是害怕别的程序员会偷走你的创意,然后抢先发布。所以只要保持低调,创意就不会被偷走了。 我们知道你现在可能会想:那又怎么样?难道我们不能按照自己的方式工作吗? 事实上还真的不能。我们可以断定你这样做是不对的,而且错得离谱。让我们来告诉你为什么。
媒体关注与评论
“我和工程师已经打了三十几年交道了。经验告诉我,人际关系在工作中的重要性并不亚于科学技术,但很多工程师都不愿意尝试了解如何与人合作。如果你想要更有效地进行创新,那绝不能错过本书。”—狄恩·卡门,DEKA研发公司创始人“作者为软件开发团队搜集了一套令人惊艳的模式和反模式。无论你是开发人员本身还是经理,或是任何有一点关系的人,只要你觉得自己难以理解为什么这些东西能让团队更有活力,你就应该读一读这本书。它道出了很多出色的开源项目程序员与生俱来的特质。我当初要是有这么一本书就好了。”—布莱恩·贝伦多夫,世界经济论坛CTO“软件开发是一项团队运动。如果你想要扬名立万,市面上有无数本教你如何磨练技术水平的好书,教你当好经理的书也不少。但这本书却另辟蹊径,教你应该如何与团队合作,以及如何当好合作伙伴。这个领域早就需要这样一本书了。”—彼得·诺维格,Google研发主管“如果你想要组建一支能专注开发优秀软件的团队,那绝不可错过本书。作者将谦虚、尊重和信任等感性的话题漂亮地转变成极富技巧的建议,哪怕是最挑剔的工程师也会欣然接受的。”—埃里克·伦特,BrightTag 联合创始人兼CTO“这本书太精彩了。它探讨的是计算机编程里最难的问题,怎样和其他程序员打交道。我打算让Samba团队人手一本。”—杰瑞米·埃里森,Samba作者之一“你可能已经听过所谓的‘十倍程序员’传说了吧,它的意思是顶尖程序员的生产力比普通程序员要高一个数量级。但巨大的影响力不仅来自经验和技术,更少不了来自同事和用户的共鸣感,而且无论多少聪明才智都弥补不了后者的缺失。好在这本书可以帮你磨练这项软技能,以期给世界留下更深的烙印。”—鲍勃·李,Square支付CTO“作者设定了一个基本的信条—谦虚、尊重和信任—并围绕它们提供了大量的情景案例。这些宝贵的经验和智慧能够帮助绝大多数需要团队合作的工程师(也就是我们)变得更有效率。”—格雷格·巴罗斯,Facebook产品工程部副总裁“软件是由人创造出来的。只要能运用本书中所列出的准则,这样的团队无论是在思路、代码品质上,还是在产品发布方面,都可以完胜任何单打独斗的黑客。程序员们,好好学吧!”—乔纳森·南丁格尔,Mozilla Firefox工程部高级主管“本书是写给程序员看的,一本教你怎么交朋友、怎么影响他人的书。书中充满了操作性极强的建议和意见,让你在技术团队中过得更开心,变得更有效率,更加如鱼得水。”—艾德利安·霍罗瓦第,Django创始人之一“作者说出了我一直在做但是总结不出来的东西。”—吉多·范·罗苏姆,Python之父“请把本书送至:保罗-海宁·坎普FreeBSD核心团队必须在1994年3月之前送达。”—保罗-海宁·坎普,FreeBSD项目程序员“作者无意为孤独的程序员唱赞歌,相反他们决心要亲手埋葬这个传说。他们撰写了一系列文章来指导那些靠谱的程序员如何对付他们这辈子最复杂的难题:怎么处理好和团队的关系。本书说明了为什么最有人情味的软件往往都是最会合作的人创造出来的,而且它还教你如何同时做到这两点。”—约翰·托尔瓦,芝加哥市政府CTO“这是一本有关软件开发社会学的出色著作,它同时照顾到了开源项目和大公司的需求。对所有新踏入职场的工程师来说,有关管理和应对办公室政治的那个部分绝对是必读的。我的建议是不管你是什么背景的工程师都应该读一读这一章!这是我见过的第一本写给工程师看的、专门有讲到办公室政治的读物,而且可读性非常强。在‘怎么和难以相处的人一起工作’里分享的奇闻异事和实用小贴士都是金玉良言!千金难买哦。”—蓝俊彪,ArEngineeg’s Guide to Silicon Vauer Startups和Startup Engineering Managerrerg作者“本书绝对是书中瑰宝,作者分享的理念能让程序员们更好地为团队作出贡献。我们终于有幸可以开诚布公地探讨这个领域的话题,而且还是以这么平和幽默的方式。要是在21岁的时候有这样一本书让我研读领会就好了。”—布莱恩·奥沙利文,Facebook“这本书为建立健康的软件开发文化提供了基本的蓝图。它应该成为工程经理和技术领导的必读书目,甚至那些想要了解团队动力学是如何留住顶级人才以及影响软件质量的非技术主管也不应该错过本书。”—布鲁斯·约翰逊,Google工程主管“编程技术能让你混口饭吃,但要是能把它和与人合作的能力结合起来,你就可以改变世界。这本书教你的并不仅仅是当一个更好的程序员,它还要你当个了不起的程序员。”—克雷·约翰逊,The Information Diet作者“本书就如何构建成功团队和产品的话题进行了极富洞察力的探索,探讨的是多年来我们程序员在职业生涯里都经历过的痛苦和挣扎。这种轻松愉快的办法不但能同时解决技术团队里的技术问题和人际关系问题,更以一种有趣的方式转化成文字,实在是所有程序员书架上必不可少的书目。”—乔纳森·勒布朗,X.Commerce首席工程师“编程现在涉及的已经不仅仅是代码和机器了,它更像是把已有的组件按照新的方式拼装在一起—而这些组件背后的作者都是活生生的人。本书的作者对此了然于胸,无论给出什么样的建议,他们要传达的信息都是非常简单直观的:只要像在代码上那样在人际关系上狠下功夫,你不但可以变成更快乐的程序员,更可以让其他程序员也变得快乐起来。这本书来的正是时候!”—傅凯,Open Tech Strategies LLC联合创始人“很少有人会谈及和极客合作时该怎么处理好人际关系这方面的东西,所以多年来我一直通过博客记录本和傅攀勃在各种大会上的演讲。现在我很高兴能方便地在一本书里就读到他们所有演讲里的精华,而不用再追着他们满世界跑了。”—罗伯特·凯,MusicBrainz首席极客“精彩至极,直指人心!哪怕你不认为自己是极客,它提供的建议也值得一读。”——文顿·瑟夫,Google首席互联网专家
编辑推荐
《极客与团队》编辑推荐:Google研发主管、Google首席互联网专家、Samba核心开发者、Django核心开发者、Python之父等众多业内高端人士和顶级程序员力荐,软件工程师的团队生存秘笈。在童话里,写出最佳程序的软件工程师一定也是最成功的人。但是现实并非 如此,成功往往还取决于如何与人合作完成任务。作者通过《极客与团队》和你分享了软件开发中与他人合作、与团队协作以及应对用户的种种模式和反模式。本书的两位作者来自Google,具有丰富的项目开发和管理经验,还曾经是Subversion的初创成员。他们都是盛誉正隆的工程师,他们的一系列谈话节目(包括著名的“如何对付工作中的害群之马”)吸引了成千上万的听众。软件开发是一项团队运动,人的因素对结果的影响完全不亚于技术因素。即使你已经在编程领域里磨练十数年也没关系,这本《极客与团队》教你的将是那些往往被忽略的“人”的那部分。只要能够学着与人合作,在软件工程中的所谓“软技能”上多下点功夫,就一定能在工作中事半功倍。
名人推荐
“这个领域早就需要这样一本书了。现在终于有了。”——彼得·诺维格,Google研发主管“人际关系在工作中的重要性不亚于科学技术,但很多工程师都不太愿意投入 太多精力去了解如何与人合作。如果你想要更有效地进行创新,那绝不能 错过此书。”——狄恩·卡门,DEKA研发公司创始人“精彩至极,直指人心!哪怕你不认为自己是极客,它提供的建议也值得一读。”——文顿·瑟夫,Google首席互联网专家
图书封面
图书标签Tags
无
评论、评分、阅读与下载