《Team Geek》前言(中文,自己翻译的)

简介: Introduction 前言 “Engineeringis easy. People are hard.” ——BillCoughran, former senior vice presidentof engineering at Google “做工程容易,做人难。

Introduction

前言

“Engineeringis easy. People are hard.”

——BillCoughran, former senior vice

presidentof engineering at Google

“做工程容易,做人难。”

——BillCoughran,谷歌工程前高级副总裁

Life isfull of unexpected twists, and the two of us never imagined

we’dsomeday write a book about software engineering.

人生充满了意想不到的纠结,我们两个人从来没有想到有一天我们会写一本关于软件工程的书。

Like most computer geeks, we discovered that our hobby and

passion—playingwith computers—was a great way to make a living

aftergraduating college. And like most hackers of our generation,

wespent the mid-1990s building PCs out of spare parts, installing

prereleaseversions of Linux from piles of diskettes, and learning to

administerUnix machines. We worked as sysadmins, and then at

thedawn of the dot-com bubble, became programmers in smaller

companies.After the bubble burst, we started working for surviving

SiliconValley companies (such as Apple) and later were hired by a

startup(CollabNet) to work full time on designing and writing an

opensource version control application called Subversion.

我们像大多数计算机极客一样,大学毕业之后发现我们的爱好和激情(玩计算机)是一种很好的谋生方式。我们也和我们那一代的大多数骇客一样,在20世纪90年代中期,用一些多余的部件组装个人计算机,用一堆磁盘安装Linux的预发布版本,学习如何管理Unix机器。我们做过系统管理员,在互联网泡沫的前夜我们成为了一家小公司的程序员。互联网泡沫破裂之后,迫于生计我们开始为活下来的硅谷公司(比如苹果)工作,后来我们被一家新创办的公司(CollabNet公司)全职雇佣去设计和开发一个叫 Subversion的开源版本控制软件。

Butsomething unexpected happened between 2000 and 2005.

Whilewe were creating Subversion, our job responsibilities slowly

changed.We weren’t just writing code all day in a vacuum; we

wereleading an open source project. This meant hanging in a

chatroom all day with a dozen other volunteer programmers and

payingattention to what they were doing. It meant coordinating

newfeatures almost entirely through an email list. Along the way,

wediscovered that the key to a project’s success wasn’t just writing

greatcode: the way in which people collaborated toward the end

goalmattered just as much.

但是2000年到2005年期间,发生了一些预想不到的事情。当我们在开发 Subversion的过程中,我们的工作职责在慢慢的变化。我们不再两耳不闻窗外事的整天写代码,我们开始带一个开源项目。这意味着我们要整天和一堆程序员志愿者泡在聊天室里,关注他们都正在做什么。这意味着要协调一个新功能,完全要依靠电子邮件列表。在这个过程中,我们发现,一个项目成功的关键不只是写出伟大的代码。在朝着最终目标努力的过程中,人与人之间的合作方式也事关重大。

In 2005 we started Google’s Chicago engineering office and

continuedour careers as programmers. At this point we were already

deeplyinvolved with the open source world—not just Subversion,

but theApache Software Foundation (ASF) too. We ported

Subversion to Google’s BigTable infrastructure and launched an

opensource project hosting service (similar to SourceForge) under

thebanner of Google Code. We began attending—then speaking

at—developer-centricconferences such as OSCON, ApacheCon,

PyCon, and eventually Google I/O. We discovered that by working

in bothcorporations and open source projects we had accidentally

pickedup a trove of wisdom and anecdotes about how real software

engineeringteams work. What began as a series of humorous talks

aboutdysfunctional development processes (“Subversion Worst

Practices”)eventually turned into talks about protecting teams from

jerks(“How Open Source Projects Survive Poisonous People”).

Larger and larger crowds gathered at our presentations in what

canonly be described as “group therapy” for software developers.

Everyonecould relate to the sorts of problems we talked about and

wantedto gripe about these problems as a group.

