`
liuxht
  • 浏览: 2069 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
最近访客 更多访客>>
社区版块
存档分类
最新评论

You are NOT a Software Engineer!

 
阅读更多
  英文原文:
  You are not a Software Engineer. You do not build skyscrapers. You do not build bridges.
  You grow gardens.
  You are a Software Gardener.
  Do you try to plan your gardens in such detail that you knowwhere each leaf will be positioned before you plant a single seed? Do people expect estimates (or are they promises in your organisation?) on exactly how many flowers will have bloomed in one years time? Do you have a bonus tied to that? Things that would be perfectly reasonable to plan for a skyscraper seem a little ridiculous when you are talking about a garden.
  You probably have a good idea of what your garden should look like a week into the future. You might even have a rough idea of the shape you expect it to be in a year from now. But you have no idea of where each branch, leaf, stem and flower will be a year from now, and if you sayyou do then you’re really only guessing.
  If you were building a bridge or a skyscraper and you told me, before you began, that you knew exactly how it would look when it was finished – I would believe you. If you told me that you knew to some insane degree of accuracy how long it would take to get to ‘finished’– I would believe you again. That’s how Engineers roll. Tell me the same thing about your garden and I’m gonna call bullshit. Tell me you are going to make it grow faster by hiring more gardeners and I’m gonna laugh at you.
  So why do so many gardens fail,yet so many skyscrapers succeed? With a few exceptions, the technique for building a skyscraper is similar whether you are in Europe or you are in Singapore. Gardens do not work that way. Every garden is different because the environment it is in is different. Even gardens that are within throwing distance of each other can have wildly different soil. That is why the lowest bidder can probably build the same bridge as the highest bidder, but your company can’t grow the calibre of gardens that Google can grow.
  Remember that time when someone in your company unsuccessfully used an Agile gardening methodology, and then went around saying that it was horse shit that doesn’t work? Well horse shit does grow gardens, it just wasn’t enough to save your garden. Your garden was probably dead before it started – a victim of the climate of your organisation. Were you trying to grow a rainforest in the desert? You can’t just plant the same plants as Facebook, Flickr or Twitter and expect them to take root regardless of the quality of your gardeners or the climate of your organisation.
  Unlike a skyscraper,your garden will growweeds. It will never be ‘finished’. Just because you stop spending money on it doesn’t mean it is finished. If you stop weeding your garden the weeds will eventually smother it, and soon a re-plant will look easier than a pruning. The environment around your garden will also always be changing, and a neglected garden will become harder and harder to keep alive.
  In most countries, Engineers need a license to build a bridge. Gardeners have no such government-mandated quality control. Unfortunately, the quality of your gardeners is going to have a bigger influence on your gardens success than any other factor – so you’d better be good at picking the wheat from the chaff. Only an experienced gardener really knows another good gardener when they see them. Someone who has merely managed gardening projects will have no idea what they should be looking for (though theywon’t know this). So if you are not a gardener, but need to recruit good gardeners, then quickly find an experienced gardener you trust to vet your candidates. You can’t learn gardening in a classroom, so remember to focus on gardens your candidates have grown before, rather than how much gardening theory they learned at school (which nearly always won’t be applicable to the climate you are growing in anyway).
  The engineering metaphor has had its time in the sun, and maybe it even used to be accurate, but now it really only serves to help non-technical people have unrealistic expectations about how software gets built.
  I am a Software Gardener.
  So are you.
  来自: [url=http://www.aqee.net/2011/05/16/you-are-not-a-software-engineer/]外刊IT评论
[/url]
感谢:原作者和转贴者
分享到:
评论

相关推荐

    A Software Engineer Learns HTML5 JavaScript & JQuery - Dane Cameron

    If you have not used JavaScript and HTML for a number of years you may be surprised at what they now offer. Browser based web applications are now capable of matching or exceeding the sophistication ...

    Facts and Fallacies of Software Engineering

    Many of these fundamentally important facts are learned by a software engineer, but over the short lifespan of the software field, all too many of them have been forgotten. While reading Facts and ...

    Effective Software Test Automation

    I assume you are a moderately experienced software developer and a test engineer in the process of conducting software test for your organization. The explanations and examples in this book can be ...

    Problem Solving in Data Structures & Algorithms Using Java, 2nd

    Apart from knowing, a programming language you also need to have good command of these key computer fundamentals to not only qualify the interview but also excel in you jobs as a software engineer. ...

    polycom宝利通视频会议软件3.9 2018

    You are not permitted to lease, rent, distribute, assign, sell or sublicense the SOFTWARE PRODUCT, in whole or in part, or to use the SOFTWARE PRODUCT in a time-sharing, subscription service, service...

    TeeChart2013_131216_SourceCode

    Desktop Software" means those Developed Software products that are not Developed Web Server Software, including, for example, standalone applications. "Redistributable Files" means the SOFTWARE ...

    starftp.exe

    You may not decompile, reverse engineer, disassemble or otherwise reduce this SOFTWARE to a human perceivable form. You may not modify, rent or resell for profit this SOFTWARE, or create derivative ...

    Recover4all Professional

    (b) If You are a representative of a company and You purchase a single license, You are automatically a Registered End User and may use the Registered Software as described in lit. (a) above (see ...

    TeeChart2013_130818_SourceCode

    Desktop Software" means those Developed Software products that are not Developed Web Server Software, including, for example, standalone applications. "Redistributable Files" means the SOFTWARE ...

    Software Architecture with Python

    Later, you'll get a complete understanding of the different architectural quality requirements that help an architect to build a product that satisfies business needs, such as maintainability/...

    Vagaa哇嘎画时代--体验群体智慧的力量!

    4.1 You are responsible for paying all applicable taxes and other costs you may incur in connection with your use of the Software including but not limited to all hardware and software costs and ...

    word自动转化为chm

    However, what bothers you most is not using how many kinds of tools, the Word file, the CHM file and the online documents are all need to be modified, this is the real matter. Once the changing work ...

    Problem Solving in Data Structures & Algorithms Using Java 2nd Edition

    Apart from knowing, a programming language you also need to have good command of these key computer fundamentals to not only qualify the interview but also excel in you jobs as a software engineer.

    Autoruns-v9.1.3H

    These license terms are an agreement between Sysinternals (a wholly owned subsidiary of Microsoft Corporation) and you. Please read them. They apply to the software you are downloading from ...

    ACHI驱动程序

    2. You may not reverse engineer, decompile or disassemble the Software. 3. You may not sublicense the Software. 4. The Software may contain the software or other property of third party suppliers, ...

    网络修复winsrepair

    5) You may not reverse engineer, decompile, disassemble, derive the source code of or modify [or create derivative work from] the program. 6) You must not use Winsock Repair to engage in or allow ...

    usb加密狗共享软件

    You may not decompile, disassemble, reverse engineer, or otherwise attempt to derive the source code of the SOFTWARE. You may not redistribute, sell, rent, lease, sublicense, or otherwise transfer ...

Global site tag (gtag.js) - Google Analytics