Toolbars R us
This is part two of the text of a talk delivered to the Yale Computer Science department on November 28. Part one appeared yesterday.
After a few years in Redmond, Washington, during which
I completely failed to adapt to my environment, I beat a hasty retreat to New
York City. I stayed on with Microsoft in New York for a few months, where
I was a complete and utter failure as a consultant at Microsoft Consulting, and
then I spent a few years in the mid-90s, when the Internet was first starting
to happen, at Viacom. That’s this big corporate conglomerate which owned MTV,
VH1, Nickelodeon, Blockbuster, Paramount Studios, Comedy Central, CBS, and a
bunch of other entertainment companies. New York was the first place I got to
see what most computer programmers do for a living. It’s this scary thing
called “in house software.” It’s terrifying. You never want to do in
house software. You’re a programmer for a big corporation that makes, oh,
I don’t know, aluminum cans, and there’s nothing quite available off the
shelf which does the exact kind of aluminum can processing that they need, so
they have these in-house programmers, or they hire companies like Accenture and
IBM to send them overpriced programmers, to write this software. And there are
two reasons this is so frightening: one, because it’s not a very fulfilling
career if you’re a programmer, for a list of reasons which I’ll enumerate in
a moment, but two, it’s frightening because this is what probably 80% of
programming jobs are like, and if you’re not very, very careful when you
graduate, you might find yourself working on in-house software, by accident, and
let me tell you, it can drain the life out of you.
OK, so, 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 PoliSci grad who took a 6 week course
in dot net programming, and who is earning $47,000 a year and hoping that
it’ll provide enough experience to get into business school—anyway, it costs
so much to hire these programmers that you’re not going to 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 on 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 CS323. 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.
27 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.
Anyway. After Microsoft I took a job at Viacom, because I wanted to learn something about the internet and Microsoft was willfully ignoring it in those days. But at Viacom, I was just an in-house programmer, several layers removed from anybody who did anything that made Viacom money in any way.
And I could tell that no matter how critical it was for Viacom to get this internet thing right, when it came time to assign people to desks, the in-house programmers were stuck with 3 people per cubicle in a dark part of the office with no line-of-sight to a window, and the “producers,” I don’t know what they did exactly but they were sort of the equivalent of Turtle on Entourage, the producers had their own big windowed offices overlooking the Hudson River. Once at a Viacom Christmas party I was introduced to the executive in charge of interactive strategy or something. A very lofty position. He said something vague and inept about how interactivity was very important. It was the future. It convinced me that he had no flipping idea whatsoever what it was that was happening and what the internet meant or what I did as a programmer, and he was a little bit scared of it all, but who cares, because he’s making 2 million dollars a year and I’m just a typist or “HTML operator” or whatever it is that I did, how hard can it be, his teenage daughter can do that.
So I moved across the street to Juno Online Services. This was an early internet provider that gave people free dial-up accounts that could only be use for email. It wasn’t like Hotmail or Gmail, which didn’t exist yet, because you didn’t need internet access to begin with, so it was really free.
Juno was, allegedly, supported by advertising. It turned out that
advertising to the kinds of people who won’t pay $20 a month for AOL is not
exactly the most lucrative business in the world, so in reality, Juno was
supported by rich investors. But at least Juno was a product company where
programmers were held in high regard, and I felt good about their mission to
provide email to everyone. And indeed I worked there happily for about three
years as a C++ programmer. Eventually, though, I started to discover that the
management philosophy at Juno was old
fashioned. The assumption there was that managers exist to tell people what
to do. This is quite upside-down from the way management worked in typical
west-coast high tech companies. What I was used to from the west coast was an
attitude that
| P | Ú | S | Č | P | S | N |
|---|---|---|---|---|---|---|
| « Čer | ||||||
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 | |
Leave a reply
You must be logged in to post a comment.