2005年,我们成立了谷歌芝加哥工程办公室继续我们的程序员生涯。这时候我们已经很深的介入了开源的世界,不只是 Subversion项目,还有Apache软件基金会(ASF,ApacheSoftware Foundation)。我们把Subversion移植到谷歌的 BigTable基础架构之上,在谷歌代码旗下开启了一个托管服务(类似SourceForge)的开源项目。我们开始参加开发者中心的一些会议,比如:OSCON、ApacheCon、PyCon,甚至是GoogleI/O,我们还在这些会议上做了发言。 在公司和开源项目的工作经历,使我们收集了一系列关于一个真正的软件工程团队如何工作的聪明想法和事例。这些材料开始于一系列的关于功能失调的开发过程(Subversion最差的实践),到了最后却变成了怎么保护团队远离笨蛋(开源项目如何在别有用心的人的干扰下存活)。大批的人群拥挤在我们的演示前面,这只能被称为是软件开发人员的集体疗伤。每个人都可能遇到我们谈到的那些各种各样的问题,每个人都想把这些问题一并抓住。

And sohere we are, six years later, with a pile of standing-room-

onlytalks about the social challenges of software development. Our

editorat O’Reilly Media, Mary Treseler, pointed out that we should

convertthese talks into a new book. The rest is history.

六年之后,我们挤在这里谈论软件开发的社会挑战。我们的 O’Reilly媒体的编辑 MaryTreseler指出我们应该将这些会谈写成一本书。上面的这些内容,就是这本书的历史。

Tryingto write great software? This book is for you.

想开发出伟大的软件吗?这本书就是为你量身订做的。

Who IsThis Book For?

这本书适合什么样的读者?

Thisbook is squarely written for software developers—for those

who aretrying to advance their careers and ship great software.

It’snot particularly aimed at CEOs, psychologists, “management,”

computerscience theoreticians, or people soldering breadboards

(thoughthose folks may enjoy it too). As our reader, we’re assuming

twoimportant things about you:

•   You work on a team with other programmers.Either you work

in acorporate environment, or perhaps you’re part of an open

sourceor school project.

•   You enjoy software engineering and believeit should be a

rewardingand fun activity. If you’re only turning 1s into 0s and

0s into1s in order to pay off the debt collector, you probably

aren’tinterested in self-actualization or career fulfillment.

这本书适合努力发展他们的事业并试图开发出伟大的软件的开发者。这本书不适合首席技术官、心理学家、“管理人员”、计算机理论科学家或者电路板焊接人员(或许他们很喜欢这本书)。作为我们的读者,我们假定你具有以下两个重要特征:

•   你和其他程序员在一个团队里一起工作。不管你是在一个公司,还是在一个开源项目或者学校项目之中。

•   你喜欢软件工程,并且坚信它是一个既有趣又有益的一个活动。如果你只是为了还清债务而把1转化为0、把0转化为1,你应该不会对自我实现或者职业发展有兴趣。

In theprocess of discussing how engineers best “play well

withothers,” we end up touching on a number of subjects that

(superficially)may seem to be out of a programmer’s job description.

Atdifferent points we discuss how to lead a team effectively,

navigatean organization, and build a healthy relationship with

theusers of your software. On the surface these chapters may

seemspecifically directed toward “people managers” or “product

managers”—butwe assure you that at some point in your software

engineeringcareer you’ll find yourself accidentally wearing those

hats.Suspend your disbelief and keep reading! Everything in this

book isultimately relevant to software engineers.

在探讨软件工程师怎么样和他人进行很好的合作的过程中,我们最终遇到了一些看起来已经超出了一个程序员的工作范畴之外的议题。在不同的阶段,我们探讨怎么样更好的带领一个团队,怎么样削减一个组织,怎么样和软件使用者建立一个良好的关系。表面上这些章节似乎是和“人力管理”或“产品管理”直接相关的,但是我们可以肯定在你的软件工程师生涯的某个阶段,你会用到这些知识。把怀疑放到一边,继续阅读吧!这本书的所有内容最终都是和软件工程师相关的。

