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


    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.

    这本书不是那样的书。

  • 相关阅读:
    协同过滤
    深度学习中 epoch,[batch size], iterations概念解释
    如何查看Python内置模块的实现代码
    机器学习/数据挖掘/算法岗位
    算法工程师B
    算法工程师A
    web性能测试基本性能指标
    Loadrunner11不能调用IE8解决方法大全
    抓取Android应用的log
    关于字符latin capital letter sharp s "ß"( U+1E9E)显示的问题
  • 原文地址:https://www.cnblogs.com/ainima/p/6332017.html
Copyright © 2020-2023  润新知