why does it suck to be an in-house programmer?

Number one: you never get to do things the right way. You always have to do things the expedient way. It costs so much money to hire these programmers—typically a company like Accenture or IBM would charge $300 an hour for the services of some recent Yale political science grad who took a six-week course in .NET programming, and who is earning $47,000 a year and hoping that it’ll provide enough experience More from Joel on Software 66 to get into business school—anyway, it costs so much to hire these programmers who are not going to be allowed to build things with Ruby on Rails no matter how cool Ruby is and no matter how spiffy the Ajax is going to be. You’re going into Visual Studio, you’re going to click the wizard, you’re going to drag the little Grid control onto the page, you’re going to hook it up to the database, and presto, you’re done. It’s good enough. Get out of there and onto the next thing. That’s the second reason these jobs suck: as soon as your program gets good enough, you have to stop working on it. Once the core functionality is there, the main problem is solved, there is absolutely no return on investment, no business reason to make the software any better. So all of these in-house programs look like a dog’s breakfast: because it’s just not worth a penny to make them look nice. Forget any pride in workmanship or craftsmanship you learned in CS 323. You’re going to churn out embarrassing junk, and then, you’re going to rush off to patch up last year’s embarrassing junk, which is starting to break down because it wasn’t done right in the first place, twenty-seven years of that and you get a gold watch. Oh, and they don’t give gold watches any more. Twenty-seven years and you get carpal tunnel syndrome. Now, at a product company, for example, if you’re a software developer working on a software product or even an online product like Google or Facebook, the better you make the product, the better it sells. The key point about in-house development is that once it’s “good enough,” you stop. When you’re working on products, you can keep refining and polishing and refactoring and improving, and if you work for Facebook, you can spend a whole month optimizing the Ajax name-choosing gizmo so that it’s really fast and really cool, and all that effort is worthwhile because it makes your product better than the competition. So, the number two reason product work is better than in-house work is that you get to make beautiful things.

Number three: when you’re a programmer at a software company, the work you’re doing is directly related to the way the company makes money. That means, for one thing, that management cares about you. It means you get the best benefits and the nicest offices and the best chances for promotion. A programmer is never going to rise to become CEO of Viacom, but you might well rise to become CEO of a tech company.

from:<Joel Spolsky:More Joel on Software>

时间: 2024-08-08 09:22:10

why does it suck to be an in-house programmer?的相关文章

How to build a blog 02:Suck World

一.Form标签简介 首先要学习的是表格标签<form> <form action ="/foo"> <input type = "text" name = "test"> <input type ="submit" value ="ClickOnMe"> </form> <form> 表格标签 <form action =&qu

电影功夫熊猫使用的单词分析

你英语四级过了吗?功夫熊猫看了吗?功夫熊猫使用了995个英语单词,你会说很简单吧,别急,我给你分析一下,这些单词中有236个单词不在四级词汇范围内,花两分钟时间看看你是否认识这些单词,单词后面跟的数字表示该单词在电影中出现的次数. 你也可以获取本文的分析程序,这样你就可以分析其他电影了.看一部电影之前,先通过这种方式分析一下,然后学习自己不认识的单词,然后再去看电影,如此这样坚持下去,英语水平就会有很大的提升. words(995): 1. you 2492. the 1893. i 1844.

根据76大细分词性对单词进行归组(二)

词性的重要性不言而喻,尤其是对于自然语言处理来说,哪怕就是记单词,根据词性对单词进行归组也是非常有帮助的. superword是一个Java实现的英文单词分析软件,主要研究英语单词音近形似转化规律.前缀后缀规律.词之间的相似性规律等等. 各大词性及其包括的词: 32.N-COUNT-COLL(可数集合名词) (词数:50) 1 aristocracy army array audience band 2 cast chapter command commission committee 3 co

词组习语3057组

superword是一个Java实现的英文单词分析软件,主要研究英语单词音近形似转化规律.前缀后缀规律.词之间的相似性规律等等. 1 Anointing of the Sick British English 2 Civvy Street Clerk of the Closet 3 I mean I must say 4 I suppose so I will thank you to do something 5 Incoming mail server Lithium battery 6 M

day2:写几段代码

在linux公社找到本书<Python核心编程 第二版> 跳过前面32页的啰七八嗦,看代码~ 字符串替换 >>> print "%s's price is %d yuan" % ( "this tomato" , 6 ) this tomato's price is 6 yuan %s和%d是来占座的,分别占了字符串和整数的座.s代表string(字符串),d为啥代表整数我忘了-- 可以看出: 1.比起c++的printf,Python

你以为在用SharePoint但事实上不是

博客地址 http://blog.csdn.net/foxdave 原文链接:http://www.techrepublic.com/blog/tech-decision-maker/you-think-you-use-sharepoint-but-you-really-dont/ 是篇老文章了,近期研究问题的时候偶然碰到了这篇文章.尽管里面说的情境不一定发生在中国.可是非常赞同里面的思路.我们大多数做项目的时候,是否真正使用SharePoint达到了效果? 无数公司部署了SharePoint可

ANT+ 之【心率传感器设计】【下】

好久不见!!最近的几个月发生了不少事情,导致精力极度分散,自己todolist上各个项目的优先级不停地被调整,博客的事情就被暂时搁置了下来,特别是__AW君__的出现,让自己突然有了一种说不出来的感觉……唔,果然love is blind没错,所幸自己毕竟是一个天生乐观的人,接下来的剧情我会用心去体验的~ 让我们永远相信美好的事情即将发生吧! /****************************************************************************

IOS 第三方管理库管理 CocoaPods

越来越多的SVN管理,越来越多的工程文件,我不能总是那么一个一个的把第三方库拖进去,我厌倦了拖拽和配置,我找到了替代方法--CocoaPods 英文好的可以直接读一下我参考的网页 http://www.raywenderlich.com/12139/introduction-to-cocoapods 不嫌我唠叨 我就自己慢慢敲 第一步:安装 CocoaPods是跑在Ruby的软件,安装可能需要几分钟,打开你的终端输入: sudo gem install cocoapods 如果成功 会有一个 S

让人很容易误解的TCP拥塞控制算法

正文 很多人会认为一个好的TCP拥塞控制算法会让连接加速,这种观点是错误的,恰恰相反,所有的拥塞控制算法都是为了TCP可以在贪婪的时候悬崖勒马,大多数时候,拥塞控制是降低了数据发送的速度. 我在本文中会针对近期跟业内朋友之间的聊天记录,总结出三言两语.        TCP拥塞控制的终极目标绝对不是加快数据发送的速度,这种理解非常自私且肤浅!它的终结目标是在公平占有带宽的前提下无限度提高带宽的利用率!        如果你只关注一个独立的TCP连接本身,那么你也许永远都不可能设计出什么比较好的算