Warning:This Is Not a Technical Manual

警告:这不是一本技术手册

Beforewe start, we need to set your expectations. Motivated

programmerslove to read books that lay out domain-specific

problemsin a perfect mathematical presentation; each problem is

typicallypaired with a prescribed procedural solution.

开始之前,我们需要修正下你对这本书的预期。目的性明确的程序员喜欢读那些针对特定领域的问题有完美数学解决方案的书,这样的书里面的每个问题都搭配一个规定的解决方案。

This isnot such a book.

这本书不是那样的书。

 

 

目录
相关文章
|
6月前
|
人工智能 程序员
每日一个 ChatGPT 使用小技巧系列之2 - 用 ChatGPT 研读 SAP ABAP BAPI 的实现源代码
每日一个 ChatGPT 使用小技巧系列之2 - 用 ChatGPT 研读 SAP ABAP BAPI 的实现源代码
53 0
|
存储 编解码 JavaScript
Google Earth Engine(GEE)——GEE最全介绍(7000字长文)初学者福音!
Google Earth Engine(GEE)——GEE最全介绍(7000字长文)初学者福音!
1481 0
Google Earth Engine(GEE)——GEE最全介绍(7000字长文)初学者福音!
|
网络协议 编译器 程序员
为什么 Go 是我最喜欢的编程语言(2017)[翻译]#IT人的升职加薪tips#
为什么 Go 是我最喜欢的编程语言(2017)[翻译]#IT人的升职加薪tips#
163 0
为什么 Go 是我最喜欢的编程语言(2017)[翻译]#IT人的升职加薪tips#
|
Android开发 UED 开发者
Material Design 非官方中文指导手册
今年 6 月 26 日 I/O 2014 开发者大会,Google 发布了他们的全新设计语言「Material Design」,将会成为统一 Android Mobile、Android Table、Desktop 等平台的设计语言规范,对从业人员意义重大。由于原文为英文,对于广大的国内设计师阅读起来比较困难,于是有热心的童鞋整合了国内的翻译。
333 0
Material Design 非官方中文指导手册
|
SQL JavaScript 前端开发
DayDayUp:Markdown编辑器的简介、入门、使用方法(Markdown编辑器撰写博客)(一)
DayDayUp:Markdown编辑器的简介、入门、使用方法(Markdown编辑器撰写博客)
|
编译器 索引
【实用工具】技术人如何写好英文论文?
现在工业界发paper越来越普遍了,要不想被淘汰,得学习。工欲善其事必先利其器,今天就讲讲写作中能用到的工具。
【实用工具】技术人如何写好英文论文?
|
Java Android开发 数据格式
阅读手札:《Android开发艺术探索》(二)
在 《阅读手札:《Android开发艺术探索》(一)》中主要介绍了Activity的生命周期以及异常处理、启动模式、意图过滤器。本篇文章主要介绍的是《Android开发艺术探索》的第二章 IPC机制 个人评语:第二章的内容非常多(第二章近90页内容),内容有IPC机制基本概念;序列化Serializable、Parcelable;Binder;实现IPC的多种方式;Binder连接池内容非常多,但还是要耐着性子分析完。
1449 0
|
Android开发
阅读手札:《Android开发艺术探索》(一)
《Android开发艺术探索》这本书在Android开发界内可谓口碑极佳,他的作者任玉刚在百度担任Android资深开发工程师。我的一个初中朋友现在深圳百度做Android研发,上周去深圳找他玩的时候碰巧在他电脑桌上看到了这本书,他谈到这本书内容多、有深度且知识点非常系统值得反复阅读。
1329 0
|
机器学习/深度学习 人工智能 算法
吴恩达(Andrew Ng)新书给出的七点建议|附新书下载链接
本文是阅读吴恩达老师新书后总结出最有用且最有趣的七点建议,对机器学习工程应用和学术研究人员都有一定的帮助。
5982 0